Fonction de mise à l'échelle des couleurs
Je suis en train de visualiser certaines valeurs dans un formulaire. Elles vont de 0 à 200 et je voudrais que ceux autour de 0 vert et deviennent rouge vif comme ils vont à 200.
Fondamentalement, la fonction doit retourner la couleur en fonction de la valeur saisie. Des idées ?
source d'informationauteur Tomas Pajonk
Vous devez vous connecter pour publier un commentaire.
Fondamentalement, la méthode générale pour une transition en douceur entre les deux valeurs est la fonction suivante:
Que, étant donné, on définit une fonction qui fait la transition pour les triplets (RGB, HSV, etc).
En supposant que vous avez les couleurs RGB pour le s et e triplés, vous pouvez utiliser le transition3 fonction. Toutefois, en passant par l'espace de couleur HSV produit plus "naturel" des transitions. Donc, étant donné les fonctions de conversion (volé sans vergogne de l'Python colorsys module et converties en pseudo-code :):
vous pouvez avoir le code comme suit:
Vous ne dites pas dans quel environnement vous êtes en train de faire cela. Si vous pouvez travailler avec HSV couleursce serait assez facile à faire par des paramètre S = 100 et V = 100, et la détermination de H par:
La conversion de VHS en RGB est également assez facile.
[MODIFIER] Remarque: contrairement à d'autres solutions proposées, cela va changer de couleur vert -> jaune -> orange -> rouge.
Choisir un vert que vous aimez (RGB1 = #00FF00, par exemple) et un Rouge que vous aimez (RGB2 = #FF0000, par exemple) et ensuite calculer la couleur comme ce
Pour mieux contrôlable et précise effet, vous devez utiliser l'espace de couleur HSV. Avec le HSV, vous pouvez facilement ajuster la Teinte, la Saturation, la Luminosité et séparés les uns des autres. Ensuite, vous ne la transformation de RVB.
s'étendant sur @tzot du code... vous pouvez également créer un point médian entre le début et la fin, ce qui peut être utile si vous voulez une "transition de couleur"!
À la recherche par le biais de cet article de wikipédia personnellement, je choisirais un chemin au travers d'un espace de couleur, et la carte de valeurs sur ce chemin.
Mais c'est un droit de la fonction. Je pense que vous pourriez être mieux adapté à un javascript sélecteur de couleur, vous pouvez trouver une couleur rapide qui va vous donner l'hexagone, et vous pouvez stocker les Hex.
Si vous utilisez une fonction linéaire de rampes d'accès pour les Vert et Rouge de valeurs en tant que Peter Parker a suggéré, la couleur pour une valeur de 100 sera essentiellement la gerbe vert (127, 127, 0). Idéalement, vous voulez qu'il soit un orange vif ou jaune au milieu. Pour cela, vous pouvez utiliser: