L'objectif principal du modèle de couleur RVB (rouge vert bleu) est la détection, la représentation et l'affichage d'images dans des systèmes électroniques, tels que des téléviseurs et des ordinateurs
HSL (Hue Saturation Lightness) est un modèle de couleur alternatif, conçu dans les années 1970 par des chercheurs en infographie pour s'aligner plus étroitement avec la façon dont la vision humaine perçoit les attributs de couleur
Voici les articles wiki pour RGB et HSL . Il est courant que les programmes graphiques fassent les calculs en HSL, puis les convertissent au format préféré pour la plupart des écrans: RVB.
La tâche consiste à écrire une fonction / un programme qui prend HSL comme entrée et génère RVB.
Vous pouvez choisir votre représentation préférée pour les E / S, tant qu'elle est cohérente entre elles.
Par exemple, ils peuvent être un tableau / tuple avec 3 éléments ou un objet avec 3 propriétés nommées h
,s
et l
, mais je vais accepter d' autres variations intelligentes, comme la réception de la HSL comme un entier (perte de précision) et délivrer un entier rgb.
L'entrée peut être supposée sûre en termes de plage et de format, que vous pouvez tous deux décider. Je suggère fortement soit les gammes 0-1 0-1 0-1
ou 0-360 0-100 0-100
pour hsl, et 0-1 0-1 0-1
ou0-255 0-255 0-255
pour rgb.
Chaque réponse est requise pour spécifier les deux ci-dessus, et mettez différentes variations dans vos réponses si vous êtes particulièrement fier d'eux, même si elles n'ont pas moins de caractères que vos autres variantes. Mettez le plus petit sur le dessus.
Pseudo cas de test pour 0-360 0-100 0-100
→0-255 0-255 0-255
h s l → r g b
0 0 0 → 0 0 0
90 56 17 → 43 68 19
202 19 39 → 81 104 118
72 55 26 → 88 103 30
Les formules de conversion peuvent être trouvées ici :
C'est une belle façon de visualiser la conversion:
a-b
notation est mauvaise en soi lorsqu'il s'agit de valeurs non entières, mais je dirais que c'est correct de garder la question plus lisible. Si quelqu'un d'autre se plaint, je vais y repenser, alors merci de l'avoir signalé
[0,360)
alors :)
H
de0-360
est[0,360)
, serait - il mieux écrit0-359
?