Ejercicio 1:
Recupere el programa FractalDeKoch.java (ponga el curso sobre el link, presione el botón derecho del mouse sin soltarlo y elija la opción Save Link As).
Compílelo y ejecútelo varias veces. El programa le pedirá que ingrese un orden (que debe ser un número entero), pruebe con los valores 3, 2, 1 y 0. Luego, pruebe con 4, 5 y 6.
Explicación:
La trayectoria que describe la tortuga se llama fractal de Koch. Un fractal es una figura que a simple vista parece ser muy compleja, pero cuya construcción obedece a principios extremadamente simples.
La definición inductiva del fractal de Koch es la siguiente:
Quite los // en la línea:
void trazar(int orden, double largo, Tortuga tort) {
if (orden==0) {
tort.mover(largo);
// sleep(1./5);
}
else {
trazar(orden-1, largo/3, tort);
tort.virarIzq(60);
trazar(orden-1, largo/3, tort);
tort.virarDer(120);
trazar(orden-1, largo/3, tort);
tort.virarIzq(60);
trazar(orden-1, largo/3, tort);
}
}
y luego ejecute el programa con órdenes 1 y 2. Podrá apreciar
mejor el orden en que se dibujan las líneas.
// sleep(1./5);
Ejercicio 1:
El fractal cuadrado se define inductivamente al igual que el fractal de Koch. El fractal cuadrado de orden 0 y de tamaño l se construye dibujando una línea recta. El fractal cuadrado de tamaño n (mayor que 0) se construye a partir del fractal cuadrado de tamaño n-1. El fractal cuadrado de orden 1 y tamaño l forma la siguiente figura:
Modifique el programa FractalDeKoch para que dibuje el fractal cuadrado de orden n, con n un número ingresado por el usuario.
Ejercicio 2 (optativo):
Defina su propia figura fractálica siguiendo el siguiente patrón:
Si descubre una figura interesante publique su programa en
uch.ing.cursos.cc10a06.
void trazar(int orden, double largo, Tortuga tort) {
if (orden==0)
tort.mover(largo);
else {
... trazar( ... ) ... // invocaciones recursivas de trazar
... virarIzq(...) ... // virajes a la izquierda o la derecha
// al final, la tortuga debe mantener la misma dirección
// que traía antes de esta invocación de trazar y debe
// haberse desplazado la distancia ``largo'' en esa misma direccion.
}
}