63 votes

Algorithme : Comment puis-je passer du rouge au vert via le jaune à l’aide de valeurs RVB ?

Je souhaite afficher une couleur basée sur une valeur de 0 à 100. À une extrémité (100), c’est du rouge pur, à l’autre extrémité (0), du vert pur. Au milieu (50), je veux qu’il soit jaune.

Et je veux que les couleurs s’estompent progressivement de l’une à l’autre, de sorte qu’à 75 ans, la couleur soit moitié rouge et moitié jaune, etc.

Comment programmer les valeurs RVB pour refléter cette décoloration ? Merci.

48voto

jterrace Points 21939

Les valeurs RVB pour les couleurs :

  • Rouge 255, 0, 0
  • Jaune 255, 255, 0
  • Vert 0, 255, 0

Entre le rouge et le jaune, espacez également vos ajouts au canal vert jusqu’à ce qu’il atteigne 255. Entre jaune et vert, espacez également vos soustractions du canal rouge.

19voto

Rick Sladkey Points 23389

Voici une interpolation linéaire très simple des composants de couleur. Il pourrait répondre à vos besoins.

11voto

PengOne Points 33226

Je ne connais pas C#, donc cette réponse n’est qu’une approche suggérée. Soit `` la qui va de à `````` . Quelque chose comme ça devrait fonctionner:

L’idée est de commencer par le rouge : . Ensuite, augmentez le vert pour devenir jaune: . Ensuite, diminuez le rouge pour obtenir le vert: `` .

Edit: Voici le code en C #

7voto

Vorspire Points 23

Méthode d’extension simplifiée;

Utilisation;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X