UNIVERSIDAD AUTONOMA METROPOLITANA
UNIDAD AZCAPOTZALCO
DIVISION DE CIENCIAS BASICAS E INGENIERIA


PRINCIPIOS BASICOS EN LA GENERACION DE FRACTALES


Francisco Cervantes de la Torre
Area de Sistemas Computacionales, Depto. de Sistemas.
Luis Fernando Hoyos
Area de Estadística e Investigación de Operaciones, Depto de Sistemas.
José Luis Fernández Chapou
Area de Física, Depto de Ciencias Básicas.



Resumen
Los fractales son figuras geométricas con la propiedad de autosimilaridad, en este trabajo explicamos esta característica. Mostramos que los fractales se pueden construir a partir de formas regulares, las cuáles se modifican a través de repetidas aplicaciones del motivo.
En este trabajo incluimos un programa general que permite el uso de motivos arbitrarios, el fractal que resulta se obtiene a través de transformaciones de similaridad definidas por el motivo.

Abstract


Fractals are geometrical figures with the propertie of self-similarity, in this work we will explain what this means. We show that fractals can be built -in begining with regular figures, and modified with applications of repeated motif.
In this work we included a general program that enables us use an arbitrary motif, the fractal that results is obtained for repeated transformed similarity defined for the motif.



identificadores
mapear fractales auto-similaridad
curva de Koch fractal de Levi geometria de la naturaleza


En este trabajo se discute uno de los principios básicos de la generación de Fractales geométricos, donde es necesario definir inicialmente una forma (figura) base, a partir de sus coordenadas; a esta figura geométrica original se le aplican P transformaciones de autosimilaridad, la transformación definida caracteriza al motivo y al realizar un número P finito de transformaciones se obtiene una aproximación de fractal.


1. INTRODUCCION

A partir de las investigaciones del matemático Benoit B. Mandelbrot y la aparición del libro The Fractal Geometry of Nature, los fractales han recibido gran atención. Un ejemplo clásico de fractal es la curva definida por el matemático francés Paul Levy 1 (1886-1971), esta es una curva que matemáticamente no tiene tangente en punto alguno.

La curva de Levy 2 FIG.1, es el prototipo de una familia extensiva de fractales, la cuál se basa en la repetición de una simple transformación geométrica.

2. GENERACION DE LA CURVA DE LEVY

Existen diferentes formas de escribir programas para generar curvas fractales; sin embargo a continuación describiremos un algoritmo de generación en el cuál dada una forma base (figura geométrica original) y un motivo (transformación), obtenemos diferentes aproximaciones a fractales geométricos; al realizar P transformaciones sobre la figura geométrica original.

Por ejemplo, para obtener la curva de Levy Fig.1 tomamos, como forma base un segmento líneal FIG.2; sobre esta figura se aplicarán P transformaciones establecidas por el motivo FIG.3.

Para la curva C ó curva de Levy la forma base estará definida por los puntos U(Ux,Uy) y V(Vx,Vy), puntos extremos del segmento lineal. Si P=1 el motivo tendrá por efecto dividir al segmento lineal, en dos segmentos con diferente orientación a la original. En el caso de la curva C los puntos extremos del segmento original, pertenece a la curva transformada; en este caso el motivo actúa de tal forma que es posible imaginarse que la curva ó forma original se comporta como una liga, y por lo tanto la transformación se manifiesta en que el punto medio se baja o se sube t unidades. El motivo siempre se define sobre el segmento lineal unitario RS (R(0,0), S(1,0)), para el caso de la curva de Levy el motivo estará especificado por las coordenadas del punto T(0.5,t) Fig.3. El valor de 0.5 corresponde a que la tranformación actúa sobre el punto medio de un segmento lineal de la forma base, moviéndolo t unidades hacia arriba o hacia abajo3.

En la FIG.4 se puede apreciar el efecto de una sola transformación (P=1) establecida por el motivo sobre la forma base fig.2; mientras que en la FIG.5 se observa la transformación de la figura original para el caso en que el orden es 2. La fig.1 se obtuvo para el caso en que P=12; esto es, se realizaron 12 transformaciones para la obtención de esta aproximación de fractal.

