Skip to main content

Biblioteca para generar fractales con L-systems

Project description

LINDENMAYER

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.1.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.1.1-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: lindenmayer_fractals-1.1.1.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.1.1.tar.gz
Algorithm Hash digest
SHA256 6aa819a35ca4aeff77722dd55c9b15199b5b4dcf35d026f5069c25ad82e75ece
MD5 9942810a75b9ecbfce08df00994a5307
BLAKE2b-256 b73c97ae10110bd5a5abe6f0f3a516e7be22a88917bf82a7e08b24412f3b8ae7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for lindenmayer_fractals-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 67682a4bb6ba1ea9c5fdc0e48ceb3b545f2da7fcf32a27c5083e82dba06c8b70
MD5 a20949ad62f4a12ba4179b158070a520
BLAKE2b-256 46c10072f58e8a133dcbb50e3169543d8272a67bdeb7d19f3d62c979643bf1e2

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