Die Funktion, Farbe in Schattierungen zu zerlegen. - Seite 6

 

Zurück zum Algorithmus für die Farbzerlegung. Ich entschuldige mich für das Off-Topic.

Wenn jemand Fragen dazu hat, wie und wo der Algorithmus anzuwenden ist, findet er Erklärungen auf den vorherigen Seiten.

 
Vladislav Andruschenko:

Darf ich meine "10 Kopeken" über die GUI und alles, was hier diskutiert wird, einbringen?

Jeder hat einen Traum, ein Hobby, eine Leidenschaft.

Manche gehen angeln, manche fotografieren, manche reisen gerne, manche modellieren gerne Flugzeuge....


Und so ist es auch hier:

Die MetaTrader-Entwickler haben einen guten Schritt zur Popularisierung der MQL5-Sprache gemacht!

Alle Beiträge über das Fehlen von Mustern oder Strukturen werden von denjenigen benötigt, die sie verwenden.


Auch die Erstellung von GUI-Bibliotheken, zum Beispiel durch Anatoly, ist sein Hobby. Er hat es getan und es allen gezeigt.

Ich sah zu und fragte mich... und am Anfang dessen, was er mit seiner Bibliothek zu "machen" begann - ich hatte schon lange vor, eine "GUI" zu machen , Aber ich habe gekniffen.

Und dann habe ich jemanden nicht "eingeholt", der es sehr schwer hatte.

Er hat diese Bibliothek erstellt, und ich bin sicher, dass viele Menschen sie nutzen.

Für ihn war es ein Hobby, eine Lieblingsbeschäftigung. Er war nur mit diesem Projekt beschäftigt (wahrscheinlich) und hatte es satt. Und jetzt hat er es satt.


Auch Peter hat sein Hobby. Peter macht seine eigene GUI.

Und jeder wird auf seinem eigenen beharren.

Manche brauchen es, manche nicht.


Warum etwas beweisen? Haben Sie Ihre Meinung geändert? Versuchen Sie, "hilfreich" zu sein? Werden Sie zu ihnen, versuchen Sie es nicht.


Manche Leute brauchen eine grafische Benutzeroberfläche in EAs, manche nicht.

Jemand zeichnet Spiele in MQL, und jemand braucht keine Parameter in einem EA.

Jeder Mensch ist so unterschiedlich, dass es keinen Sinn hat, jemanden von etwas zu überzeugen.

Jeder soll seinen eigenen Standpunkt vertreten und sich um seine eigenen Angelegenheiten kümmern. Dann wird es keine Konflikte geben.


Wir alle haben irgendwo angefangen. Wir haben alle etwas voneinander gelernt. Warum waren früher alle freundlicher?

Vladislav. Mich treibt der Wunsch an, den Unterschied zwischen mir und den Menschen zu verstehen. Warum ich und sie so unterschiedliche Ansichten haben. Das ist alles.

Die einen sehen es als Werbung für ihr Produkt, die anderen als Fixierung, wieder andere als fixe Idee und so weiter.

Aber in Wirklichkeit argumentiere und beweise ich, weil ich andere und mich selbst verstehen will.

 
Реter Konow:

Vladislav. Mich treibt der Wunsch an, den Unterschied zwischen mir und den Menschen zu verstehen. Warum ich und sie so unterschiedliche Ansichten haben. Das ist alles.

Manche sehen darin eine Werbung für ihr Produkt, andere sehen darin eine Fixierung, wieder andere eine fixe Idee und so weiter.

Aber ich argumentiere und streite, weil ich andere und mich selbst verstehen will.

Ich versichere Ihnen, es gibt sie: OOP und prozedurale Programmierung.

Wo immer OOP erforderlich ist, wird OOP eingesetzt.

Wo OOP erforderlich ist, wird eine einfache Art der Programmierung - die prozedurale Programmierung - verwendet.

Es gibt so viele Menschen, wie es Meinungen gibt.

Wenn Sie zu einer IT-Firma gehen und ihnen sagen, dass Sie in PP programmieren, werden sie Sie wegschicken.

Hier tun Sie, was Sie tun wollen.


Sobald Sie anfangen, Tutorials zu Ihrer GUI zu schreiben, werden Sie "Ihre" Armee von Fans aufbauen. Es wird auch eine Armee von Trollen geben, aber das ist auch ein Muss :-)

Sie sollen sich untereinander streiten, was besser ist. GUI auf OOP oder GUI auf PP.


Vertrauen Sie mir einfach.

Machen Sie, was Sie wollen, und es wird Leute geben, die es nutzen.
Streiten Sie nicht, geraten Sie nicht in Konflikte. Es ist besser, wenn Sie Ihre ganze Kraft in Ihr Projekt stecken!

 
Vladislav Andruschenko:

Ich versichere Ihnen, es gibt sie: OOP und prozedurale Programmierung.

Wo OOP erforderlich ist, wird OOP verwendet.

Wo OOP erforderlich ist, wird eine einfache Art der Programmierung - die prozedurale Programmierung - verwendet.

Es gibt so viele Menschen, wie es Meinungen gibt.

