Couleurs équidistantes

Résolu
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 juin 2013 - 23 janv. 2008 à 19:09
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 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

5 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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

A+
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
23 janv. 2008 à 19:21
Bonjour,

J'ai du mal à comprendre la signification que tu donnes à équidistance en matière de couleurs ...

Même avec ma palette de peintre, je n'y parviendrais pas sans autres explications très précises sur ce que tu appelles equidistance.
0
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 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
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
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):
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jacques13 Messages postés 252 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 29 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.


Encore merci pour m'avoir débloqué!


Ta solution était mieux qu'un palliatif!


Jacques13
0
Rejoignez-nous