Skip to main content

Biblioteca para generar fractales con L-systems

Project description

LINDERMAYER

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 simple
  • snowflake → curva de Koch (copo de nieve)
  • dragon → curva del dragón
  • koch → 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lindenmayer_fractals-1.0.0.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lindenmayer_fractals-1.0.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file lindenmayer_fractals-1.0.0.tar.gz.

File metadata

  • Download URL: lindenmayer_fractals-1.0.0.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for lindenmayer_fractals-1.0.0.tar.gz
Algorithm Hash digest
SHA256 48c92d0e2a796f201d0a1b4c5d1b7588e8fabd9c24ac743389271a555c3d9781
MD5 f32bcda5909362c39223f530c270a556
BLAKE2b-256 6a4f6bf397be2ed81b7b6c98b298774c3edb06da5d5261d4099f042293d3247b

See more details on using hashes here.

File details

Details for the file lindenmayer_fractals-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for lindenmayer_fractals-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d1c143c7e5a432c9ed3e177e803ff13b7c95566e898b3ca0cf5465e7a2f9fecf
MD5 6e617ca8261dbd7b8556579cce42ab4a
BLAKE2b-256 ec16a00f4b9d80759c0d87722158429969ddc7f60b81675c9859c2ed1df24246

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page