lunes, 23 de febrero de 2015

Ragnarök

(sv) Ragnarök

(es) El ocaso de los dioses

(eo) Ekfiniĝo de la dioj

El ocaso de los dioses

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

Descripción artística:

Un escenario áspero, afilado y nórdico que ilustra el cataclismo del Ragnarök, que es el apocalipsis vikingo.

Motivación:

La historia del violento apocalipsis vikingo.

Descripción técnica:

Una vista de un conjunto de Julia con semilla c=-1.4+0.0i en el intervalo de los reales: [-0.6,0.6] y en los imaginarios: [-0.6,0.6].
El conjunto de Julia con semilla c es el conjunto J c de todos los puntos z del plano complejo tal que la sucesión z n+1 = z n 2 +c (con z 0 =z ) diverge (o más pragmáticamente tal que es no 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.
La coloración de esta obra tiene un brillo blanco variable más alto mientras más rápido se determina que los puntos no pertenecen al conjunto. Los puntos que sí pertenecen al conjunto son negros.

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 ragnarok.cfdg ragnarok.png

#Posibilidades de ragnarok
#-1.384286,0.004286
#-1.3, 0.00525
#-1.3,0.0
#-1.5, 0.0

startshape rag(-1.4, 0.0)

LIMITE = 1000 #Resolución de la imagen
MAXPASOS = 100

LIMIZQ = -0.6
LIMDER = 0.6
LIMARRIBA = 0.6
LIMABAJO = -0.6

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)


shape rag(c_r,c_i) {
 loop i = LIMITE/2 []  {
  z_i = (LIMARRIBA-LIMABAJO)*i/(LIMITE-1) + LIMABAJO #y
  loop j = LIMITE/2 [] {
   z_r = (LIMDER-LIMIZQ)*j/(LIMITE-1) + LIMIZQ #x
   
   numPasos = pasos(0, z_r, z_i, c_r, c_i)
   brillo = (1+(1-numPasos)/(MAXPASOS-1))
   SQUARE[x z_r    y z_i    size TAMX TAMY b brillo]
   SQUARE[x (-z_r) y z_i    size TAMX TAMY b brillo]
   SQUARE[x z_r    y (-z_i) size TAMX TAMY b brillo]
   SQUARE[x (-z_r) y (-z_i) size TAMX TAMY b brillo]
  }
 }
}

No hay comentarios:

Publicar un comentario