Inkscape: rectángulo con relleno de arcoíris [cerrado]

Me gustaría crear una forma que se llene gradualmente con los colores del espectro de luz visible, del rojo al azul. Estoy usando Inkscape. Cuando trato de especificar un gradiente de rojo a azul, elige una ruta de color extraña. Cualquier ayuda sería apreciada

¿Podrías hacer una edición que nos muestre el intento que hiciste?
La respuesta dada a continuación funcionó bien: usé upload.wikimedia.org/wikipedia/commons/c/cc/Spectrum.svg

Respuestas (1)

Esto tiene que ver con el algoritmo que utilizan InkScape y otros programas de gráficos para crear degradados, a saber (pseudocódigo):

var gradient = []
var firstColor, secondColor, steps
for i in range(steps):
  p = i/steps
  R = firstColor.R * p + secondColor.R * (1 - p)
  G = firstColor.G * p + secondColor.G * (1 - p)
  B = firstColor.B * p + secondColor.B * (1 - p)
  gradient.push((R,G,B))

Sin embargo, el espectro de luz visible no funciona de esta manera, porque el color del mundo real no es RGB. RGB es un método para engañar a los ojos para que vean muchos colores con pocos colores, al igual que CMYK.

Ahora, técnicamente, su pregunta no tiene respuesta, porque ...

Las pantallas a color (por ejemplo, monitores de computadora y televisores) no pueden reproducir todos los colores perceptibles por el ojo humano. Los colores fuera de la gama de colores del dispositivo, como la mayoría de los colores espectrales, solo se pueden aproximar.

Pero digamos que quiere hacer la aproximación en InkScape. Desafortunadamente, solo puede hacer esto haciendo un gran degradado con todos los colores, el estándar SVG no tiene bandera para "gradientes de luz visible".

Usando esta imagen de Wikipedia ...

espectro editado en inkscape

Puede mover los dos puntos de control hasta que solo muestren el degradado de rojo a azul :)

nuevo espectro

Alternativamente, puede usar el Editor de degradado para cambiar el orden de los colores y eliminar todos los colores antes y después del rojo y el azul.