cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013
-
23 janv. 2008 à 19:09
cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013
-
25 janv. 2008 à 19:00
Bonjour,
J'aimerais confectionner quelque chose qui ressemblerait à un cartouche de carte thématique avec 15 rectangles alignés et colorés dans quinze couleurs différentes et bien discernables. J'avais pensé aux couleurs du spectre de la lumière visible, mais j'ai du mal à faire une partition discrète en 15 couleurs (équidistantes, si je puis dire) définies soit par RGB soit par un entier long.
Quelqu'un aurait il déjà été confronté à ce problème?
Jacques13
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 23 janv. 2008 à 21:48
Salut,
en VBA cela donne quelque chose comme ca :
Sub couleurs()
Dim i As Long, rouge As Long, vert As Long, bleu As Long, n As Long, compteur As Long
Dim NbCouleur As Long
rouge = 255
vert = 0
bleu = 0
compteur = 1
NbCouleur = 3 'par couleur primaire
For i = 1 To 5
For n = 0 To NbCouleur - 1
Select Case i
Case 1 'du rouge au jaune
vert = (255 / NbCouleur) * n
Case 2 'du jaune au vert
vert = 255
rouge = 255 - ((255 / NbCouleur) * n)
Case 3 ' du vert au cyan
rouge = 0
bleu = (255 / NbCouleur) * n
Case 4 'du cyan au bleu
bleu = 255
vert = 255 - ((255 / NbCouleur) * n)
Case 5 'du bleu au magenta
vert = 0
rouge = (255 / NbCouleur) * n
End Select
ActiveWorkbook.Colors(compteur) = RGB(rouge, vert, bleu) 'specifique a excel tu n'en auras pas besoin mais sache que la limite d'un classeur excel est de 56 couleurs
Cells(compteur, 1).Interior.Color = ActiveWorkbook.Colors(compteur)
compteur = compteur + 1
Next n
Next i
End Sub
ce code donne un degradé de couleurs du Rouge au Magenta sur la colonne A. il ne te reste plus qu'a le traduire en VB6, evidemment si c'est bien ce que tu cherchais
cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013 23 janv. 2008 à 22:15
Pour moi, équidistance signifie écarts de densité de couleur équivalents entre chaque case.
Le mot est probablement maladroit!
En tout cas, bravo à Bigfish qui me propose une solution presque parfaite!
Je dis presque car l'écart de densité entre les cases 6 & 7 et 12 & 14 est nul, en d'autre termes la couleur est la même.
Encore merci.
Jacques13
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 25 janv. 2008 à 00:42
Bonjour,
je n'est pas la meme perception que toi sur l'ecart des densités. De mon cote la difficulté est de percevoir la difference entre les couleurs 6,7 et 8. Je pense que cela est du d'une part à ma propre perception des couleurs et d'autre part au rendu de mon materiel, c'est a dire carte graphique, ecran etc. Pour pallier à ce probleme j'ai juste rajouté une ligne apres le Case 3 comme ceci :
Case 3
vert = 199 + (n * 28)
rouge = 0
bleu = (255 / NbCouleur) * n
De fait on ne peu plus mathematiquement parler d'équidistance mais peut etre d'équidistance visuel
Je suis (grandement) interessé par la solution que tu as trouvé pour resoudre ce probleme d'ecart de "densité visuel"
A+
P.S. n'etant pas tres fort en orthographe, j'ai du checher sur le net la bonne orthographe pour le mot "Pallier" et j'ai trouvé cette jolie phrase :
Il partait dans la vie les mains vides, et méprisait les biens qui
s'acquièrent. Pour pallier cette indigence, il ne lui restait qu'une issue:
paraître (BEAUVOIR,Mém. j. fille, 1958, p.36):
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jacques13
Messages postés252Date d'inscriptionmardi 3 juin 2003StatutMembreDernière intervention29 juin 2013 25 janv. 2008 à 19:00
La solution que j'ai trouvée, en m'inspirant de ta proposition, c'est de créer des intervalles parfaitement égaux de 0 à 255 pour le bleu, de 255 à 0 pour le rouge et de 0 à 0 (en passant par 255 pour la valeur médiane) pour le vert (cf tableau ci-dessous):
R
,
G
,
B
,
----
255
,
0
,
0
,
----
237
,
36
,
18
,
----
219
,
73
,
36
,
----
200
,
109
,
55
,
----
182
,
146
,
73
,
----
164
,
182
,
91
,
----
146
,
219
,
109
,
----
127
,
255
,
127
,
----
109
,
219
,
146
,
----
91
,
182
,
164
,
----
73
,
146
,
182
,
----
55
,
109
,
200
,
----
36
,
73
,
219
,
----
18
,
36
,
237
,
----
0
,
0
,
255
Essaye ces valeurs et tu verras que l'"équidistance" des couleurs est parfaitement respectée.