Presentacion Fractales
-
Upload
patriciarevuelta -
Category
Technology
-
view
1.467 -
download
1
Transcript of Presentacion Fractales
PRACTICA 3 : FRACTALES
PATRICIA REVUELTA MARTINEZ
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
DESCRIPCION
•Teóricamente me he basado en la transformación de los puntos, mediante la formula :
* Las 5 funciones depende del fractal en concreto que vamos a realizar.
* El Fractal en concreto dibuja todos los puntos que hemos obtenido aleatoriamente de la transformación.
f
e
y
x
dc
ba
y
x
*
*
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
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)];
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)];
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)];
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)];
CÓDIGO5)
% 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)];
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
CÓDIGO
* Función de la creación de los puntos y su dibujo:
Function puntosGenerados=dibujaFractal(punto,numIteraciones)
puntosGenerados = [punto];
while numIteraciones~=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.');
hold on;
plot(puntos(:,3),puntos(:,4),'r.');
plot(puntos(:,5),puntos(:,6),'g.');
plot(puntos(:,7),puntos(:,8),'g.');
plot(puntos(:,9),puntos(:,10),'y.');
CONCLUSIONES
Captura del árbol obtenido:
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.
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.
FIN TRABAJO
gracias