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.
2 Tu programa Python…
Atajo: Ctrl + Enter ejecuta. La tecla Tab escribe 4 espacios (la sangría importa en Python).
3 Tu dibujo
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.
Cómo probarlo en el editor de p5.js
- Pulsa Copiar JavaScript y abre el editor de p5.js (sirve sin cuenta).
- En el archivo
sketch.js, borra todo lo que haya y pega el programa. - 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
- En Thonny: Herramientas → Gestionar paquetes…, busca
thonny-py5modee instálalo. Reinicia Thonny. - Aparecerá un menú py5. Elige Imported mode for py5. La primera vez puede necesitar descargar Java (JDK 17), así que hace falta conexión.
- Pega el programa en un archivo nuevo, guárdalo (Ctrl+S) y pulsa ▶.
- Si no puedes instalar nada: el editor de p5.js funciona en el navegador, pero con JavaScript en vez de Python.
- 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) niimport py5. Todo lo demás de Python (listas, clases, funciones) sí funciona. - En Python
mapya existe, por eso en py5 la orden se llamaremap. - 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 alfor, alifo 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()necesitaglobal nombre. - Las órdenes se escriben en minúsculas y con guion bajo:
no_fill(),stroke_weight(3),mouse_x. TrueyFalsellevan mayúscula inicial. Los comentarios empiezan por#.
Mini-retos
- Dibuja tu casa con
rectytriangle. - Cambia todos los colores para que sea de noche.
- Usa un
forpara dibujar 10 círculos en fila. - Haz que un círculo siga al ratón (pista: ejemplo «Sigue al ratón»).
- Crea tu propia función
defpara dibujar un árbol y úsala tres veces en distintos sitios. - Haz que el círculo que rebota cambie de color cada vez que toca una pared.
- Inventa un animal con formas y ponle nombre con
text.