Este ejemplo de generación de fractal para la curva de Levy, puede también aplicarse en la creación de otros fractales; partiéndo de distintas formas base y diversos motivos, a continuación describimos matemáticamente un algoritmo para la generación aproximada de fractales.


3. ALGORITMO MATEMATICO

En párrafos anteriores describimos una aplicación particular de la generación de un fractal, en ella se proporciona una forma base y se aplican P transformaciones definidas por el motivo; en este apartado describiremos una generalización de este algoritmo, de forma tal que a partir de la definición de una forma base cualquiera a través de sus coordenadas y aplicando sobre ella P transformaciones definidas por las coordenadas de un motivo, podemos generar diversas aproximaciones a fractales.

En la FIG.6 se puede observar en el plano cartesiano un motivo definido sobre el segmento unitario RS por los puntos P1, P2 y P3; en este caso el motivo tendrá como efecto eliminar un segmento lineal de la forma base y sustituirlo por la forma definida en el motivo. Si queremos generar la famosa isla del matemático Helge Von Koch4 las coordenadas del motivo estarán definidas por:

y este motivo divide a cada segmento lineal del cuadrado FIG.7, que conforma la forma base, en tres segmentos de igual tamaño eliminando, el segmento intermedio y sustituyéndolo por el motivo definido en la fig.6.

El motivo P1P2P3 definido en la base RS se transforma en cada nueva generación similarmente a P’1P’2P’3 , en una nueva base R’S’ fig.6. La transformación de similaridad para la nueva base conciste en mapear:

R(0,0) -> R’(x1,y1) y S(1,0) -> S’(x2,y2)

como podemos observar en la fig.6. Si el punto P del motivo tiene coordenadas (x,y), entonces el punto P’(x’,y’) se obtiene por la transformación de autosimilaridad dada por:

,

con I la matriz identidad y A la matriz definida por

,

entonces las ecuaciones de transformación se reducen a:

x’=(x2-x1)x-(y2-y1)y+x1,

y’=(y2-y1)x+(x2-x1)y+y 1.

En el apéndice 1 mostramos un programa basado en este algoritmo de transformaciones de autosimilaridad escrito en QBASIC; en dicho programa es necesario especificar el número de puntos del plano cartesiano que conforman al motivo, así como el número de puntos de la forma original. Dado que la forma base esta conformada por segmentos lineales es necesario proporcionar los vértices (o puntos) que la conforman. En realidad se debe de proporcionar un punto más, que es el punto de partida, cuando la curva es cerrada5; la orientación en que se proporcionan los vértices es importante, esto puede observarse en las FIG.8 (en contra de las manecillas del reloj) y FIG.9 (a favor de las manecillas del reloj), asimismo es necesario especificar el número de transformaciones P a realizar, para determinar el orden de generación.

Con el programa que aparece en el apéndice 1 pueden obtenerse una gran cantidad de aproximaciones fractales, tales y como las que se muestran a continuación.

EXPERIMENTANDO CON FRACTALES

En estos párrafos experimentaremos con el programa del apéndice 1, para obtener diferentes aproximaciones fractales.

EJEMPLO I)

Cuando corremos el programa, este nos solicita el número de vértices de la figura base. Si tomamos como forma base el cuadrado FIG.7, proporcionamos 4 como el número de vértices, siendo 5 el número de puntos que se considerarán, dado que la figura es cerrada; si proporcionamos las coordenadas con una orientación en contra de las manecillas del reloj, estás deberán ser:

(1,1), (-1,1), (-1,-1), (1,-1), (1,1),

si la orientación es a favor de las manecillas del reloj, proporcionamos las coordenadas de la siguiente manera

(1,1), (1,-1), (-1,-1), (-1,1), (1,1);

tomemos como motivo la FIG.10 cuyas coordenadas de transformación son:

(0.5,0), (0.5,0.25), (0.5,0)

y si consideramos P=6 obtendremos la FIG.11 para el primer caso, y la FIG.12 para la orientación a favor de las manecillas del reloj.

EJEMPLO II)

Consideremos como forma base el cuadrado fig.7, y la orientación a favor de las manecillas del reloj, si el motivo está definido por la FIG.13 a través de las siguientes coordenadas:

