Skip to main content

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 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.1.0.tar.gz (7.3 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.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

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

Hashes for lindenmayer_fractals-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7c5afa67175623058dafd58ae718cf3eabd970fde2bbcc902435eb563c72c5df
MD5 398d7837dacbf89c61ce61a5a8d35345
BLAKE2b-256 42b52c8631d15e8eb7ee5d48eaa82bfb8e13de8821ef81b2677b6416fed74258

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lindenmayer_fractals-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 081447bb50564fe02b49c56eb35576131f64e34fb712d9584f4d1b5ccf097caa
MD5 294829f97195779374bf862620ac9adf
BLAKE2b-256 cbec037b826790c2841e974fa44e11f8cf5da66d23b9a4f4a4963b52eb7dc679

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