Unlimited Faxes, No Fees, Dedicated Phone Number
Generación de paletas cíclicas Por Ariel S.
Como se vio anteriormente calculamos el valor de cada punto del conjunto que se va a
representar tomando el número de iteraciones necesarias para salir de un bucle que
engloba diferentes condiciones relacionadas al conjunto en sí mismo. Una vez que tenemos
todo ese conjunto de valores necesitamos representarlos en pantalla como una imagen, y lo
que se hace es asignarle a cada número correspondiente la velocidad de escape del bucle,
un determinado color.
Podemos asignar aleatoriamente un color cualquiera a cada velocidad de escape, pero el
resultado que obtenemos al representar no es del todo bueno, veremos algo así
Para obtener una imagen un poco mas suave en el cambio de colores lo que se utiliza es una
de las llamadas paletas cíclicas, esto significa que va variando gradualmente en forma de
ciclos de colores, paulatinamente variando de uno a otro y no de manera brusca como el
caso anterior.
Como se sabe, cada color puede descomponerse en tres canales, el del R (rojo), G (verde) y
B (azul), si estamos utilizando una profundidad de color de 24 bits , significa que
tenemos disponibles 2²4 colores disponibles en la paleta, o lo que es lo mismo, la
cantidad de colores que surge de combinar 28 valores de cada color primario (R, G, B).
Despues de buscar la fórmulas para generar este tipo de paletas las encontré en unas
revistas viejas de PCManía que tenía archivadas por ahí. En realidad eran fórmulas
para generar el efecto "plasma" pero con algunas modificaciones servirán ahora.
Lo que se hará es tomar secuencias de valores periódicos por ejemplo mediante el uso de
la función seno o coseno, y tomando diferentes desplazamientos obtenemos distintas
paletas, escrito en C quedaría algo como:
void paleta(int rr, int gg,
int bb)
{ int q=30,t=40,u=40;
for (int x=0;x<=itmax;x++)
{ int r,g,b;
r=int(t+u*sin((x-rr)*M_PI/q));
g=int(t+u*sin((x-gg)*M_PI/q));
b=int(t+u*sin((x-bb)*M_PI/q));
pal[x]=RGB(r,g,b);
}
}
donde itmax es la cantidad máxima de iteraciones que puede tomar un punto en el conjunto,
por consiguiente será la cantidad de colores que tendrá la paleta. Y rr, gg y
bb son los valores iniciales que se toman para generar el vector de colores pal.
Los parámetros que llamé q, t y u son valores que modifican el
comportamiento de la paleta final, desplazando, multiplicando o dividendo al valor de cada
componente de color primario.
La misma imagen que anteriormente se había representado con una peleta aleatoria ahora
con la nueva paleta queda mucho mejor
![]() |
Dejá un comentario, sugerencia u opinión