Puede usar la representación de color HSL para generar los colores del arco iris en orden. Sin embargo, tendrá que experimentar un poco para obtener los siete colores “primarios”, ya que los colores del arco iris no están espaciados uniformemente en la representación.
Jugando un poco, obtuve los siguientes valores de tono:
colors = [0., 0.09, 0.18, 0.3, 0.65, 0.75, 0.8]
- ¿Por qué la ciencia popular parece tan vacía?
- ¿Qué pasa si las teorías y principios científicos no son correctos?
- ¿La administración pública se considera arte y ciencia?
- ¿Cuál es la ciencia detrás del deseo de suicidarse?
- ¿Es posible inferir algo sobre el creador de un sistema simplemente mirando el sistema? ¿Por qué?
Ahora, si desea una ecuación, puede ajustar un polinomio a esos valores. Una quintica produce resultados aceptables:
def arcoiris (x): retorno 0.3463 * x - 0.403885 * x ** 2 + 0.194754 * x ** 3 - 0.0349178 * x ** 4 + 0.00211502 * x ** 5
Excluí el término de cero grados, para evitar valores de color no válidos (es decir, negativos).
Ahora puede usar esta función (o los valores de la lista) para convertir de HSL a RGB. De nuevo, en python:
importar colorsys colores = [0., 0.09, 0.18, 0.3, 0.65, 0.75, 0.8] para i, color en enumerate (colores): imprimir i, color, arcoiris (i) #rgb = colorsys.hsv_to_rgb (color, 1., 1.) rgb = colorsys.hsv_to_rgb (arco iris (i), 1., 1.) # Ahora use el valor rgb en un marco de dibujo / trazado, etc.
Ahora, al usar más puntos y la fórmula, puede generar el espectro “continuo”. De hecho, cuando los puntos están lo suficientemente cerca, será suficiente un enfoque lineal simple.