Colorgradient

rk_mail Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 6 janvier 2008 - 5 janv. 2008 à 18:19
rk_mail Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 6 janvier 2008 - 6 janv. 2008 à 21:20
Bonjour,


Nous sommes à la recherche d'une solution (en VB - si possible sans usage d'activeX)

permettant de renvoyer les codes RGB

correspondant aux subdivisions X de gradients entre 2 couleurs ('Start_Color' - 'End_Color').


SCHEMATIQUEMENT - si on a comme argument :

Start_Color = "RGB(202, 248, 205)"   ' vert très clair

End_Color = "RGB(0, 128, 64)"          'vert très foncé

Subdivision_X = 5

Une solution (ou piste de...) est recherchée pour renvoyer les

codes RGB correspondant à cette étendue de couleurs RGB divisée en X classes.


Si on a RGB(202, 248, 205)  <-->  RGB(0, 128, 64) ET 'Subdivisions' = 5

La fonction recherchée renverrait

1) RGB(202, 248, 205)

2) RGB (X , X , X)

3)  RGB (X , X , X)

4) RGB (X , X , X)

5) RGB(0, 128, 64)


En espérant avoir exposé le problème de façon claire

Et un Grand MERCI par avance pour toute réponse!

Rkr

2 réponses

lebarn Messages postés 124 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 31 mai 2008
5 janv. 2008 à 22:44
        Salut,

    Si j'ai bien compris ton problème, il te faudrait une fonction qui en prenant en arguments deux couleurs, te renverrait le code RGB de X couleurs intermédiaires où X serait aussi un argument. Ca te

permettrait de faire un dégradé avec peu de couleurs ou beaucoup. Si j'ai bien compris ton idée, bah je peux peut-être t'aider, j'ai déjà eu l'occasion de réaliser une fonction comme celle-là.

    Prenons comme exemple deux couleurs RBG(R1, G1, B1) et RBG(R2, G2, B2).

DiffR = R1 - R2
DiffG = G1 - G2
DiffB = B1 - B2

DivisionR = DiffR / X
DivisionG = DiffG / X
DivisionB = DiffB / X

Couleur1 = RBG(R1, G1, B1)
Couleur2 = RBG(R1 + (DivisionR), G1 + (DivisionG), B1 + (DivisionB))
Couleur3 = RBG(R1 + (2DivisionR), G1 + (2DivisionG), B1 + (2DivisionB))
Couleur4 = RBG(R1 + (3DivisionR), G1 + (3DivisionG), B1 + (3DivisionB))
Couleur5 = RBG(R1 + (4DivisionR), G1 + (4DivisionG), B1 + (4DivisionB))
Couleur6 = RBG(R1 + (5DivisionR), G1 + (5DivisionG), B1 + (5DivisionB))
Couleur7 = RBG(R1 + (6DivisionR), G1 + (6DivisionG), B1 + (6DivisionB))
...
CouleurX = RBG(R2, G2, B2)

En gros, tu prends la différence entre les composantes de chaque couleur et tu la divises en X parties et ensuite tu construis les couleurs en ajoutant les divisions de couleurs. Il faut juste ne pas oublier  de faire attention aux nombres décimaux (À virgule) et se débrouiller pour qu'ils s'arrondissent.

++
0
rk_mail Messages postés 2 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 6 janvier 2008
6 janv. 2008 à 21:20
Excellent  - Merci pour ta réponse.

Suis également en train de tester les couleurs HSV .

Vais utiliser ta solution pour tester ce qui est faisable en RGB .

Salutations - Encore Grand Merci.

Et - c'est de mise - Bonne Année 2008 .
0
Rejoignez-nous