Donné deux couleurs et n étapes, comment peut-on calculer n couleurs, y compris les deux couleurs qui créent un effet de fondu?
Si possible, pseudo-code est préférable, mais ce sera probablement mis en œuvre en Java.
Merci!
OriginalL'auteur TT. | 2008-11-26
Diviser chaque couleur dans ses composantes RVB et puis de calculer les différentes étapes nécessaires.
Évidemment étendre que pour le vert et le bleu.
ouais je pensais que comme je l'écrivais il - mais il y a quelques façons de contourner cela, et je pensais laisser un exercice pour le maître d'œuvre 🙂
OriginalL'auteur nickf
Il y a deux bonnes questions connexes, vous devez également examiner:
Veuillez noter que vous êtes souvent mieux de faire cela dans l'espace de couleur HSV plutôt que de RVB - il génère plus de couleurs agréables à l'œil humain (moins de chance d'aller à l'encontre ou négatif propriétés optiques).
Bonne chance!
-Adam
OriginalL'auteur Adam Davis
Si vous voulez un mélange qui ressemble à la plupart sélecteur de couleur GUI widgets, vous voulez vraiment traduire de LGV ou HSV. À partir de là, vous êtes probablement très bien avec l'interpolation linéaire dans chaque dimension.
Essayer de faire tout interpolations directement dans l'espace de couleurs RVB est une mauvaise idée. C'est trop non linéaire (et non, correction gamma n'aide pas dans ce cas).
je pense que pour de nombreuses situations, un linéaire de base RVB transformation est satisfaisante, par exemple: ma zone de texte est rouge et je veux qu'il à fondu bien au vert quand il a été rempli correctement. tout se passe en moins d'une seconde et est suffisant.
Vrai, si c'est un temporelles effet, vous avez beaucoup plus de marge de manœuvre que d'un effet d'espace. @marc - Quel est le problème de l'interpolation dans le HSV? J'ai eu un peu de succès avec elle.
Voici le code pour TSL traduction: stackoverflow.com/a/24687720/35690
OriginalL'auteur Tom
Pour ceux qui recherchent quelque chose qu'ils peuvent copier et coller. Rapidement à une fonction pour les couleurs RVB. Retourne une couleur unique qui est la quantité de
ratio
plus proche dergbColor2
.OriginalL'auteur Chris Dolphin
La quesiton est ce que la transformation voulez-vous produire? Si vous transposer dans le HSV colourspace et donné
FF0000 et 00FF00
Il passera du rouge au jaune au vert.
Toutefois, si vous définissez "noir", ou quelque autre de l'ombre comme étant le point médian de la fusion, vous avez à faire de l'ombre à celle de la couleur de premier ff0000->000000->00ff00 ou par l'intermédiaire blanche : ff0000 -> ffffff -> 00ff00.
Transformer via HSV peut cependant être amusant, parce que vous avez à utiliser un peu de trigo pour la carte de la circulaire de la carte dans les composantes du vecteur.
OriginalL'auteur Kent Fredric
La meilleure chose à faire est de l'interpolation linéaire entre les composantes de couleur (voir nickf de réponse). Juste être conscient que l'œil est fortement non linéaire, donc il ne sera pas nécessairement vous êtes à la prise de mesures. Certains espaces de couleurs tenter de répondre à cette (CIE peut-être?), de sorte que vous pouvez transformer en un autre espace de couleur d'abord, interpoler, puis de les transformer en arrière RVB ou ce que vous êtes en utilisant.
OriginalL'auteur Drew Hall
Comment sur cette réponse
OriginalL'auteur gbk