Ver Mensaje Individual
  #6  
Antiguo 24-11-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Hola JF Sebastian,
La verdad es que no termino de comprender lo que buscas.
Por empezar el espacio formado entre rojo (255,0,0) y azul (0,0,255) es amplio. Por lo que existen muchos colores posibles.
Si entedemos a esto en el espacio, tendremos tres ejes: R, G, B. Los ejes van desde el 0 al 255. Si sólo debemos desplazarnos desde el eje R al B, quiere decir que en ningún momento intervendrá el eje G. Claramente se ve que se trata de un giro de 90º. Por tanto sólo obtendremos combinaciones de distintas tonalidades de rojo y azul.

Con esto en mente a mi se me ocurre rotar el vector (x,0,z) "a" grados uniformemente distribuídos. Es decir que cuando a es cero, tendremos:

x (rojo) = 255 * cos(0) = 255
z (azul) = 255 * sen(0) = 0
Por tanto el color que se obtiene es: (x,0,z) = (255,0,0)

Cuando a = 90, tenemos:

x (rojo) = 255 * cos(90) = 0
z (azul) = 255 * sen(90) = 255

Es decir el color (0,0,255)

¿Se entiende la idea?
Bueno ahora la cuestión es como obtener ese "a"... bueno si consideramos que 90º es el 100% o 1, y que 0º es 0% o 0... entonces el grado de desplazamiento estará dado por 90/cantidad, siendo "cantidad" la cantidad de colores que deseas obtener... por ejemplo tus 20. En este caso, los 20 colores estarán espaciados 90/20º (4,5º) uno de otro.

Bueno esa es mi idea... no se si es eso lo que buscas. Si no se me entiende y/o no es lo que buscas te agradecería que lo hicieras saber.

¿Cúal es el problema de éste método? que sólo obtendrás los colores ubicados sobre el contorno que describe el vector por lo que no comprende todo el especto posible con dos colores. Por ejemplo el color (255,0,255) no estará cubierto.

Si nos pudieras explicar con mejores detalles lo que buscas te podríamos ser de ayuda.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita