Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wunderschön !!!
Nikolai, bitte werfen Sie das Code-Listing der Regenbogenfarbpalettenbildung hierher
Wenn es in Form einer Funktion geschieht, wird es noch praktischer sein3D Bewegtes Mittelmaß
Ich werde den Code morgen ins Buy More stellen.
Nikolai, Sie verblüffen immer wieder aufs Neue!
https://www.mql5.com/en/code/27733
https://www.mql5.com/en/code/27733
Großartig!
https://www.mql5.com/en/code/27733
Forum zum Thema Handel, automatisierte Handelssysteme und Strategietests
Bibliotheken: Easy Canvas
Nikolai Semko, 2020.02.17 05:15
Ich möchte einen wichtigen Punkt für interessierte Programmierer klären, wenn sie den Kanvas im Tester-Modus betreiben.
Ein bekannter Programmierer in dieser Gemeinschaft kam mit dieser Frage zu mir:
- Warum wird im Testmodus mein auf Objekten erstelltes Panel viel schneller neu gezeichnet als auf der Leinwand, während im normalen Modus mein Panel mit normaler Geschwindigkeit auf der Leinwand gezeichnet wird?
Es ist mir gelungen, den Grund für das Problem und seine Lösung zu verstehen.
Das Problem ist, dass das Neuzeichnen von Objekten mit dem Neuzeichnen des gesamten Bildschirms einhergeht, während der Bildschirm im Testgerät nicht häufiger als 30 Bilder pro Sekunde neu gezeichnet wird.
Objekte sind letztlich die gleiche Leinwand (intern), aber wenn Sie die Eigenschaften des Objekts zu ändern, ist das Objekt Leinwand nicht generiert (nicht neu berechnet), sondern nur dann, wenn der Bildschirm aktualisiert wird (ChartRedraw), die in der Tester (und im normalen Modus, auch) nicht öfter als unsere Augen können Änderungen zu unterscheiden, dh nicht öfter als ~ 32 Frames pro Sekunde auftritt generiert.
Angenommen, das Panel ändert sich bei jedem Tick. Dann wird auch die Standard-Leinwand bei jedem Tick neu gezeichnet, aber das Neuzeichnen erfolgt im Testgerät trotzdem nicht häufiger als ~30 ms (~30 fps).
Mit anderen Worten: Die Leinwand wird viel häufiger neu berechnet, als sie tatsächlich auf dem Bildschirm angezeigt wird, was zu einem unverhältnismäßig hohen Ressourcenverbrauch führt.
Die Lösung für dieses Problem wäre, sicherzustellen, dass die Leinwand nicht öfter als alle 15-30 Millisekunden neu berechnet und gezeichnet wird, so dass es keine unnötigen Zyklen leerer Neuberechnungen gibt.
Zum Beispiel so:
Hallo zusammen, ich würde gerne meine Kenntnisse über Canvas vertiefen.
Ich weiß gar nicht, wo ich anfangen soll. Im Moment stelle ich mir vor, dass Canvas aus komplizierten logarithmischen Formeln und ähnlichem besteht.
Können Sie mir ein Beispiel dafür geben, wie man eine Schaltfläche wie unten auf der Leinwand zu machen. Ich brauche den Code, um ihn zu verstehen.
Hallo zusammen, ich würde gerne meine Kenntnisse über Canvas vertiefen.
Ich weiß gar nicht, wo ich anfangen soll. Im Moment stelle ich mir vor, dass Canvas aus komplizierten logarithmischen Formeln und ähnlichem besteht.
Können Sie mir ein Beispiel dafür geben, wie man eine Schaltfläche auf einer Leinwand wie unten macht. Ich brauche den Code, um ihn zu verstehen.
Es ist einfacher, ein vorgefertigtes Element zu verwenden. (als Png-Bild).
Es handelt sich also um eine Linie mit einer Drehung, eine weitere Linie mit einer weiteren Drehung, usw.. - Dann eine kleinere mit einer Füllung in Form eines Verlaufs (so definieren Sie die Füllung).
Auf der Leinwand haben Sie nur eine primitive Streifen Rechtecke und Kreise mit der Fähigkeit, den Umriss unserer Figur oder Linie zu zeichnen, oder füllen Sie es.
Standardmäßig ist also ein Rechteck vorhanden, das sofort ausgefüllt wird.....
Es gibt auch eine Leinwand mit Punkten zum Malen Ihrer Primitiven (Klasse erweitern).
Wahrscheinlich habe ich vieles geschrieben, was Sie schon wissen.
Außerdem gibt es eine 3D-Leinwand mit Vektormatrizen