Carte arc-en-ciel de couleurs RVB
Supposons que j'ai une classe RainbowColorsMapper avec le constructeur RainbowColorsMapper(int n)
, où n>=2. Maintenant, j'ai envie d'avoir la cartographie de l'arc-en-ciel de couleurs allant du rouge au violet qui-je obtenir de l'aide de la méthode mapper.getColor(int number)
où les faibles valeurs correspondent à une extrémité rouge, et du haut près de n de violet fin. Si n = 2, mapper.getColor(0)
renvoie la plupart des couleurs de gauche du spectre (près de red), et mapper.getColor(1)
renvoie le plus à droite de la couleur. Même avec les plus gros n avec mise à l'échelle automatique.
Ma question: est-ce possible relativement facile, et si oui quelles sont les suggestions sur l'algorithme?
- Re: "RainbowColorsMapper(int n), où n>=2" et "mapper".getColor(1) renvoie le plus à droite de la couleur"? De quoi tu parles, Willis?
- Ce n' "Même avec les plus gros n avec mise à l'échelle automatique" signifie?
Vous devez vous connecter pour publier un commentaire.
La meilleure façon de le faire sera de travailler dans le LGV colourspace plutôt que de RVB. Créer des couleurs où la saturation et la luminosité sont fixes (à 100% et à 50% je dirais), et la teinte varie entre adaptées points de terminaison (dont vous pourriez avoir besoin d'expérimenter pour trouver). Convertir la LGV valeurs RVB à l'aide de Couleur.getHSBColor.
Rappelez-vous que les couleurs de l'arc-en-ciel sont classés en fonction de la longueur d'onde, donc, fondamentalement, dans votre modèle,
n
est en quelque sorte lié à la longueur d'onde. Si votre question se résume essentiellement à la cartographie de la longueur d'onde (n
) RVB. Ce n'est pas totalement trivial processus, mais pour un début, vous pourriez vérifier cette question:Convertir la fréquence de la lumière RVB?
Ou l'utilisation d'une Teinte Saturation Valeur de modèle de couleur, et d'itérer sur la Teinte.
En gros, vous avez un changement de teinte de 0 à 300 dans le modèle de couleur
Comment calculer RVB à partir de la Teinte que vous pouvez trouver sur Wikipédia
son assez facile une fois que vous le comprendre.
Le code-dessous vous permettra de cycle entre tous les rbg couleurs
5,230,123
par exemple, n'est pas possible...Couleur HSL vous permet de le faire facilement.