(0.45,0), (0.5,0.45), (0.5,0)

entonces en el caso de P=6 obtenemos el fractal que aparece en la FIG.14.

EJEMPLO III)

A continuación consideramos un triángulo (3 vértices) como forma base FIG.15, cuyas coordenadas corresponden a:

(-0.86,-0.5), (0.86,-0.5), (0,1), (-0.86,-0.5)

y como motivo tomamos a la FIG.16 cuyas coordenadas de transformación corresponden a:

(0.5,0), (0.4,0.2), (0.5,0), (0.6,0.2), (0.5,0)

y si p=5 obtenemos la aproximación de fractal mostrado en la FIG.17.

Como podemos notar, con un algoritmo tan simple es posible obtener una gran variedad de aproximaciones a fractales.


CONCLUSIONES

La generación de formas fractales puede ser obtenida a través de la computadora, por medio de algoritmos geométricos simples. En este trabajo se presenta un algoritmo de transformaciones de autosimilaridad para la obtención aproximada de fractales.

Es importante y apasionante el estudio de la geometría fractal, dada su estrecha relación con diversos fenómenos naturales, así como su vinculación con las teorías de percolación, caos y autómatas celulares; por lo que el panorama de investigación está muy lejos de haberse agotado.



APENDICE 1

REM PROGRAMA DE TRANSFORMACIONES DE SIMILARIDAD

REM PARA LA GENERACION DE FRACTALES

CLS

LOCATE 4, 1

PRINT "PROPORCIONA LOS PARAMETROS CORRESPONDIENTES:"

INPUT " # DE VERTICES DE LA FORMA BASE (-1 SI LA FORMA NO ES CERRADA : "; U

INPUT " # DE VERTICES QUE DEFINEN AL MOTIVO : "; V

V = V + 1

INPUT "ORDEN DE GENERACION DEL FRACTAL : "; P

PRINT "LOS PUNTOS DEL VERTICE SON (A(I),B(I))"

DIM A(U), B(U)

DIM C(V), D(V)

PRINT "PROPORCIONA LAS COORDENADAS DE LA FORMA BASE:"

FOR I = 0 TO U

PRINT "A("; I; ")="; : INPUT A(I)

PRINT "B("; I; ")="; : INPUT B(I)

IF XMIN > A(I) THEN XMIN = A(I)

IF XMAX < A(I) THEN XMAX = A(I)

IF YMIN > B(I) THEN YMIN = B(I)

IF YMAX < B(I) THEN YMAX = B(I)

NEXT I

PRINT "LOS PUNTOS DEL MOTIVO SON (C(I),D(I))"

PRINT "PROPORCIONA LAS COORDENADAS DEL MOTIVO:"

FOR I = 1 TO V - 1

PRINT "C("; I; ")="; : INPUT C(I)

PRINT "D("; I; ")="; : INPUT D(I)

NEXT I

SCREEN 9

COLOR 11, 15

PALETTE 0, 2

PI = 3.141593

DIM X(5000), Y(5000)

WINDOW (XMIN - 1, YMIN - 1)-(XMAX + 1, YMAX + 1)

C(0) = 0

D(0) = 0

X(0) = 0

Y(0) = 0

X(V ^ P) = 1

Y(V ^ P) = 0

FOR I = 0 TO P - 1

FOR J = 0 TO V ^ P - 1 STEP V ^ (P - I)

M1 = J + V ^ (P - I)

X1 = X(M1) - X(J)

Y1 = Y(M1) - Y(J)

REM A CONTINUACION SE DETERMINAN LOS NUEVOS PUNTOS DE LA

REM FIGURA AL UTILIZAR LA TRANSFORMACION DE SIMILARIDAD

FOR K = 1 TO V - 1

M2 = J + K * V ^ (P - I - 1)

X(M2) = X1 * C(K) - Y1 * D(K) + X(J)

Y(M2) = Y1 * C(K) + X1 * D(K) + Y(J)

NEXT K

NEXT J

NEXT I

PSET (A(0), B(0))

FOR M = 0 TO U - 1

A = A(M + 1) - A(M)

