Leinwand ist cool! - Seite 63

 
Renat Akhtyamov:

Wunderschön !!!

Nikolai, bitte werfen Sie das Code-Listing der Regenbogenfarbpalettenbildung hierher

Wenn es in Form einer Funktion geschieht, wird es noch praktischer sein
Ich habe das schon oft gemacht. Ich bin im Moment nicht an meinem Computer.
Die Funktion wird Grad genannt.
Sie finden es zumindest im Aftercode von 3DSpiral
 
Nikolai Semko:

3D Bewegtes Mittelmaß
Ich werde den Code morgen ins Buy More stellen.


Nikolai, Sie verblüffen immer wieder aufs Neue!

 

Großartig!

 
Früher drehte es sich in meinem Kopf), jetzt kann man es sich ansehen. Ein interessanter Gedanke, über den ich ein paar Stunden lang nachgedacht habe. Was könnte das Verhalten der Z-Achse bedeuten...? Es sieht aus wie Berge und eine Ebene davor. Wie der Kaukasus in Russland ist der aktuelle Preis und der Rest der Hochebene ist der Durchschnitt...)
Im Raum betrachtet, ist es jedoch eine Entfernung entlang der z-Achse. Aber wie groß ist der Abstand? Jedenfalls habe ich mir noch keine Anologe einfallen lassen, aber ich frage mich, ob Nikolai genau das getan hat, was ich in meinem Kopf gesehen habe☺
 
Maxim Romanov:
Im Weltraum betrachtet, handelt es sich jedoch um eine Entfernung entlang der z-Achse. Aber in welchem Bereich?
Z ist die Periode des MA.
In diesem Fall haben alle drei Dimensionen unterschiedliche Größenordnungen:
x - Zeit
y - Preis
z ist der Zeitraum für die Berechnung des arithmetischen Mittels
Ihre Bereiche werden einfach an die Bildschirmgröße angepasst.
 

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:

void OnTick()
  {
  static uint lastCalc=0;
  uint cur=GetTickCount();
  if (cur-lastCalc>15) {
    ReDrawMyCanvas();
    lastCalc=cur;
   }
  }

 
Nikolai Semko:

Dies sollte im Feature-Thread gepostet werden - nützlich.
 

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.


 
Vladimir Pastushak:

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