Wenn Sie zu einer IT-Firma gehen und ihnen sagen, dass Sie in PP programmieren, werden sie Sie wegschicken.

Hier tun Sie, was Sie tun wollen.


Sobald Sie anfangen, Tutorials zu Ihrer GUI zu schreiben, werden Sie "Ihre" Armee von Fans aufbauen. Es wird auch eine Armee von Trollen geben, aber das ist auch ein Muss :-)

Sie sollen sich untereinander streiten, was besser ist. GUI auf OOP oder GUI auf PP.


Vertrauen Sie mir einfach in diesem Punkt.

Machen Sie, was Sie wollen, und es wird Leute geben, die es nutzen.
Streiten Sie nicht, streiten Sie nicht. Dafür wird viel Energie aufgewendet, die Sie besser in Ihr Projekt stecken sollten!

Ja. Ich stimme mit Ihnen überein.

Und was halten Sie von meinem Algorithmus?

Wie praktisch und nützlich ist es Ihrer Meinung nach?

 
Реter Konow:

Gut. Ich stimme mit Ihnen überein.

Was halten Sie von meinem Algorithmus?

Wie praktisch und nützlich ist es Ihrer Meinung nach?


Als Verfechter von "leicht und einfach" ziehe ich Ihre Version vor.

Aber ich bin, wie viele andere auch, der Meinung, dass OOP obligatorisch ist.

Aufgrund meiner spezifischen Tätigkeit weiß ich, dass "Kunde" beispielsweise einen eindeutigen Code benötigt, auch mit russischen Variablennamen. Die russischen Kunden sind im Allgemeinen verrückt danach.

Und da sie ein Programm "bestellen", bedeutet das, dass sie nichts verstehen und einen leichteren Code brauchen. Mit russischen Variablennamen.......


Aber ich habe schon vor langer Zeit erkannt, dass die benutzerdefinierte Programmierung einen nach unten zieht! Es gibt keine Selbstentfaltung. Jetzt ist es interessanter, eigene Projekte zu erstellen, ohne den Code zu zeigen. Wo Sie bereits OOP verwenden können.

Und im Allgemeinen braucht der Benutzer einen einfachen Konstruktor, in dem Elemente vorhanden sind, die direkt in der Grafik verwaltet werden können.


Nochmals. Jede Lösung hat ihre eigene Fangemeinde.

Mach einfach, was du willst...


dies ist alles aus Erfahrung, so dass ich nicht behaupten, richtig zu sein, was ich gesagt habe....

Ich lese alle Threads in der allgemeinen Diskussion (weil ich zu faul bin, in diesem Bereich zu stöbern :-) ) und bin erstaunt.

Manchmal möchte ich "meine 12 Cent" einbringen, aber jemandem etwas zu beweisen, raubt Energie.

Aus dem gleichen Grund - der Diskussion über "was man auf dem Markt braucht" - braucht jeder etwas anderes.

Jemand braucht eine Vollautomatik mit einem RISK-Parameter, und jemand braucht 100500 Parameter!

Es ist besser, ein Projekt zu haben und es bis zur Erschöpfung zu entwickeln, und erst dann zum nächsten überzugehen.

Dann ändert man den Namen des Programms und das Bild des Testers und vervielfältigt Hunderte und Tausende von Projekten, die niemand braucht....


IMHO

Respekt an alle!!!

 

Wir danken Ihnen für Ihr Feedback. Schön, dass es Ihnen gefallen hat. Ich würde mich freuen, wenn Sie diesen Algorithmus in Ihren Entwicklungen verwenden könnten.

Ich bin ein wenig vom Thema abgekommen. Das ist meine Schuld. Das war der Algorithmus, über den wir gesprochen haben. Der Rest der Themen kann ignoriert werden.
 
Vladislav Andruschenko:


Mir, als Anhängerin von "einfach und unkompliziert", gefällt Ihre Version besser.

Aber ich halte wie viele andere an der Idee fest, dass OOP obligatorisch ist.

Aufgrund meiner Arbeit weiß ich, dass z. B. "Kunde" einen klaren Code braucht, auch mit russischen Variablennamen. Die russischen Kunden sind im Allgemeinen verrückt danach.

Und da sie ein Programm "bestellen", bedeutet das, dass sie nichts verstehen und einen leichteren Code brauchen. Mit russischen variablen Namen.......

...

In meiner Praxis ist noch nie jemand stecken geblieben, mit Ausnahme von 3 Personen in diesem Forum.

Ich zum Beispiel kotze vor solchem Code, ich lese ihn nicht länger als 3 Zeilen und lösche ihn.

 
Vitaly Muzichenko:

In meiner Praxis ist noch nie jemand weggeschleppt worden, mit Ausnahme von 3 Personen in diesem Forum.

Ich zum Beispiel habe genug von solchem Code, ich lese nicht mehr als 3 Zeilen und lösche ihn.

Als englischsprachige Person steht es Ihnen frei, meine Entscheidung zu ignorieren. Dort gibt es nur wenige englische Wörter.

