Fonction de décomposition de la couleur en nuances. - page 8

 
Nikolai Semko:
J'ai enlevé les strings de votre algorithme. C'était un mystère pour moi de savoir pourquoi tu les utilisais. Regarde dans le code, comment je sortirais la vraie couleur alors. Tu as un tas de vérifications inutiles, tu utilises des fonctions comme la tangente, le tri de tableau, je ne fais que +-*//. Mt4 est plus lent, c'est compréhensible, mais pas 30 fois plus lent.
OK, je vais coller mon algorithme sur 4 plus tard et voir. Pourquoi utilisez-vous le 4 ? Pour l'interface graphique, 4 n'est pas bon du tout. Il ne lit même pas les ressources. Il est beaucoup plus difficile de convertir un code 4 en code 5 que l'inverse.

MT4 peut être 60 fois plus lent. Vérifiez le taux de remplissage des tableaux d' int sur les deux plateformes et voyez.

 
Nikolai Semko:
J'ai enlevé le string de votre algorithme. C'était un mystère pour moi de savoir pourquoi tu les utilisais. Regardez dans le code, comment je sortirais la couleur réelle alors. Vous avez un tas de vérifications inutiles, vous utilisez des fonctions comme la tangente, le tri de tableau, je ne fais que +-*//. Mt4 est plus lent, c'est compréhensible, mais pas 30 fois plus lent.
OK, je vais coller mon algorithme sur 4 plus tard et voir. Pourquoi utilisez-vous le 4 ? Pour l'interface graphique, 4 n'est pas bon du tout. Il ne lit même pas les ressources. Il est beaucoup plus difficile de modifier le code de 4 à 5 que l'inverse.

Pour l'interface graphique, 4 est très bien. Mais nous ne parlons pas de cela. Ne nous laissons pas distraire.

 
Nikolai Semko:
J'ai enlevé le string de votre algorithme. C'était un mystère pour moi de savoir pourquoi tu les utilisais. Regardez dans le code, comment je sortirais la couleur réelle alors. Vous avez un tas de vérifications inutiles, vous utilisez des fonctions comme la tangente, le tri de tableau, je ne fais que +-*//. Mt4 est plus lent,

Il est clair que les strings peuvent être omis. Je pensais que ce serait plus convivial. Quel est l'intérêt d'économiser des microsecondes si la fonction n'est appelée qu'une seule fois ?

 
Nikolai Semko:
Vous avez un tas de vérifications inutiles, vous utilisez des fonctions comme la tangente, le tri de tableaux, alors que je n'utilise que +-*/.

