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

 
Nikolai Semko:
Ich habe die Tangas von Ihrem Algorithmus entfernt. Es war mir ein Rätsel, warum Sie sie verwendet haben. Schauen Sie in den Code, wie würde ich dann die echte Farbe ausgeben. Sie haben einen Haufen unnötiger Prüfungen, Sie verwenden Funktionen wie Tangens, Array-Sortierung, ich nur +-*//. Mt4 ist langsamer, das ist verständlich, aber nicht 30 Mal langsamer.
OK, ich werde meinen Algorithmus später auf 4 setzen und sehen. Warum verwenden Sie überhaupt 4? Für die GUI ist 4 überhaupt nicht gut. Er liest nicht einmal die Ressourcen. Von 4 nach 5 ist es viel schwieriger, den Code umzuwandeln als umgekehrt.

MT4 kann 60 Mal langsamer sein. Prüfen Sie die Füllrate des int-Feldes auf beiden Plattformen und sehen Sie nach.

 
Nikolai Semko:
Ich habe den Tanga von deinem Algorithmus entfernt. Es war mir ein Rätsel, warum Sie sie verwendet haben. Schauen Sie in den Code, wie würde ich dann die tatsächliche Farbe ausgeben. Sie haben einen Haufen unnötiger Prüfungen, Sie verwenden Funktionen wie Tangens, Array-Sortierung, ich nur +-*//. Mt4 ist langsamer, das ist verständlich, aber nicht 30 Mal langsamer.
OK, ich werde meinen Algorithmus später auf 4 setzen und sehen. Warum verwenden Sie überhaupt 4? Für die GUI ist 4 überhaupt nicht gut. Er liest nicht einmal die Ressourcen. Es ist viel schwieriger, den Code von 4 auf 5 zu ändern als umgekehrt.

Für die grafische Benutzeroberfläche ist die Note 4 sehr gut. Aber davon ist hier nicht die Rede. Lassen Sie uns nicht vom Thema abschweifen.

 
Nikolai Semko:
Ich habe den Tanga von deinem Algorithmus entfernt. Es war mir ein Rätsel, warum Sie sie verwendet haben. Schauen Sie in den Code, wie würde ich dann die tatsächliche Farbe ausgeben. Sie haben einen Haufen unnötiger Prüfungen, Sie verwenden Funktionen wie Tangens, Array-Sortierung, ich nur +-*//. Mt4 ist langsamer,

Es ist klar, dass Tangas weggelassen werden können. Ich dachte, es wäre benutzerfreundlicher. Was nützt es, Mikrosekunden zu sparen, wenn die Funktion nur einmal aufgerufen wird?

 
Nikolai Semko:
Sie haben einen Haufen unnötiger Prüfungen, Sie verwenden Funktionen wie Tangens, Array-Sortierung, während ich nur +-*/ verwende.

Nikolai, bevor Sie sagen, dass ich etwas falsch mache, lassen Sie uns sicherstellen, dass Ihr Algorithmus tatsächlich schneller und besser ist. Ich werde meinen Algorithmus auf MT5 setzen und die Geschwindigkeit überprüfen. Und Sie drucken einen Ausdruck Ihrer Anordnung aus und vergleichen ihn mit den Windows-Farben. (In diesem Fall müssen Sie immer noch den String-Typ verwenden. Das ist einer der Gründe, warum ich es benutzt habe. Sie wurde auch zu Vergleichszwecken benötigt.)

 
Реter Konow:

Nikolai, bevor Sie sagen, dass ich etwas falsch mache, lassen Sie uns sicherstellen, dass Ihr Algorithmus tatsächlich schneller und besser ist. Ich werde meinen Algorithmus auf MT5 setzen und die Geschwindigkeit überprüfen. Und Sie drucken einen Ausdruck Ihrer Anordnung aus und vergleichen ihn mit den Windows-Farben. (In diesem Fall müssen Sie immer noch den String-Typ verwenden. Das ist einer der Gründe, warum ich es benutzt habe. Ich brauchte sie auch zum Vergleich).

Mein Algorithmus auf der 4 hat einen mehr als 4-fachen Vorteil gegenüber Ihrem.

Hier ist ein Paradebeispiel dafür, warum es nicht ratsam ist, die 4.

Erstens: Selbst einfache Algorithmen mit +/-* arbeiten 5-7 mal langsamer.

Zweitens ging meine Funktion sofort auf 4 ohne Fehler. Ich habe es bei Ihnen versucht, habe einige Korrekturen vorgenommen, aber der Code ergab völlig andere Werte, es gab einige Farbstreifen. Probieren Sie es selbst aus, wenn Sie mir nicht glauben.

Der Punkt ist, dass Sie Ihre Zeit stehlen, indem Sie 4. Früher oder später werden Sie den Code von 4 auf 5 umstellen müssen. Und wenn Sie komplett auf 5 umgestellt haben, müssen Sie vielleicht schon in zwei oder drei Jahren die umgekehrte Prozedur durchführen, weil der 4-Kern nicht mehr so gefragt sein wird wie jetzt, und selbst wenn er gefragt sein wird, steht der Aufwand für die Umstellung des Codes von 5 auf 4 in keinem Verhältnis zu dem umgekehrten Vorgang.

Dateien:
 
Реter Konow:

