Ejercicios resueltos con Módulos

7. Fractales

¿Que es un fractal?

Es básicamente una figura geométrica que muestra las mismas características sin importar cuanto te acerques.

Típicamente, los fractales son difíciles de graficar, esto se debe al concepto que está íntimamente relacionado con ellos, la recursión, este concepto se vió cuando vimos funciones, y usamos un ejemplo para calcular el Factorial por ejemplo.

Vamos a usar una biblioteca llamada Turtle, que se usaba para mover una tortuga en lenguaje de programación llamado Logo de los años 1995. Este lenguaje permitía mover una tortuga en la pantalla.

Este ejemplo fue obtenido del siguiente sitio:

https://programmerclick.com/article/50381641460/

Utiliza un concepto de  1904, Helge von Koch, presentó  en un trabajo científico una curiosa curva que da lugar a unos gráficos que hoy se conocen como copos de nieve de von Koch. La curva de von Koch se define recursivamente y es tanto más compleja cuanto más profunda es la recursión lo incluimos solamente para mostrar el poder de gráfico de Python.

Los gráficos de Koch están explicados en la bibliografía de la materia Página 321 de Introducción a la programación con Python.


#KochDrawV1.py
import turtle

def koch(size, n):                  # Dibujar curva de Koch
    if n == 0:
        turtle.fd(size)
    else:
        for angle in [0, 60, -120, 60]:
            turtle.left(angle)
            koch(size/3, n-1)

def main(level):                    # Tres curvas de Koch se combinan en un copo de nieve de Koch
    turtle.setup(600, 600)
    turtle.penup()
    turtle.goto(-200, 100)
    turtle.pendown()
    turtle.pensize(2)
    koch(400, level)
    turtle.right(120)
    koch(400, level)
    turtle.right(120)
    koch(400, level)
    turtle.hideturtle()

level = int(input("Introduzca el pedido de copos de nieve de Koch:"))   # Ingresar orden
main(level)

Si se ejecuta este scritp con cantidad de copos de nieve=3, se verá la siguiente figura:
Observación: Tener cuidado en NO poner números grandes por que demora bastante en graficar.