El objetivo principal del modelo de color RGB (Rojo Verde Azul) es la detección, representación y visualización de imágenes en sistemas electrónicos, como televisores y computadoras.
HSL (Hue Saturation Lightness) es un modelo de color alternativo, diseñado en la década de 1970 por investigadores de gráficos por computadora para alinearse más estrechamente con la forma en que la visión humana percibe los atributos de creación de color
Aquí están los artículos wiki para RGB y HSL . Es común que los programas gráficos realicen los cálculos en HSL y luego los conviertan al formato preferido para la mayoría de las pantallas: RGB.
La tarea es escribir una función / programa que tome HSL como entrada y produzca RGB.
Puede elegir su representación preferida para E / S, siempre que sea coherente entre ellas.
Por ejemplo, pueden ser una matriz / tupla con 3 elementos o un objeto con 3 propiedades con nombre h
, s
y l
, pero voy a aceptar otras variaciones inteligentes, como la recepción de la hsl como un entero (precisión perder) y dar salida a un número entero rgb.
Se puede suponer que la entrada es segura en rango y formato, los cuales puede decidir. Sugiero encarecidamente los rangos 0-1 0-1 0-1
o 0-360 0-100 0-100
para hsl y / 0-1 0-1 0-1
o 0-255 0-255 0-255
para rgb.
Se requiere que cada respuesta especifique las dos anteriores y ponga varias variaciones en sus respuestas si está particularmente orgulloso de ellas, incluso si no tienen menos caracteres que sus otras variaciones. Pon el más pequeño encima.
Pseudo casos de prueba para 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
Las fórmulas para la conversión se pueden encontrar aquí :
Esta es una buena manera de visualizar la conversión:
a-b
notación es incorrecto en sí mismo cuando se trata de valores no enteros, pero diría que está bien mantener la pregunta más legible. Si alguien más se queja, lo repensaré, así que gracias por señalarlo
[0,360)
entonces :)
H
de0-360
es[0,360)
, ¿estaría mejor escrito como0-359
?