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

 
Реter Konow:

Mon algorithme fonctionne bien. C'est rapide (15-20 microsecondes). Le vôtre ne fonctionne pas correctement. Suggérez-vous que je devrais refaire mon algorithme en fonction de votre exemple ?)


C'est ça, Peter, tu m'ennuies avec ton impénétrabilité.

Je n'en peux plus.

Je gagne. Votre algorithme est parfait !

 
Nikolai Semko:


C'est ça, Peter, tu m'ennuies avec ton impénétrabilité.

Je n'en peux plus.

Je gagne. Votre algorithme est parfait !

Le mien n'est pas parfait. C'est juste plus correct.

La morale de cette fable est la suivante : ni la syntaxe, ni la langue, ni le style, ni le respect des normes ne sont des règles ! Les règles du développeur.

 
Реter Konow:

Le mien n'est pas parfait. C'est juste plus fidèle.

OK, votre section en espace rgb est plus droite que la mienne.
 
Nikolai Semko:
OK, votre section dans l'espace rgb est plus simple que la mienne.

Ok. Le sujet était intéressant et utile.

 
Les gens sont restés sans voix...
 
Алексей Тарабанов:
Les gens sont restés sans voix...
Bien sûr qu'ils l'ont fait. Il n'y avait pas d'autres idiots que moi.
 
Nikolai Semko:
Tu parles. Je suis le seul à être trompé.

Allez... Une fonction utile était née :

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Fonction de décomposition des couleurs.

Nikolai Semko, 2018.10.15 22:21

...

Voici la seule fonction nécessaire et plus polyvalente pour travailler avec le dégradé :

union rgb {uint clr; uchar c[4];};
void Gradient(uint clr1,uint clr2,uint &arr[],uint size)
  {
   if(size==0) return;
   ArrayResize(arr,size);
   arr[0]=clr1; 
   rgb c1,c2;
   c1.clr=clr1;
   c2.clr=clr2;
   double R1=c1.c[2],G1=c1.c[1],B1=c1.c[0];
   double R2=c2.c[2],G2=c2.c[1],B2=c2.c[0];
   double deltaR=(R2-R1)/(size-1);
   double deltaG=(G2-G1)/(size-1);
   double deltaB=(B2-B1)/(size-1);
   R1 += 0.4999;
   G1 += 0.4999;
   B1 += 0.4999;
   for(uint i=1;i<size;i++)
     {
      R1+=deltaR; c1.c[2]=uchar (R1);
      G1+=deltaG; c1.c[1]=uchar (G1);
      B1+=deltaB; c1.c[0]=uchar (B1);
      arr[i]=c1.clr;
     }
  }

Comme il génère tous les algorithmes donnés ici en deux lignes. C'est la plus rapide, car il n'y a qu'une seule opération "+" dans la boucle, pas même une multiplication. De plus, cette fonction donne des mélanges de deux couleurs, et ne calcule pas seulement les nuances d'une couleur.


 
Artyom Trishkin:

Allez... Une fonction utile était née :


Oui, mais personnellement, il est peu probable que je l'utilise, car je suis avare de générer un tableau intermédiaire de plusieurs Ko pour le gradient dynamique. Pour le statique, c'est certainement utile. Mais j'en ai surtout des dynamiques et je calcule le gradient à la volée sans tableaux.
Quoi qu'il en soit, Andrei Hatimlansky avait raison. Pyotr m'a arnaqué pendant longtemps comme un pigeon.
 
Artyom Trishkin:

Allez... Une fonction utile était née :

car il génère tous les algorithmes donnés ici en deux lignes. C'est la plus rapide, car il n'y a qu'une seule opération "+" dans la boucle, pas même une multiplication. De plus, cette fonction donne des mélanges de deux couleurs, et ne calcule pas seulement les nuances d'une couleur.

Très possible... Couleurs, mélodies et sons... Les citations actuelles et leurs modifications, d'ailleurs, sonnent plutôt bien !

A quoi ressemblent-ils en couleur ? Et qu'en serait-il - harmonie des couleurs ou cacophonie ?

 
aleger:

Très probablement... Couleurs, mélodies et sons... Les citations actuelles et leurs modifications, d'ailleurs, sonnent très bien !

Et à quoi ressemblent-ils en couleur ? Et qu'en serait-il - harmonie des couleurs ou cacophonie ?

Vous avez donné une idée à Peter. Voyons voir quel genre de "Petrophonia" ce sera.