Biblioteca para generar fractales con L-systems
Project description
LINDENNMAYER
Biblioteca para generar fractales con L-systems y tortuga gráfica en Python.
Licencia: GNU GPLv3
🌿 VIVA PALESTINA LIBRE
LINDERMAYER permite crear y visualizar fractales clásicos y personalizados usando sistemas de Lindenmayer (L-systems) y una tortuga gráfica basada en matplotlib.
Incluye fractales predefinidos listos para usar:
arboleo→ árbol fractal simplesnowflake→ curva de Koch (copo de nieve)dragon→ curva del dragónkoch→ curva de Koch básica
Instalación
Desde Test PyPI:
pip install --index-url https://test.pypi.org/simple/ LINDERMAYER
Instalación local editable:
## Fractales predefinidos
from lindermayer import arboleo, snowflake, dragon, koch
# Curva de Koch básica
koch.plt(n=6)
# Árbol fractal simple
arboleo.plot(n=3)
# Curva del Dragón
dragon.plot(n=12)
# Copo de nieve
snowflake.plot(n=6)
# Función generar_fractal
generar_fractal
La función generar_fractal permite construir y dibujar fractales definidos mediante L-systems (Lindenmayer systems) usando una tortuga gráfica.
Definición
generar_fractal(V, P, omega, angle, step, n)
Descripción
Esta función:
Construye un sistema de Lindenmayer (L-system)
Aplica las reglas de producción n veces
Interpreta la cadena resultante con una tortuga gráfica
Muestra el fractal usando matplotlib
Parámetros
V — Alfabeto del sistema
Conjunto de símbolos válidos del L-system.
V = {'F', '+', '-'}
No todos los símbolos necesariamente dibujan; algunos solo controlan el comportamiento.
P — Reglas de producción
Diccionario que define cómo se reescribe cada símbolo.
P = {
'F': 'F+F--F+F'
}
Cada iteración sustituye los símbolos según estas reglas.
omega — Axioma (estado inicial)
Cadena inicial del sistema antes de aplicar las reglas.
omega = 'F'
angle — Ángulo de giro
Ángulo en radianes usado por la tortuga para rotaciones.
Ejemplos comunes:
pi/2 # 90°
pi/3 # 60°
pi/4 # 45°
step — Tamaño del paso
Longitud del movimiento hacia adelante de la tortuga.
step = 1
Controla la escala del fractal.
n — Número de iteraciones
Cantidad de veces que se aplican las reglas de producción.
n = 5
Más iteraciones → mayor detalle → mayor costo computacional.
Comportamiento de los símbolos (Tortuga)
Por convención:
Símbolo Acción
F Avanzar dibujando
f Avanzar sin dibujar
+ Girar a la derecha
- Girar a la izquierda
(Esto depende de la implementación de la clase Tortuga.)
Ejemplo
Curva de Koch:
from lindenmayer.funcion_lindermayer import generar_fractal
from math import pi
V = {'F', '+', '-'}
omega = 'F'
P = {
'F': 'F+F--F+F'
}
generar_fractal(V, P, omega, angle=pi/3, step=1, n=4)
Notas
Iteraciones grandes pueden generar cadenas muy largas
El tiempo de dibujo crece rápidamente con n
El ángulo incorrecto produce geometrías inesperadas
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lindenmayer_fractals-1.1.0.tar.gz.
File metadata
- Download URL: lindenmayer_fractals-1.1.0.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c5afa67175623058dafd58ae718cf3eabd970fde2bbcc902435eb563c72c5df
|
|
| MD5 |
398d7837dacbf89c61ce61a5a8d35345
|
|
| BLAKE2b-256 |
42b52c8631d15e8eb7ee5d48eaa82bfb8e13de8821ef81b2677b6416fed74258
|
File details
Details for the file lindenmayer_fractals-1.1.0-py3-none-any.whl.
File metadata
- Download URL: lindenmayer_fractals-1.1.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
081447bb50564fe02b49c56eb35576131f64e34fb712d9584f4d1b5ccf097caa
|
|
| MD5 |
294829f97195779374bf862620ac9adf
|
|
| BLAKE2b-256 |
cbec037b826790c2841e974fa44e11f8cf5da66d23b9a4f4a4963b52eb7dc679
|