martes, 17 de febrero de 2015

Mandelbrotus warholensis

(lat) Mandelbrotus warholensis

Mandelbrotus Warholensis

http://dx.doi.org/10.13140/RG.2.2.34092.90243

Descripción artística:

Una cuadrícula de cuatro conjuntos de Mándelbrot de relativamente baja resolución con colores pop-art de la escuela de Andy Warhol.

Motivación:

El arte pop del estilo de Andy Warhol.

Descripción técnica:

Una vista de baja resolución del conjunto de Mándelbrot formada por triángulos, rombos y círculos.
El conjunto de Mándelbrot es el conjunto M de todos los puntos c del plano complejo tal que la sucesión z n+1 = z n 2 +c (con z 0 =0+0i ) no diverge (es decir, tal que es acotada).
El criterio usado para determinar si las sucesiones divergen o no, es si z k , con kN , tiene un módulo mayor que 2, es decir | z k |2 (procedimiento estándar para los conjuntos de Julia y de Mándelbrot). Puesto que no puede evaluarse hasta el infinito, se usa una cota: N . Si la sucesión no “diverge” antes de llegar al N -é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 8000 mandelbrotus.cfdg mandelbrotus.png


startshape mandelbrotus

LIMITE = 250
MAXPASOS = 100

LIMIZQ = -1.5
LIMDER = 0.5
LIMARRIBA = 1.0
LIMABAJO = -1.0

TAMX = (LIMDER-LIMIZQ)/(LIMITE-1)
TAMY = (LIMARRIBA-LIMABAJO)/(LIMITE-1)

shape mandelbrotus {
 SQUARE[s (LIMDER-LIMIZQ) (LIMARRIBA-LIMABAJO) x (-LIMDER) h 76 sat 0.97 b 0.72]
 mandelbrot(0)[h 278 sat 0.55 b 0.6]
 
 SQUARE[s (LIMDER-LIMIZQ) (LIMARRIBA-LIMABAJO) x (-LIMIZQ) h 242 sat 0.72 b 0.48]
 mandelbrot(1)[h 354 sat 0.97 b 0.91 x 2]

 SQUARE[s (LIMDER-LIMIZQ) (LIMARRIBA-LIMABAJO) x (-LIMDER) h 204 sat 1 b 1.0 y (2*LIMARRIBA)]
 mandelbrot(2)[h 329 sat 0.97 b 0.9 y 2]

 SQUARE[s (LIMDER-LIMIZQ) (LIMARRIBA-LIMABAJO) x (-LIMIZQ) h 59 sat 0.97 b 1.0 y (2*LIMARRIBA)]
 mandelbrot(3)[h 246 sat 0.77 b 0.49 x 2 y 2]
}

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)

shape mandelbrot1 {
 loop i = LIMITE []  {
  c_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y
  loop j = LIMITE [] {
   c_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x
   
   if (pasos(0, 0.0, 0.0, c_r, c_i)==MAXPASOS)
    CIRCLE[x c_r y c_i b 0 size TAMX TAMY]
  }
 }
}

raizde2 = 1.0/sqrt(2)
shape mandelbrot(figura) {
 loop i = LIMITE []  {
  c_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y
  loop j = LIMITE [] {
   c_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x
   
   if (pasos(0, 0.0, 0.0, c_r, c_i)==MAXPASOS){
    switch(figura){
     case 0:
      CIRCLE[x c_r y c_i b 0 size TAMX TAMY]
     case 1:
      TRIANGLE[x c_r y c_i b 0 size TAMX TAMY]
     case 2:
      TRIANGLE[x c_r y c_i b 0 size TAMX TAMY r 180]
     case 3:
      SQUARE[x c_r y c_i b 0 size (TAMX*raizde2) (TAMY*raizde2) r 45]
    }
   }
  }
 }
}

No hay comentarios:

Publicar un comentario