viernes, 13 de febrero de 2015

Las campanas del príncipe

(es) Las campanas del príncipe

(eo) Sonoriloj de la princo

Las campanas del príncipe

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

Descripción artística:

El resonar de las campanas del Príncipe de las Matemáticas.

Motivación:

La curva normal es fundamental en la naturaleza.

Descripción técnica:

Una gran cantidad de campanas de Gauss (curvas de distribución de probabilidad normal), con diferente amplitud, media, desviación y color. Las curvas más distantes son más oscuras y las más próximas al observador son más brillantes.

Archivo

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 -s 8000 -v FLVQXF gauss.cfdg gauss.png

NUMSEG = 50 #Número de segmentos para formar la curva
LIMITE = 2.5 #Intervalo de dibujo: [-lim,lim]

NUMCURVAS = 750 #Número de campanas a dibujar
LIM_AMPLITUD = 4
LIM_Y = 5
LIM_X = 5
LIM_SUP_DESV = 2
LIM_INF_DESV = 0.5

MAX_BRILLO = 1.0

CF::Size = [s (2*LIM_X) (2*LIM_X) x 0 y -(LIM_Y*0.2)]
startshape principal

path campana(media, desviacion, amplitud) {

 MOVETO(media, amplitud) #mitad derecha
 loop i = NUMSEG []  {
  xc = ((LIMITE*(i+1)/(NUMSEG-1)) +media)
  LINETO(xc, amplitud*exp(-((xc-media)/desviacion)^2))
 }
 STROKE(CF::RoundCap)[]
 
 MOVETO(media, amplitud) #mitad izquierda
 loop i = NUMSEG []  {
  xc = ((-LIMITE*(i+1)/(NUMSEG-1)) +media)
  LINETO(xc, amplitud*exp(-((xc-media)/desviacion)^2))
 }
 STROKE(CF::RoundCap)[]
}

shape principal{
 FILL[]
 loop i = NUMCURVAS []{
  campana(rand(-LIM_X, LIM_X), rand(LIM_INF_DESV,LIM_SUP_DESV), rand(LIM_AMPLITUD*0.1,LIM_AMPLITUD)) [y rand(-LIM_Y,LIM_Y) 
  hue randint(360) 
  b (i*MAX_BRILLO/(NUMCURVAS-1)) 
  sat 1]
 }
 
 campana(0,1,1)[b 1 sat 0 s 2] #curva blanca en el centro
}

No hay comentarios:

Publicar un comentario