B = B(M + 1) - B(M)

FOR N = 0 TO V ^ P

X = A * X(N) - B * Y(N) + A(M)

Y = B * X(N) + A * Y(N) + B(M)

LINE -(X, Y)

NEXT N

NEXT M

A$ = INPUT$(1)

END

 


REFERENCIAS

1 Levy fué uno de los primeros científicos que investigaron este tipo de figuras patológicas, que hoy en día se conocen como curvas fractales.

2 Esta figura y otras que aparecen en este trabajo fueron obtenidas a través del paquete computacional FRACSYST, desarrollado por los autores en la UAM AZCAPOTZALCO

3 El motivo modificará a la forma base, dependiéndo de la orientación en que se proporcione la forma base UV ó VU.

4 La curva de Koch fué inicialmente construída en 1904 por el matemático suizo Helge von Koch.

5 En el caso de la curva de Levy se proporcionan 2 puntos para la base, cuando el programa solicita número de vértices proporcionamos 1; mientras que un solo punto es necesario para definir el motivo. Para la isla de Koch se proporcionan 4 cómo el número de vértices y entonces consideramos 5 puntos, dado que la forma es una curva cerrada; para el motivo se proporcionan 3 puntos.


DESCRIPCION DE LOS FRACTALES PRESENTADOS

Fig.1.-Curva de Levy ó curva C; esta curva nos muestra un fractal clásico.
Fig.2.-Forma base, segmento lineal UV.
Fig.3.-Motivo para generación de curva de Levy, T(0.5,0.5).
Fig.4.-Primera aproximación a la curva de Levy, para un orden de generación P=1.
Fig.5.-Aproximación a la curva C para P=2.
Fig.6.-Ejemplo general de un motivo y su transformación de autosimilaridad.
Fig.7.-Cuadrado como forma base.
Fig.8.-Isla de Koch, generada por una forma base (cuadrado) proporcionadas sus coordenadas en contra de las manecillas del reloj.
Fig.9.-Isla de Koch, con forma base (cuadrado) proporcionadas sus coordenadas a favor de las manecillas del reloj.
Fig.10.-Motivo para generar una aproximación a un fractal.
Fig.11.-Fractal generado sobre un cuadrado. La forma se proporciona en contrade las manecillas del reloj.
Fig.12.-Fractal generado sobre una forma base proporcionada a favor de las manecillas del reloj.
Fig.13.-Motivo a generarse sobre el cuadrado.
Fig.14.-Fractal generado sobre una forma cuadrada, por motivo presentado en la fig.13.
Fig.15.-Forma base triangular.
Fig.16.-Motivo a generarse sobre la forma base triangular.
Fig.17.-Aproximación a un fractal geométrico. Copos de nieve al interior del triángulo.

BIBLIOGRAFIA

1. COMPUTERS PATTERN CHAOS AND BEAUTY.
CLIFFORD A. PICKOVER.
ST. MARTIN'S PRESS NEW YORK.

2. FRACTALS IN SCIENCE.
ARMIN BUNDE & SHLOMO HAVLIN (eds.).
SPRINGER VERLAG.

3. FRACTALS FOR THE CLASSROOM.
PEITGEN, JURGENS & SAUPE.
SPRINGER-VERLAG.

4. EXPLORING THE GEOMETRY OF NATURE.
EDWARD RIETMAN.
WINDCREST.

5. THE SCIENCE OF FRACTAL IMAGES.
BARNSLEY, DEVANEY, MANDELBROT, PEITGEN, SAUPE & VOSS.
SPRINGER VERLAG.


Francisco Cervantes de la Torre
Area de Sistemas Computacionales.

DCBI / Depto. de Sistemas.
Enviar comentarios via e-mail:
fcdt@hp9000a1.uam.mx

Luis Fernando Hoyos
Area de Estadística e Investigación de Operaciones.

DCBI / Depto. de Sistemas.
Enviar comentarios via e-mail:
hrlf@hp9000a1.uam.mx

José Luis Fernández Chapou
Area de Física.

DCBI / Depto de Ciencias Básicas.
Enviar comentarios via e-mail:
jlfc@hp9000a1.uam.mx

numeros articulos