sábado, 21 de febrero de 2015

El gemido del bosque de Pripiat

(es) El gemido del bosque de Pripiat

(eo) La ĝemo de la arbaro ĉe Pripjat

(uk) Стогін прип'ятського лісу

(Se agradece a Leonid Valeri Fessenko, por la traducción al ucraniano)
El gemido del bosque de Pripiat

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

Descripción artística:

Es un bosque enfermo en los alrededores de la ciudad de Pripiat. Esta ciudad fantasma (abandonada) es conocida porque sufrió los efectos del peor accidente de la historia de la energía nuclear el 26 de abril de 1986, cuando se produjo el sobrecalentamiento y explosión del reactor número 4 de la Central Nuclear de Chernóbil.

Motivación:

Un documental detallado sobre el desastre nuclear de la central de energía nuclear de Chernóbil. Ver enlace: http://youtu.be/kJMPERF41P8.

Descripción técnica:

Una vista de un conjunto de Julia con semilla c=-0.381966+0.618034i en el intervalo de los reales: [-0.052857,0.188571] y en los imaginarios: [-0.105714,0.135714].
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 tinte variable aleatorio entre 60 y 74, una saturación aleatoria variable entre 0.41 y 0.66, y un brillo máximo aleatorio variable entre 0.32 y 0.35 para los puntos que no pertenecen al conjunto.

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 -v PAJBHA bosque.cfdg bosque.png

#Posibilidades consideradas para bosque:
#-1.058571, -0.261429
#(0.917143,0.051429)-----(1.302857,0.321429)
#-0.068571, 0.857143
#(0.025714,-0.664286)-----(0.544286,-0.342857)
#-0.068571, 0.857143
#(-1.272857,0.570000)-----(-1.058571,0.737143)
#-0.381966, 0.618034
#(-0.102857,-0.102857)-----(0.188571,0.085714)
#-0.835000, -0.232100
#(-0.291429,0.120000)-----(0.094286,0.432857)
#-0.012000, 0.740000
#(0.051429,0.090000)-----(0.222857,0.240000)

LIMITE = 1000 #Resolución de la imagen
MAXPASOS = 200
MINMAXBRILLO = 0.32 
MAXMAXBRILLO = 0.68

startshape bosque
LIMIZQ = -0.052857
LIMABAJO = -0.105714
LIMDER = 0.188571
LIMARRIBA = 0.135714

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)

NUMBLOQUES = 8

shape bosque{
 loop i = NUMBLOQUES []{
  loop j = NUMBLOQUES [] {
   julia(-0.381966, 0.618034,
   j*(LIMDER-LIMIZQ)/NUMBLOQUES+LIMIZQ,
   i*(LIMARRIBA-LIMABAJO)/NUMBLOQUES+LIMABAJO,
   rand(MINMAXBRILLO,MAXMAXBRILLO)) [h rand(60,74)
   sat rand(0.41,0.66) 
   b rand(0.32,0.35)]
  }
 }
}

shape julia(c_r,c_i,xi,yi,maxbrillo) {
 xf = xi+(LIMDER-LIMIZQ)/NUMBLOQUES
 yf = yi+(LIMARRIBA-LIMABAJO)/NUMBLOQUES
 loop i = LIMITE/NUMBLOQUES []  {
  z_i = (yf-yi)*i/(LIMITE/NUMBLOQUES-1) + yi
  loop j = LIMITE/NUMBLOQUES [] {
   z_r = (xf-xi)*j/(LIMITE/NUMBLOQUES-1) + xi
   
   numPasos = pasos(0, z_r, z_i, c_r, c_i)
   SQUARE[x z_r y z_i size TAMX TAMY b ( maxbrillo+maxbrillo*(1-numPasos)/(MAXPASOS-1) )]
   #SQUARE[x z_r y z_i size TAMX TAMY b (1+(1-numPasos)/(MAXPASOS-1))]
  }
 }
}

No hay comentarios:

Publicar un comentario