Chismes del Lince · MonteSteam · IES Monterroso

El laboratorio de fractales y Fibonacci del Lince

Entiende qué es un fractal y qué es la serie de Fibonacci programándolos en Python (Processing/py5). Elige una pieza, juega con los deslizadores y mira cómo cambia el dibujo.

Antes de empezar: dos ideas

¿Qué es un fractal?
  • Es una figura que se parece a sí misma cuando la ampliamos: cada parte contiene una copia más pequeña del todo. Se llama autosemejanza.
  • Se construye repitiendo una regla sencilla muchas veces. En programación, con una función que se llama a sí misma (recursión) o con un bucle.
  • Cuantos más niveles repetimos, más detalle hay… y más tarda el ordenador. El copo de Koch tiene 3 · 4n lados en el nivel n: en el nivel 5 son 3.072.
  • 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 sí siguen para siempre.
  • Se puede medir lo «rugoso» que es un fractal con su dimensión fractal: Koch ≈ 1,26 · triángulo de Sierpinski ≈ 1,58 · alfombra de Sierpinski ≈ 1,89.
¿Qué es la serie de Fibonacci?
  • Es la serie 1, 1, 2, 3, 5, 8, 13, 21… en la que cada número es la suma de los dos anteriores. Leonardo de Pisa, llamado Fibonacci, la publicó en 1202 en su libro Liber abaci, con un problema sobre conejos.
  • Si divides cada número entre el anterior (3/2, 5/3, 8/5…), el resultado se acerca a 1,618…: el número áureo φ = (1 + √5) / 2.
  • Con cuadrados de lado 1, 1, 2, 3, 5, 8… y un cuarto de círculo en cada uno sale una espiral casi igual a la espiral áurea.
  • En un girasol, cada semilla gira respecto a la anterior el ángulo áureo, 360° / φ² ≈ 137,5°. Con ese ángulo las semillas se reparten sin dejar huecos. Prueba a cambiarlo con el deslizador.
  • Cuidado con el mito: Fibonacci no está «en todas partes». Las espirales de piñas y girasoles suelen contar números de Fibonacci, pero muchas conchas (como la del nautilus) son espirales que no son la áurea.

1 Elige piezas

Pulsa una pieza y se escribe sola en su sitio (variables y funciones arriba, la llamada en draw). Las piezas de fractales y de Fibonacci escriben el programa completo.

Pasa el ratón o pulsa una pieza para ver para qué sirve.

2 Tu programa Python…

Atajo: Ctrl + Enter ejecuta. La tecla Tab escribe 4 espacios (la sangría importa en Python).

3 Tu dibujo

x: – y: – lienzo 100 × 100

El mismo programa en JavaScript (p5.js)

Se va escribiendo solo según cambias tu programa en Python. Compara cómo se dice lo mismo en los dos lenguajes.


      
      
Abrir el editor de p5.js
Cómo probarlo en el editor de p5.js
  1. Pulsa Copiar JavaScript y abre el editor de p5.js (sirve sin cuenta).
  2. En el archivo sketch.js, borra todo lo que haya y pega el programa.
  3. Pulsa ▶ (Play).

La traducción es automática y solo entiende lo que se puede construir con los botones y los ejemplos de esta página. Lo que no entiende queda marcado como «SIN TRADUCIR».

Llévatelo a Thonny (opcional)

No hace falta instalar nada para usar esta página: ya ejecuta tu programa. Esto es solo para quien quiera seguir en casa con py5.

Cómo probarlo en Thonny con py5
  1. En Thonny: Herramientas → Gestionar paquetes…, busca thonny-py5mode e instálalo. Reinicia Thonny.
  2. Aparecerá un menú py5. Elige Imported mode for py5. La primera vez puede necesitar descargar Java (JDK 17), así que hace falta conexión.
  3. Pega el programa en un archivo nuevo, guárdalo (Ctrl+S) y pulsa ▶.
  4. Si no puedes instalar nada: el editor de p5.js funciona en el navegador, pero con JavaScript en vez de Python.
  5. Más información: thonny-py5mode y py5coding.org.

Son los pasos que indica el propio proyecto thonny-py5mode; conviene probarlos primero en un ordenador del aula.

Esta página no es py5 completo: qué cambia
  • Python se ejecuta de verdad en tu navegador (con Pyodide), pero las órdenes de dibujo son una versión pequeña de py5 hecha para esta página. Solo existen las de la paleta y unas pocas más (circle, square, quad, push, pop, noise, remap…).
  • No están: imágenes, sonido, 3D, formas libres (begin_shape) ni import py5. Todo lo demás de Python (listas, clases, funciones) sí funciona.
  • En Python map ya existe, por eso en py5 la orden se llama remap.
  • El navegador es más lento que py5 con Java: los dibujos con miles de formas por fotograma irán a trompicones.
  • Si un fotograma tarda más de 4 segundos, la página lo corta y avisa de un posible bucle infinito.
  • Python se descarga una vez de internet (unos 10 MB, desde cdn.jsdelivr.net). Tu programa nunca sale del navegador.
Python en un minuto
  • Lo que va debajo de una línea que acaba en : se escribe con sangría (4 espacios). Así sabe Python qué pertenece al for, al if o a la función.
  • def setup(): se ejecuta una vez; def draw(): se repite sin parar.
  • Una variable creada arriba del todo y que quieres cambiar dentro de draw() necesita global nombre.
  • Las órdenes se escriben en minúsculas y con guion bajo: no_fill(), stroke_weight(3), mouse_x.
  • True y False llevan mayúscula inicial. Los comentarios empiezan por #.
Mini-retos
  1. Dibuja tu casa con rect y triangle.
  2. Cambia todos los colores para que sea de noche.
  3. Usa un for para dibujar 10 círculos en fila.
  4. Haz que un círculo siga al ratón (pista: ejemplo «Sigue al ratón»).
  5. Crea tu propia función def para dibujar un árbol y úsala tres veces en distintos sitios.
  6. Haz que el círculo que rebota cambie de color cada vez que toca una pared.
  7. Inventa un animal con formas y ponle nombre con text.