Leinwand ist cool! - Seite 14

 
Nikolai Semko:

Sie haben meine Nachricht also nicht gehört.

Sie müssen jedoch die doppelten Zahlen abrunden, um die Koordinaten zu erhalten. Es gibt keinen anderen Weg.

 
Реter Konow:

Sie müssen jedoch die doppelten Zahlen abrunden, um die Koordinaten zu erhalten. Es gibt keinen anderen Weg.

Sie müssen nichts aufrunden.

Hier ist ein Skript, als Beispiel.

Führen Sie es zunächst mit den Standardparametern aus (mit geglätteten Kreisen und Koordinaten und Abmessungen vom Typ double)

und führen Sie es dann mit dem Parameter typ = not_smoothed_circles aus (mit geglätteten Kreisen und Koordinaten und Größen vom Typ int - aus der CCanvas-Klasse).

und Sie werden sehen, was ich meine.

Es ist besser, es auf weißem Hintergrund zu machen, nicht auf schwarzem.

Dateien:
 
Nikolai Semko:

Basierend auf Doom...

Ich frage mich, warum das Bild einfriert, wenn ich das Diagramm mit der Maus verschiebe?


Es ist eine Schande, dass man eine Ressource nicht töten kann. Sie schalten zum Beispiel die Flammenanzeige aus. Und das Objekt mit der Ressource bleibt in der Schwebe. Objekt kann getötet werden, aber die Ressource - nein. Schließlich ist es leicht, den gesamten Speicher des Terminals zu belegen und so die Expert Advisors unmerklich zu deaktivieren.

 

Es gibt eine Vielzahl von 3D-Bibliotheken, die schon seit hundert Jahren in JavaScript geschrieben werden. Der einfachste und direkteste Weg ist, sie von dort nach hier umzuschreiben.

Natürlich nicht 100 Jahre lang, aber ein paar.

 
fxsaber:

Ich frage mich, warum das Bild einfriert, wenn ich das Diagramm mit der Maus verschiebe?

es muss an der Ereignissteuerung CHARTEVENT_CHART_CHANGE in meiner iCanvas-Klasse liegen

Das Skript enthält kein solches Steuerelement, und es kommt nicht zum Einfrieren.

Dateien:
fire.mq5  9 kb
 
Nikolai Semko:

Sie müssen nichts aufrunden.

Hier ist ein Skript als Beispiel.

Führen Sie es zunächst mit den Standardparametern aus (Kreise mit Antialiasing und Koordinaten und Abmessungen vom Typ double)

und führen Sie es dann mit dem Parameter typ = not_smoothed_circles aus (mit geglätteten Kreisen und Koordinaten und Größen vom Typ int - aus der CCanvas-Klasse).

und Sie werden sehen, was ich meine.

Es ist besser, es auf weißem Hintergrund zu machen, nicht auf schwarzem.

Ja, es sieht sehr gut aus. Qualitätsformen von Kreisen.

Aber Sie verwenden die Klasse CCanvas, und dort sind die Koordinaten in int.

 
fxsaber:

Ich frage mich, warum das Bild einfriert, wenn ich das Diagramm mit der Maus verschiebe.


Es ist schade, dass man eine Ressource nicht töten kann. Sie schalten zum Beispiel die Flammenanzeige aus. Und das Objekt mit der Ressource bleibt in der Schwebe. Objekt kann getötet werden, aber die Ressource - nein. Es verbraucht einfach den gesamten Speicher des Terminals und deaktiviert daher unauffällig die Expert Advisors.

Und ResourseFree()?

 
fxsaber:

Es ist eine Schande, dass man eine Ressource nicht töten kann. Sie schalten zum Beispiel die Flammenanzeige aus. Sie lässt ein Objekt mit einer Ressource hängen. Sie können das Objekt töten, aber nicht die Ressource. Schließlich können Sie leicht den gesamten Speicher des Terminals verbrauchen und somit die Expert Advisors unbemerkt deaktivieren.

Aber warum?

Ich verwende einen Destruktor in meiner Klasse

~iCanvas() { Destroy(); ChartRedraw();};

und zerstören:

void CCanvas::Destroy(void)
  {
//--- delete object
   if(m_objname!=NULL)
     {
      ObjectDelete(m_chart_id,m_objname);
      m_chart_id=0;
      m_objname =NULL;
      m_objtype =WRONG_VALUE;
     }
//--- deallocate array
   ArrayFree(m_pixels);
//--- free resource
   if(m_rcname!=NULL)
     {
      ResourceFree(m_rcname);
      m_rcname=NULL;
     }
//--- zeroize data
   m_width =0;
   m_height=0;
  }
 
Nikolai Semko:

Dies liegt wahrscheinlich an der Steuerung des Ereignisses CHARTEVENT_CHART_CHANGE in meiner iCanvas-Klasse

Im Skript gibt es keine solche Kontrolle, und es gibt kein Einfrieren.

Ja, kein Problem im Skript.


Ich bin sehr neugierig, wie das aussehen würde.

Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests

Neue Version von MetaTrader 5 build 1930: Schwebende Diagrammfenster und .Net-Bibliotheken in MQL5

fxsaber, 2019.01.14 21:37

Bleibt noch, ein ausziehbares Bild des think mit abgestelltem Gashahn zu machen.

Aber das wirklich Spektakuläre ist, dass die Stangen und Objektleitungen selbst in Brand gesetzt werden.


Sie können die Stäbe auch so anfertigen, als wären sie Schlitze im Ofen. Es ist, als ob man die Flammen durch sie hindurch beobachten würde.


Dies erfordert ein wenig Arbeit: Erstellen Sie einen zweiten Canvas-Puffer als Kopie der Hauptflamme, und wenden Sie dann einen Filter auf die Pixelposition der Balken an. Auf den ersten Blick sollte das nicht schwierig sein.

 
Nikolai Semko:

Warum ist das so?

Ich verwende einen Destruktor in meiner Klasse

und zerstören:

Nun, aus irgendeinem Grund hat es nicht funktioniert, da ich alles übrig habe.