Colorgradient

Signaler
Messages postés
2
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
6 janvier 2008
-
Messages postés
2
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
6 janvier 2008
-
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

Messages postés
124
Date d'inscription
vendredi 25 avril 2003
Statut
Membre
Dernière intervention
31 mai 2008

        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.

++
Messages postés
2
Date d'inscription
jeudi 7 juin 2007
Statut
Membre
Dernière intervention
6 janvier 2008

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 .