
Chismes del Lince 55: fractales con Python
El Lince de la Noche volvía de patrullar Sierra Bermeja cuando se detuvo delante de un helecho. Lo miró de cerca. Luego miró una de sus hojas. Luego una hoja de esa hoja. Hoy vamos a hacer fractales con Python.
—Esto es raro —murmuró—. Cada trozo se parece al helecho entero.
La Gata Montesa, que lo seguía a dos pasos, ni levantó la vista.
—Se llama fractal. Y si te giras, verás algo parecido en ese girasol: las semillas siguen una regla que se repite.
—¿Una regla? ¿En un girasol? Yo pensaba que las plantas crecían por instinto.
—Y crecen. Pero la forma que sale se puede escribir con cuatro líneas de código. ¿Quieres comprobarlo?
El Lince dudó un segundo. Después sacó el portátil de la Lince Cueva, y la noche se le fue entre ramas, copos de nieve y espirales.

Introducción
En este chisme vamos a dibujar fractales con Python. Es una introducción corta: primero dos ideas (qué es un fractal y qué es la sucesión de Fibonacci) y después, a jugar.
Para jugar usamos un laboratorio que funciona en el navegador, sin instalar nada. Eliges un fractal, el programa se carga entero, y con unos deslizadores cambias los números y ves cómo se transforma el dibujo.
Es la continuación natural del taller de dibujo del chisme anterior. Si ya sabes qué son setup() y draw(), ya sabes casi todo lo necesario.
¿Qué es un fractal?
Un fractal es una figura que se parece a sí misma cuando la amplías: cada parte contiene una copia más pequeña del todo. Esa propiedad se llama autosemejanza.
Se construye repitiendo una regla sencilla muchas veces. En programación eso se hace con un bucle o con una función que se llama a sí misma, lo que se conoce como recursión. Cuantos más niveles repites, más detalle aparece y más tarda el ordenador.
En la naturaleza hay formas parecidas a fractales: helechos, ramas, brécol romanesco, ríos con afluentes. Pero solo se parecen a sí mismas en un rango de tamaños. Los fractales matemáticos, como el copo de Koch o el triángulo de Sierpinski, siguen para siempre.
Hasta se puede medir lo “rugoso” que es un fractal con su dimensión fractal: el copo de Koch tiene unos 1,26 y el triángulo de Sierpinski, unos 1,58.
Si vienes del árbol de decisión, no los confundas: aquel árbol clasificaba datos; los de este chisme dibujan formas.
¿Qué es la sucesión de Fibonacci?
Es una lista de números con una regla muy simple: empiezas con 1 y 1, y cada número nuevo es la suma de los dos anteriores. Sale 1, 1, 2, 3, 5, 8, 13, 21, 34… y así sin fin. Se la conoce por Leonardo de Pisa, «Fibonacci», que la publicó en su Liber abaci en 1202 hablando de conejos que se reproducen.
Lo curioso aparece al dividir cada número entre el anterior: 3/2, 5/3, 8/5, 13/8… El resultado se acerca cada vez más a 1,618…, el llamado número áureo. Y si en una flor cada semilla nueva gira 137,5° (el ángulo áureo) respecto a la anterior, las semillas se reparten sin dejar huecos: así se forma el girasol que vio el Lince. Ojo con los mitos: la espiral del nautilo, por ejemplo, no es una espiral áurea exacta. Más detalles en la sucesión de Fibonacci en Wikipedia.
A jugar
El laboratorio del Lince es una página donde escribes programas en Python (al estilo Processing) y ves el dibujo al instante, sin instalar nada: abre el laboratorio de fractales y Fibonacci. Elige una pieza de la paleta (árbol, copo de Koch, triángulo de Sierpinski, Mandelbrot, espiral de Fibonacci, girasol…) y se carga un ejemplo completo. Mueve los deslizadores, cambia un número en el código, pulsa ejecutar y mira qué pasa. Con print puedes ver los números de Fibonacci en la consola, y el panel de JavaScript te enseña el mismo programa listo para p5.js.
Para empezar: aumenta los niveles del copo de Koch hasta que se te quede lenta la página, cambia el ángulo del árbol para pasar de un abeto a un arbusto, y prueba el ángulo 137,5° en el girasol y luego 137° o 138°. Si te gustó la espiral, en La espiral del Lince dibujamos otra muy distinta.

Para el aula y retos
El chisme sirve para Creación Digital y Pensamiento Computacional (programación gráfica, funciones y eventos) y para TIC de 1.º de Bachillerato (estructuras de control y funciones). Preguntas para la clase: ¿qué parte del dibujo se repite y cuál es la regla que la genera?, ¿cuántos pasos de recursión aguanta el ordenador antes de ir lento?, ¿qué pasa con la razón entre números de Fibonacci consecutivos si empiezas con otros dos números?
- Reto 1. Haz que funcione: carga un ejemplo y cámbiale el color.
- Reto 2. Modifica la regla: cambia el ángulo o el factor de reducción del árbol hasta lograr un helecho.
- Reto 3. Calcula la razón entre términos de Fibonacci con
printy comprueba cuántos pasos hacen falta para acercarte a 1,618 con tres decimales. - Reto 4. Invéntate tu propio fractal y compártelo con la clase junto con su versión en JavaScript.
Etiqueta:AIDARAC, arte generativo, Fibonacci, fractales, ies monterroso, montesteam, número áureo, p5.js, Processing, Pyodide, python, recursividad



