Ein Crowdsourced-Projekt auf Canvas durchführen - Seite 20

 

Der Vergleich dieser Formeln führt in der Tat zu unterschiedlichen Ergebnissen. Ich habe auch die Geschwindigkeiten verglichen.

Die linke Hälfte besteht aus drei verschiedenen Farbschichten, die alle eine Transparenz von 128 aufweisen. Die Farben werden über das Terminal gemischt.

Das obere rechte Bild ist in einer Schicht hergestellt, die nach dem englischen Wiki gemischt wurde.

Unten rechts in einer Schicht, laut russischem Wiki.


Vergleich von Terminal und englischem Wiki per Screenshot (Terminal von oben)


Vergleich von Formeln nach in der Datei gespeicherten Ressourcen (Englisch von oben)


Die Erstellung einer Ressource nimmt viel Zeit in Anspruch, verglichen mit der Berechnung der Farbe und dem bis zu 10-maligen Füllen des Arrays, was wahrscheinlich keinen Sinn macht, sich mit OCL zu beschäftigen.

PS Scheint eine gute Idee zu sein, man kann MT mit Photoshop auf den Punkt bringen :)

Dateien:
script.mq5  4 kb
 
Leute, die die CCanvas-Klasse kennen, können Sie mir sagen, ob es möglich ist, dort einen Farbverlauf zu erstellen? Zum Beispiel für ein Rechteck, um es in eine Schaltfläche zu verwandeln? Das wollte ich schon lange fragen).
 
Реter Konow:
Leute, die die CCanvas-Klasse kennen, können Sie mir sagen, ob es möglich ist, dort einen Farbverlauf zu erstellen? Zum Beispiel für ein Rechteck, um es in eine Schaltfläche zu verwandeln? Das wollte ich schon lange fragen).
Es gibt sie.
 
Artyom Trishkin:
Prüfen.

Gibt es Beispiele für mit Canvas gezeichnete Schaltflächen? Ich kann mich nicht erinnern, welche gesehen zu haben. Ich habe schon einige sehr coole Buttons gesehen, aber sie basierten auf Quellbildern, und ich habe noch keine vollständig auf Leinwand gezeichneten gesehen...
 
Реter Konow:

Gibt es Beispiele für Buttons, die mit Kanawas gezeichnet wurden? Ich kann mich nicht erinnern, welche gesehen zu haben. Ich habe schon einige sehr coole Buttons gesehen, aber sie basierten auf Quellbildern, und ich habe noch keinen komplett auf Leinwand gezeichneten Button gesehen...
Lesen Sie Anatolys Beschreibung seiner Grafikbibliothek - es geht um Informationselemente, wenn ich mich recht erinnere.
 
Artyom Trishkin:
Lesen Sie Anatolys Beschreibung seiner Graphbibliothek - über Informationselemente, wenn ich mich recht erinnere.

Ich werde versuchen, es zu finden...
 
Ich habe es gefunden. Das Tooltip-Element verwendet einen Farbverlauf. Aber ich habe nicht verstanden, ob es möglich ist, für jede Verlaufslinie eine andere Farbe und Transparenz einzustellen. Ich werde die Kanvas in Ruhe durchgehen müssen. Ich bin neugierig...
 
Реter Konow:
Leute, die die CCanvas-Klasse kennen, können Sie mir sagen, ob es möglich ist, dort einen Farbverlauf zu erstellen? Zum Beispiel für ein Rechteck, um es in eine Schaltfläche zu verwandeln? Das wollte ich schon lange fragen).
Hallo Peter!
Ich sehe kein Problem mit dem Farbverlauf.
Hier ist ein einfaches, klares Beispiel für ein Skript, das alle Farben durchläuft und ein Quadrat mit wechselndem Farbverlauf dynamisch zeichnet.
Damit es funktioniert, müssen Sie das Array m_pixels[] in Canvas.mqh nach public
public:
   uint              m_pixels[];               // array of pixels
#include <Canvas\Canvas.mqh>
void OnStart()
  {
   CCanvas Grad;

   color col;
   if(!Grad.CreateBitmapLabel(0,0,"Grad",100,100,256,256,COLOR_FORMAT_XRGB_NOALPHA)) Print("Error creating canvas: ",GetLastError());
   for(int r=0; r<256; r++) // red
     {
      int j=0;
      // заполняем цветной градиентный квадрат
      for(int b=0; b<256; b++) // blue
         for(int g=0; g<256; g++) // green
           {
            col=(color)(((r&0x0000FF)<<16)|((g&0x0000FF)<<8)|(b&0x0000FF)); // формируем цвет RGB
            Grad.m_pixels[j]=col; // рисуем точку с текущим цветом
            j++;
           }
      Grad.Update();
      Sleep(20);  // Подождем для плавности
     }
  }
Dateien:
Gradient.mq5  2 kb
 
Nikolai Semko:
Hallo Peter!
Ich sehe kein Problem mit dem Farbverlauf.
Hier ist ein einfaches Beispiel für ein Skript, das alle Farben durchläuft und ein Quadrat mit Farbverlauf zeichnet.
Damit es funktioniert, müssen Sie das Array m_pixels[] in Canvas.mqh nach public


Hallo Nikolai!

Danke für das Beispiel, aber das habe ich nicht gemeint. Ich habe mich nicht klar ausgedrückt. Ich meinte den Rahmen des Quadrats, der das Quadrat in eine Schaltfläche verwandelt. Dazu müssen die Linien des Rahmens unterschiedlich sein. Wenn zum Beispiel die obere und linke Linie hell und die untere und rechte Linie dunkel sind, ist die Taste gedrückt, wenn es umgekehrt ist, sieht die Taste gedrückt aus. Ich wollte wissen, wie man das mit Kanvas machen kann.

Der Farbverlauf bezeichnet die Rahmenlinien. Vielleicht ist das falsch...

 
Реter Konow:

Hallo Nikolai!

Danke für das Beispiel, aber das habe ich nicht gemeint. Ich habe mich nicht klar ausgedrückt. Ich meinte den Rahmen des Quadrats, der das Quadrat in eine Schaltfläche verwandelt. Dazu müssen die Linien des Rahmens unterschiedlich sein. Wenn zum Beispiel die obere und linke Linie hell und die untere und rechte Linie dunkel sind, ist die Taste gedrückt, wenn es umgekehrt ist, sieht die Taste gedrückt aus. Ich wollte wissen, wie man das mit Kanvas machen kann.

Der Farbverlauf bezeichnet die Rahmenlinien. Vielleicht ist das falsch...


Das Bild der Schaltfläche kann entweder durch Laden eines fertigen bmp-Bildes oder durch Software-Zeichnen (es gibt viele Varianten) erstellt werden. Und dann einfach durch die Verarbeitung der Mausereignisse in OnChartEvent sein Bild ändern.