This is an old revision of the document!


Laboratorul 03. Sisteme bazate pe Gramatici și Reguli

Lindenmayer Systems

Sistemele Lindenmayer (L-Systems) sunt un model matematic introdus de biologul Aristid Lindenmayer în 1968 pentru a modela procesele de creștere ale plantelor. Acestea sunt deosebit de eficiente pentru simularea structurilor și fractalilor asemănătoare plantelor.

Componentele ale sistemelor L:

  • Alfabet: Un set de simboluri care reprezintă diverse componente ale unei plante
  • Axiomă: Șirul inițial de simboluri de la care sistemul își începe construcția
  • Reguli de producție: O colecție de reguli de substituție care definesc modul în care fiecare simbol poate fi înlocuit sau extins într-un șir mai complex de simboluri.

Exemple de structuri care imită plantele se pot vedea în imaginea de mai jos:

În exemplul de mai sus, se folosește interpretarea “turtle” a stringurilor. Astfel, se întâlnesc următoarele simboluri:

  • F - Mers înainte cu distanța d
  • + - Rotație la stânga cu unghiul δ
  • - - Rotație la dreapta cu unghiul δ
  • [ - Adăugarea într-o stivă a stării actuale. Informațiile salvate pe stivă conțin poziția, orientarea și, eventual, alte atribute, cum ar fi culoarea și lățimea liniilor desenate
  • ] - Scoaterea unei stări din stivă și transformarea acesteia în starea curentă. Nu se desenează nimic, deși, în general, poziția se schimbă
  • n - Numărul de iterații

O variantă în care se poate implementa ușor un L-System este folosind biblioteca turtle din Python. Astfel, pentru a inițializa biblioteca, se folosește următoarea secvență de cod:

    # Initialize turtle
    t = turtle.Turtle()
    wn = turtle.Screen()
    t.speed(0)
    t.left(90)
    t.penup()
    t.goto(0, -wn.window_height() // 2 + 20)
    t.pendown()

    # TODO Your implementation goes here

    # Wait for user to close window
    wn.mainloop()

Cellular Automata

gp/laboratoare/03.1741956661.txt.gz · Last modified: 2025/03/14 14:51 by maria_anca.balutoiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0