2. Objetivo * Poder entender un poco mejor el manejo de la herramienta MATLAB. * Conocer las aplicaciones y la creación practica de los fractales. * Ver las diferentes maneras que se pueden crear fractales dependiendo de las funciones
3.
4. Implementación La implementación la he realizado sobre un árbol, mediante 7 funciones: - Hay 5 funciones que son las del propio árbol. - Hay 1 función que es la que se encarga de la transformación de los puntos que hemos obtenido de las funciones. - Hay 1 función que es simplemente la crea todos los puntos aleatorios y dibuja el fractal
5. código * Las 5 funciones del árbol son las siguientes: 1) % función que le pasamos un punto como vector que son las coordenadas de los ejes function p = funcion(punto) % obtenemos la coordenadas de los ejes que el hemos pasado punto = [punto(1);punto(2)]; % Tanto la matriz como el vector de traslación esta sacado de los ejemplos % vistos en clase(funciones) % matriz para crear el árbol matriz = [0.195 -0.448; 0.334 0.443]; % vector de traslación vectorTraslacion = [0.443; 0.245]; % calcula la operación para obtenemos en vector de trasformación p = matriz*punto+vectorTraslacion; % obtenemos un vector de transformación p = [p(1) p(2)];
6. código 2) % función que le pasamos un punto como vector que son las coordenadas de los ejes function p1 = funcion1(punto) % obtenemos la coordenadas de los ejes que el hemos pasado punto = [punto(1);punto(2)]; % Tanto la matriz como el vector de traslación esta sacado de los ejemplos % vistos en clase(funciones) % matriz para crear el árbol matriz = [0.462 0.414 ; -0.252 0.361]; % vector de traslación vectorTraslacion = [0.251;0.569]; % calcula la operación para obtenemos en vector de trasformación p1 = matriz*punto+vectorTraslacion; % obtenemos un vector de transformación p1 = [p1(1) p1(2)];
7. código 3) % función que le pasamos un punto como vector que son las coordenadas de los ejes function p2 = funcion2(punto) % obtenemos la coordenadas de los ejes que el hemos pasado punto = [punto(1);punto(2)]; % Tanto la matriz como el vector de traslación esta sacado de los ejemplos % vistos en clase(funciones) % matriz para crear el árbol matriz = [-0.058 -0.07; 0.453 -0.111]; % vector de traslación vectorTraslacion = [0.598 ; 0.097]; % calcula la operación para obtenemos en vector de trasformación p2 = matriz*punto+vectorTraslacion; % obtenemos un vector de transformación p2 = [p2(1) p2(2)];
8. código 4) % función que le pasamos un punto como vector que son las coordenadas de % los ejes function p3 = funcion3(punto) % obtenemos la coordenadas de los ejes que el hemos pasado punto = [punto(1);punto(2)]; % Tanto la matriz como el vector de traslación esta sacado de los ejemplos % vistos en clase(funciones) % matriz para crear el árbol matriz = [-0.035 0.07; -0.469 -0.022]; % vector de traslación vectorTraslacion = [0.488; 0.507]; % calcula la operación para obtenemos en vector de trasformación p3 = matriz*punto+vectorTraslacion; % obtenemos un vector de transformación p3 = [p3(1) p3(2)];
9. código 5) % función que le pasamos un punto como vector que son las coordenadas de los ejes function p4 = funcion4(punto) % obtenemos la coordenadas de los ejes que el hemos pasado punto = [punto(1);punto(2)]; % Tanto la matriz como el vector de traslación esta sacado de los ejemplos % vistos en clase(funciones) % matriz para crear el árbol matriz = [-0.637 0.0;0.0 0.501]; % vector de traslación vectorTraslacion = [0.856 ; 0.251]; % calcula la operación para obtenemos en vector de trasformación p4 = matriz*punto+vectorTraslacion; % obtenemos un vector de transformación p4 = [p4(1) p4(2)];
10. código * Función de transformación de los puntos: function [vector,pu] = transformacion(punt) vector = []; pu = []; % bucle para recorrer todos los puntos for i=1:size(punt) % obtenemos un vector de dos puntos y aplicar a las funciones puntos = [punt(i,1);punt(i,2)]; % aplicamos las funciones creadas pasandole el punto p = funcion(puntos); p1 = funcion1(puntos); p2 = funcion2(puntos); p3 = funcion3(puntos); p4 = funcion4(puntos); % guardamos en el vector los puntos en columna vector = [vector;p;p1;p2;p3;p4]; % guardamos en pu los punto como un vector fila pu = [pu;p p1 p2 p3 p4]; end
11. código * Función de la creación de los puntos y su dibujo: FunctionpuntosGenerados=dibujaFractal(punto,numIteraciones) puntosGenerados = [punto]; whilenumIteraciones~=0 [nuevosPuntos, puntos] = transformacion(puntosGenerados); puntosGenerados = [nuevosPuntos]; numIteraciones = numIteraciones-1; end % vamos a dibujar los diferentes puntos de las 5 funciones, cada una de un color plot(puntos(:,1),puntos(:,2),'b.'); holdon; plot(puntos(:,3),puntos(:,4),'r.'); plot(puntos(:,5),puntos(:,6),'g.'); plot(puntos(:,7),puntos(:,8),'g.'); plot(puntos(:,9),puntos(:,10),'y.');
13. conclusiones * La complejidad del programa no es muy grande, debido a que ya se ha utilizado anteriormente. Lo que realmente se hace complicado es la transformación de los puntos. * Saber que se hace muy difícil la creación de un fractal, ya que la realización de un fractal mínimo requiere sobre 7 funciones dependiendo de la figura a realizar.
14. Futuros trabajos * La ambición seria poder realizar un proyecto que estuviera compuesto por fractales completamente. * También poder ver las múltiples formas que se pueden adoptar en los fractales dependiendo de la matrices y vectores de translación.