[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[escepticos] Más fractales...



Hola, hola a todos.

El tema de los fractales es bastante interesante, así que creo que esto os
puede gustar. Ya sé que hay montones de programas que se dedican a generar
fractales (incluso en 3d ;)), pero lo que yo propongo es más simple.

Aquí os incluyo el listado de un programa en BASIC en el que, introduciendo
unas coordenadas, se genera un fractal en pantalla. Lo bueno de esto es
que, al ser un programa en BASIC es muy fácil de comprender; por tanto,
útil para ayudarnos a comprender un poco todo esto de los fractales.
Teclead y disfrutad ;)

===============================================

'Este programa obtiene la funci¢n de Mandelbrot

SCREEN 12

'Constantes
nph% = 480 'N£mero de pixels horizontales
npv% = 480 'N£mero de pixels verticales

'Se introducen variables
INPUT "Primera coordenada horizontal"; x1!
INPUT "Segunda coordenada horizontal"; x2!
INPUT "Primera coordenada vertical"; y1!
INPUT "Segunda coordenada vertical"; y2!

CLS

'Se selecciona la porci¢n a mostrar seg£n las coordenadas introducidas
vanox! = (x2! - x1!) / nph%
vanoy! = (y2! - y1!) / npv%
a! = x1!

FOR k% = 1 TO nph%
        a! = a! + vanox!
        b! = y2!
        FOR j% = 1 TO npv%
                b! = b! - vanoy!
                x! = 0
                y! = 0
                n% = 0
                DO WHILE (n% < 100) AND (x! * x! + y! * y! < 4)
                        xx! = x! * x! - y! * y! + a!  'El bucle principal,
                        y! = 2 * x! * y! + b!         'donde se calcula que
                        x! = xx!                      'puntos escapan y
                        n% = n% + 1                   'cuales quedan
confinados
                LOOP
                IF n% < 3.5 THEN
                        cpunto% = 11  'Se seleccionan
                ELSEIF n% < 5 THEN
                        cpunto% = 9   'los colores de
                ELSEIF n% < 6 THEN
                        cpunto% = 1   'cada punto
                ELSEIF n% < 9 THEN
                        cpunto% = 13  'seg£n el valor
                ELSEIF n% < 15 THEN
                        cpunto% = 5   'que toma n
                ELSEIF n% < 20 THEN
                        cpunto% = 4   'al salir del
                ELSEIF n% < 26 THEN
                        cpunto% = 12  'bucle. Los colores
                ELSEIF n% < 35 THEN
                        cpunto% = 2   'se pueden modificar
                ELSEIF n% < 45 THEN
                        cpunto% = 14  'a gusto de
                ELSEIF n% < 60 THEN
                        cpunto% = 7   'cada cual
                ELSE cpunto% = 8
                END IF
               
                'Se imprime cada punto
                IF x! * x! + y! * y! > 4 THEN PSET (k%, j%), cpunto%
        NEXT
NEXT


===============================================

Saludos.

José Luis Ponce (Clannad en el IRC)
=============================
- Página Personal:
 http://www.ctv.es/USERS/jlpon

- Pet Shop Boys ClubEspañol:
 http://unadiscoteca.com
=============================
"Pero la Estrella Polar sigue mirando con 
recelo, fija en el mismo punto de la negra 
bóveda, parpadeando espantosamente 
como un ojo insensato y vigilante que 
pugna por transmitir algún extraño mensaje, 
aunque no recuerda nada, salvo que un día 
tuvo un mensaje que transmitir"
		"Polaris", H. P. Lovecraft
=============================