Übrigens, da Sie sich so gut mit englischem Code auskennen, helfen Sie mir bitte, den von Nikolay Semko vorgeschlagenen Code zu analysieren:

#include <Canvas\iCanvas.mqh> //https://www.mql5.com/ru/code/22164

union rgb {uint clr; uchar c[4];};

void OnStart()
  {
   rgb c,cc;
   double d=5;
   while(!IsStopped())
     {
      c.c[2]=uchar(127.5*(1+sin(d*1.2))+0.4999); c.c[1]=uchar(127.5*(1+sin(d*1.9))+0.4999); c.c[0]=uchar(127.5*(1+sin(d*2.8))+0.4999);  // генерируем новый цвет
      cc.clr=c.clr;
      double k0,k1,k2;
      if(c.c[2]>=c.c[1] && c.c[2]>=c.c[0]) {k2=1; if(c.c[2]==0) {k1=1; k0=1;} else {k1=(double)c.c[1]/c.c[2]; k0=(double)c.c[0]/c.c[2];}}// если Red - максимальный цвет
      else if(c.c[1]>=c.c[2] && c.c[1]>=c.c[0]) {k1=1; k2=(double)c.c[2]/c.c[1]; k0=(double)c.c[0]/c.c[1];} // если Green - максимальный цвет
      else {k0=1; k2=(double)c.c[2]/c.c[0]; k1=(double)c.c[1]/c.c[0];} // если Blue - максимальный цвет
      for(int y=0; y<W.Height; y++)
        {
         double k=255.0*(double)y/(W.Height-1);
         c.c[2]=uchar(k2*k+0.4999);
         c.c[1]=uchar(k1*k+0.4999);
         c.c[0]=uchar(k0*k+0.4999);
         Canvas.LineHorizontal(0,W.Width-1,y,ColorToARGB(c.clr,240));
        }
      Canvas.FillRectangle(W.Width/2-80,W.Height/2-50,W.Width/2+80,W.Height/2+50,ColorToARGB(cc.clr,240));
      Canvas.CurentFont("Tahoma",20,22,ColorToARGB(~cc.clr)); // 20 -  размер шрифта, 22 - межстрочный интервал
      Canvas.TextPosition(W.Width/2-70,W.Height/2-40);
      Canvas.Comm("Текущий цвет:");
      Canvas.Comm("R = "+string(cc.c[2]));
      Canvas.Comm("G = "+string(cc.c[1]));
      Canvas.Comm("B = "+string(cc.c[0]));
      ChartChanged(); // на всякий случай контролируем изменение размеров окна, т.к. это скрипт (в индикаторах и экспертах это происходит автоматически)
      Canvas.Update();
      d+=0.01;
      Sleep(30);
     }
  }

Ehrlich gesagt, verstehe ich nicht, wie das funktioniert. Es hat viele kurze englische Silben. Genau das, was Sie mögen.

 
Vitaly Muzichenko:

In meiner Praxis wurde noch nie jemand geschleppt, mit Ausnahme von 3 Personen in diesem Forum.

Ich zum Beispiel habe genug von solchem Code, ich lese nicht mehr als 3 Zeilen und lösche ihn dann.

Ich stimme mit Ihnen völlig überein.

Die Variablen müssen in einer internationalen Sprache abgefasst sein.


Aber ich spreche von "Kunden".

Ich habe einige getroffen, die wollten, dass die Variablen auf Russisch sind.

Wie kann ich das bestreiten? Der Kunde "braucht".

Deshalb habe ich vor einem Jahr die Aufträge aufgegeben, damit ich nichts beweisen muss.


Wenn Sie zum Beispiel eine Bestellung mit englischen Namen aufgeben, sagt niemand etwas zu Ihnen.

Und versuchen Sie, Variablen auf Russisch zu erstellen - er würde es lieben. Und er wird sich wegschleppen, weil er kein Englisch kann.

 
Реter Konow:

Es steht Ihnen als Englischsprachigem frei, meine Entscheidung zu ignorieren. Dort gibt es nur wenige englische Wörter.

Übrigens, da Sie so gut mit englischem Code umgehen können, helfen Sie mir bitte mit dem von Nikolay Semko vorgeschlagenen Code:

Ehrlich gesagt, verstehe ich nicht, wie das funktioniert. Es hat viele kurze englische Silben. Genau das, was Sie mögen.


Nun, englische Namen werden nicht umsonst erfunden.

Ich kann Ihnen ein weiteres Beispiel nennen, bei dem russische Namen Ihren Code zerstören:

Sie geben den Code an einen Kunden weiter , der nicht über kyrillische Schrift verfügt. Das war's. .... alle weg..... :-)


Ein weiterer Punkt.

Der GOOGLE-Übersetzer hat zum Beispiel Englisch als Muttersprache. Wenn Sie den Titel auf Englisch schreiben, können sie ihn mit dem Übersetzer übersetzen.

Andernfalls wird es Probleme geben.

Nun, das ist nur eine Aussage für die Zukunft.


Für Russen ist die Sprache Russisch.

Für andere ist das Englische vertrauter.

Spanisch ist auch die beliebteste Sprache.