-
1 pièce(s) jointe(s)
Echelle de couleur
Bonjour, j'ai une géométrie de la forme suivante (cf pièce jointe):
une succession de rectangles que je souhaiterai coloré du bleu au rouge en fonction de valeurs contenues dans un vecteur (allant de 0(bleu) à 10(rouge)). je comptais associé une valeur à chaque rectangle et le coloré en fonction de celle-ci. Comme je débute, je ne sais pas par où commencer.
Merci d'avance
-
J'ai avancé dans mon problème, j'aimerais juste savoir comment créer des couleurs intermédiaires entre le rouge et le bleu. J'ai essayé newGradientPaint mais elle est limité au nombre de couleur...
Quelqu'un a t-il une idée sur la question svp?
-
C'est un dégradé que tu veux ?
Ou créer des couleurs unies à différente valeurs ?
Si j'ai bien compris, c'est la 2e solution.
Dans ce cas tu peux créer la couleur que tu souhaites en partant des couleurs RVB
new Color(int r, int v, int b);
new Color(255, 0, 0) => Rouge
new Color(0, 0, 255) => Bleu
Pour avoir les valeurs intermédiaire c'est simple :
255, 0, 0
254, 0, 1
253, 0, 2
252, 0, 3
... ...
-
C'est effectivement assez simple, tu as 3 équations :
R = Rr + (Rb - Rr) * p;
G = 0;
B = Br + (Bb - Br) * p;
sachant que Rr = 255, Br = 0 (rouge) et Rb = 0 et Bb = 255 (b) et que ton pourcentage p varie entre 0 et 1.
Une autre méthode est de passer par des composantes HSB, on a alors plus qu'une seule équation :
H = Hr + (Hb - Hr) * p;
S = 1;
B = 1;
avec Hr = 360° (rouge) et Hb = 240° (bleu) et qu'on veut passer par l'arc le plus cours (donc 360° -> 240° au lieu de 0° -> 240°) et bien sur que le pourcentage p varie entre 0 et 1.
-