Nikolaï, avant de dire que je me trompe, vérifions que votre algorithme est effectivement plus rapide et meilleur. Je vais mettre mon algorithme sur MT5 et vérifier la vitesse. Et vous imprimez votre tableau et le comparez aux couleurs de Windows. (Dans ce cas, vous devrez toujours utiliser le type chaîne. C'est l'une des raisons pour lesquelles je l'ai utilisé. Elle était également nécessaire à des fins de comparaison).

 
Реter Konow:

Nikolaï, avant de dire que je me trompe, vérifions que votre algorithme est effectivement plus rapide et meilleur. Je vais mettre mon algorithme sur MT5 et vérifier la vitesse. Et vous imprimez votre tableau et le comparez aux couleurs de Windows. (Dans ce cas, vous devrez toujours utiliser le type chaîne. C'est l'une des raisons pour lesquelles je l'ai utilisé. J'en avais également besoin pour la comparaison).

Mon algorithme sur le 4 a plus de 4 fois l'avantage sur le vôtre.

Voici un excellent exemple de la raison pour laquelle il n'est pas judicieux d'utiliser 4.

Tout d'abord, même les algorithmes simples avec +/-* fonctionnent 5 à 7 fois plus lentement.

Deuxièmement, ma fonction est immédiatement passée à 4 sans erreur. J'ai essayé le vôtre, j'ai fait un tas de corrections, mais le code a produit des valeurs complètement différentes, il y avait des bandes de couleur. Essayez vous-même, si vous ne me croyez pas.

Le fait est que vous perdez votre temps en utilisant 4. Tôt ou tard, vous devrez refaire le code de 4 à 5. Et si vous passez complètement à la 5, il se peut que dans deux ou trois ans vous deviez déjà faire la procédure inverse, parce que le 4-core ne sera pas aussi demandé que maintenant, et même s'il sera demandé, l'effort dépensé pour refaire du code de la 5 à la 4 est disproportionné par rapport à l'inverse.

Dossiers :
 
Реter Konow:

Nikolaï, avant de dire que je me trompe, vérifions que votre algorithme est effectivement plus rapide et meilleur. Je vais mettre mon algorithme sur MT5 et vérifier la vitesse. Et vous imprimez votre tableau et le comparez aux couleurs de Windows. (Dans ce cas, vous devrez toujours utiliser le type chaîne. C'est l'une des raisons pour lesquelles je l'ai utilisé. Elle était également nécessaire pour la comparaison).

Et d'ailleurs, avec ma fonction, elle fonctionne sans ces problèmes :

Il y a donc un bug dans votre algorithme. Vous pouvez le découvrir par vous-même.

 
Nikolai Semko:

Mon algorithme sur 4 a plus de 4 fois le gain du vôtre.

Voici un excellent exemple de la raison pour laquelle il n'est pas judicieux d'utiliser 4.

Premièrement, même les algorithmes +/-* simples sont 5 à 7 fois plus lents.

Deuxièmement, ma fonction est immédiatement passée à 4 sans erreur. J'ai essayé le vôtre, j'ai fait un tas de corrections, mais le code a produit des valeurs complètement différentes, il y avait des bandes de couleur. Essayez vous-même, si vous ne me croyez pas.

Le fait est que vous perdez votre temps en utilisant 4. Tôt ou tard, vous devrez refaire le code de 4 à 5. Mais si vous étiez complètement passé à 5, vous n'auriez probablement pas à passer par la procédure inverse dans quelques années, car 4 ne sera pas aussi demandé qu'aujourd'hui et même s'il l'était, l'effort consacré à la conversion du code de 5 à 4 serait disproportionné par rapport à l'effort consacré à l'inverse.

Nicolai, ne nous laissons pas distraire par des sujets étrangers. La conversation porte sur l'exactitude des algorithmes et la comparaison de leur vitesse.

  1. Montrez que votre algorithme fonctionne correctement en imprimant les couleurs d'un tableau et en les comparant aux couleurs de la palette Windows.
  2. Je vais traduire mon algorithme en MT5 pour le moment et rapporter les résultats.

 
Реter Konow:

Nikolaï, avant de dire que je me trompe, vérifions que votre algorithme est effectivement plus rapide et meilleur. Je vais mettre mon algorithme sur MT5 et vérifier la vitesse. Et vous imprimez votre tableau et le comparez aux couleurs de Windows. (Dans ce cas, vous devrez toujours utiliser le type chaîne. C'est l'une des raisons pour lesquelles je l'ai utilisé. Elle était également nécessaire pour la comparaison).

Pour sortir le type de chaîne de caractères, il n'est pas nécessaire de le mettre dans le corps de la fonction elle-même, mais plutôt de convertir les valeurs dans ce type au moment de l'impression.

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:

Pour produire un type de chaîne de caractères, il n'est pas nécessaire de le placer dans le corps de la fonction elle-même, mais plutôt de traduire les valeurs dans ce type au moment de l'impression.

Vous êtes à nouveau distrait par d'autres sujets. Il ne s'agit pas de savoir comment sortir le type de chaîne. C'est le style personnel de chacun.

Tu as changé mon code et ajouté beaucoup de ton propre code. Cela a considérablement modifié le résultat. Je traduis tout en MT5 et j'essaie de comprendre ce que vous avez écrit ici.

Le fait est qu'en comparant avec la palette de couleurs, tout est clair. Mais en l'affichant à l'écran avec votre algorithme, j'ai un problème. J'essaie de comprendre où est le problème.

 
Реter Konow:

Vous êtes à nouveau distrait par d'autres sujets. Ce n'est pas une question de chaînes de type de sortie. C'est le style personnel de chacun.

Tu as changé mon code et ajouté beaucoup de ton propre code. Cela a considérablement modifié le résultat. Je traduis tout en MT5 et j'essaie de comprendre ce que vous avez écrit ici.

Le fait est qu'en comparant avec la palette de couleurs, tout est clair. Mais en l'affichant à l'écran avec votre algorithme, j'ai un problème. J'essaie de comprendre où se situe le problème.

Peter, le problème est que vous avez posté une fonction sur le forum pour que tout le monde puisse voir et appliquer la décomposition des couleurs. Mais cette fonction ne génère pas le tableau de couleurs nécessaire, elle ne fait que générer un tableau de chaînes de caractères convenant uniquement à l'impression au lieu d'afficher son propre dégradé à l'écran. C'est un cochon dans un poke et aucun respect pour les autres. Alors traduisez-le vous-même, si quelqu'un en a besoin.