Nikolai, bevor Sie sagen, dass ich etwas falsch mache, lassen Sie uns sicherstellen, dass Ihr Algorithmus tatsächlich schneller und besser ist. Ich werde meinen Algorithmus auf MT5 setzen und die Geschwindigkeit überprüfen. Und Sie drucken einen Ausdruck Ihrer Anordnung aus und vergleichen ihn mit den Windows-Farben. (In diesem Fall müssen Sie immer noch den String-Typ verwenden. Das ist einer der Gründe, warum ich es benutzt habe. Sie war auch für den Vergleich notwendig).

Und übrigens funktioniert es bei mir ohne solche Pannen:

Es gibt also einen Fehler in Ihrem Algorithmus. Sie können es selbst herausfinden.

 
Nikolai Semko:

Mein Algorithmus auf 4 hat mehr als die 4-fache Verstärkung als Ihrer.

Hier ist ein Paradebeispiel dafür, warum es nicht ratsam ist, die 4.

Erstens sind selbst einfache +/-*-Algorithmen 5-7 mal langsamer.

Zweitens ging meine Funktion sofort auf 4 ohne Fehler. Ich habe es bei Ihnen versucht, habe einige Korrekturen vorgenommen, aber der Code ergab völlig andere Werte, es gab einige Farbstreifen. Probieren Sie es selbst aus, wenn Sie mir nicht glauben.

Der Punkt ist, dass Sie Ihre Zeit stehlen, indem Sie 4. Früher oder später werden Sie den Code von 4 auf 5 umstellen müssen. Aber wenn Sie komplett auf 5 umgestellt hätten, müssten Sie wahrscheinlich in ein paar Jahren nicht mehr die umgekehrte Prozedur durchlaufen, weil 4 nicht mehr so gefragt ist wie jetzt, und selbst wenn, wäre der Aufwand für die Umstellung von 5 auf 4 unverhältnismäßig groß.

Nicolai, lassen Sie sich nicht von Nebenthemen ablenken. Es geht um die Korrektheit der Algorithmen und den Vergleich ihrer Geschwindigkeit.

  1. Zeigen Sie, dass Ihr Algorithmus korrekt funktioniert, indem Sie Farben aus einem Array ausdrucken und mit den Farben in der Windows-Palette vergleichen.
  2. Ich werde meinen Algorithmus erst einmal auf MT5 übertragen und die Ergebnisse mitteilen.

 
Реter Konow:

Nikolai, bevor Sie sagen, dass ich etwas falsch mache, sollten wir sicherstellen, dass Ihr Algorithmus tatsächlich schneller und besser ist. Ich werde meinen Algorithmus auf MT5 setzen und die Geschwindigkeit überprüfen. Und Sie drucken einen Ausdruck Ihrer Anordnung aus und vergleichen ihn mit den Windows-Farben. (In diesem Fall müssen Sie immer noch den String-Typ verwenden. Das ist einer der Gründe, warum ich es benutzt habe. Sie wurde auch zum Vergleich benötigt).

Um den Stringtyp auszugeben, müssen Sie ihn nicht in den Hauptteil der Funktion selbst aufnehmen, sondern die Werte zum Zeitpunkt der Ausgabe in diesen Typ konvertieren.

for (int l=0;l<256;l++) {Col.clr=Gradient[l]; Print("RGB = " + string(Col.c[2])+", "+string(Col.c[1])+", "+string(Col.c[0]));}
 
Nikolai Semko:

Um einen Zeichenkettentyp auszugeben, müssen Sie ihn nicht in den Körper der Funktion selbst aufnehmen, sondern die Werte zum Zeitpunkt der Ausgabe in diesen Typ übersetzen.

Sie sind wieder durch andere Themen abgelenkt. Die Frage ist nicht, wie man den Stringtyp ausgibt. Das ist der persönliche Stil eines jeden.

Sie haben meinen Code geändert und eine Menge eigenen Code hinzugefügt. Dies hat das Ergebnis erheblich verändert. Ich übersetze alles in MT5 und versuche zu verstehen, was Sie hier geschrieben haben.

Der Punkt ist, dass ich beim Vergleich mit der Farbpalette alles klar vor Augen habe. Aber wenn ich es mit Ihrem Algorithmus auf dem Bildschirm anzeige, habe ich ein Problem. Ich versuche herauszufinden, wo das Problem liegt.

 
Реter Konow:

Sie sind wieder durch andere Themen abgelenkt. Es geht nicht um den Ausgabetyp der Zeichenketten. Das ist der persönliche Stil eines jeden.

Sie haben meinen Code geändert und eine Menge eigenen Code hinzugefügt. Dies hat das Ergebnis erheblich verändert. Ich übersetze alles in MT5 und versuche zu verstehen, was Sie hier geschrieben haben.

Der Punkt ist, dass ich beim Vergleich mit der Farbpalette alles klar vor Augen habe. Aber wenn ich es mit Ihrem Algorithmus auf dem Bildschirm anzeige, habe ich ein Problem. Ich versuche herauszufinden, wo das Problem liegt.

Peter, das Problem ist, dass Sie eine Funktion ins Forum gestellt haben, die jeder sehen und auf die Farbzerlegung anwenden kann. Aber diese Funktion erzeugt nicht das notwendige Farbfeld, sondern nur ein String-Array, das nur für den Druck geeignet ist, anstatt den eigenen Farbverlauf auf dem Bildschirm darzustellen. Sie ist die Katze im Sack und hat keinen Respekt vor anderen. Übersetzen Sie es also selbst, falls jemand es braucht.