(es) Psicodelia
(eo) Psikedelo
http://dx.doi.org/10.13140/RG.2.2.34092.90243
Descripción artística:
Un horizonte de colores psicodélicos, con colores predominantemente cálidos en el “cielo” y predominantemente fríos en la “tierra”.
Motivación:
La cultura Hippie de los años 60's que influyó enormemente en el desarrollo de la tecnología de finales del siglo 20.
Descripción técnica:
Una vista girada del conjunto de Mándelbrot en el que los puntos que no pertenecen al conjunto se dibujan como capas de colores variables en función del número máximo de iteraciones para determinar la no pertenencia y el valor del complejo final de la sucesión.
Mientras que para los puntos que sí pertenecen se dejaron los puntos negros.
El conjunto de Mándelbrot es el conjunto de todos los puntos del plano complejo tal que la sucesión (con ) no diverge (es decir, tal que es acotada).
El criterio usado para determinar si las sucesiones divergen o no, es si , con , tiene un módulo mayor que 2, es decir (procedimiento estándar para los conjuntos de Julia y de Mándelbrot). Puesto que no puede evaluarse hasta el infinito, se usa una cota: . Si la sucesión no “diverge” antes de llegar al -ésimo término de las sucesiones, se considera que no diverge, es decir que es acotada.
Código (CFDG):
# Copyright 2015 Eduardo Adam Navas López # Este archivo es Software Libre liberado bajo la licencia GNU GPLv3 o su versión más reciente: # http://www.gnu.org/licenses/gpl.html #Para generar la imagen: #$ cfdg -b 0 -s 1000 psicodelia.cfdg psicodelia.png startshape mandelbrot_psicodelico_opt_color LIMITE = 1000 #Resolución de la imagen generada MAXPASOS = 100 LIMIZQ = -1.8 LIMDER = -1.6 LIMARRIBA = 0.1 LIMABAJO = -0.1 TAMX = (LIMDER-LIMIZQ)/(LIMITE-1) TAMY = (LIMARRIBA-LIMABAJO)/(LIMITE-1) pasos(numPasos,z_r,z_i,c_r,c_i) = if((numPasos < MAXPASOS) && (z_r*z_r+z_i*z_i<4), pasos(numPasos+1, z_r*z_r - z_i*z_i + c_r, 2*z_r*z_i + c_i, c_r, c_i), numPasos) vector3 pasos2(vector3 pri,number c_r, number c_i) = if((pri[0] < MAXPASOS) && (pri[1]*pri[1]+pri[2]*pri[2]<4), pasos2((pri[0]+1, pri[1]*pri[1] - pri[2]*pri[2] + c_r, 2*pri[1]*pri[2] + c_i), c_r, c_i), pri) #Optimización por simetria bilateral y con colores psicodélicos shape mandelbrot_psicodelico_opt_color { loop i = (LIMITE/2) [] { c_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y loop j = LIMITE [] { c_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x informacion = pasos2((0, 0.0, 0.0), c_r, c_i) numPasos = informacion[0] z_r = informacion[1] z_i = informacion[2] if (numPasos==MAXPASOS){ SQUARE[ x c_r y c_i size TAMX TAMY] SQUARE[ x c_r y (-c_i) size TAMX TAMY] }else { if (z_i<0){ SQUARE[ x c_r y c_i size TAMX TAMY sat 1 b 0.9 h tinte0(numPasos*z_r)] SQUARE[ x c_r y (-c_i) size TAMX TAMY sat 1 b 0.9 h tinte0(numPasos*z_i)] }else{ SQUARE[ x c_r y c_i size TAMX TAMY sat 1 b 0.9 h tinte0(numPasos*z_r)] SQUARE[ x c_r y (-c_i) size TAMX TAMY sat 1 b 0.9 h tinte0(numPasos*z_i)] } } } } } tinte0(n) = (360*n/MAXPASOS) #tinte1(n) = (300*n/MAXPASOS) #tinte2(n) = 240+n*(360-240)/MAXPASOS #Optimización por simetria bilateral shape mandelbrot_psicodelico_opt { loop i = (LIMITE/2) [] { c_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y loop j = LIMITE [] { c_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x informacion = pasos2((0, 0.0, 0.0), c_r, c_i) numPasos = informacion[0] z_i = informacion[2] if (numPasos==MAXPASOS){ SQUARE[ x c_r y c_i size TAMX TAMY b 0] SQUARE[ x c_r y (-c_i) size TAMX TAMY b 0] }else { if (z_i<0){ SQUARE[ x c_r y c_i size TAMX TAMY b 0.9] SQUARE[ x c_r y (-c_i) size TAMX TAMY b 0.4] }else{ SQUARE[ x c_r y c_i size TAMX TAMY b 0.4] SQUARE[ x c_r y (-c_i) size TAMX TAMY b 0.9] } } } } } shape mandelbrot_psicodelico { loop i = LIMITE [] { c_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y loop j = LIMITE [] { c_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x informacion = pasos2((0, 0.0, 0.0), c_r, c_i) numPasos = informacion[0] z_i = informacion[2] if (numPasos==MAXPASOS) CIRCLE[ x c_r y c_i size TAMX TAMY b 0] else { if (z_i<0) CIRCLE[ x c_r y c_i size TAMX TAMY b 0.9] else CIRCLE[ x c_r y c_i size TAMX TAMY b 0.4] } } } }
No hay comentarios:
Publicar un comentario