L-Systeme (Lindenmayer-Systeme)


Die nach Astrid Lindenmayer bezeichneten "L-Systeme" bestehen aus Regeln und Symbolen (formale Grammatiken), mit denen unter anderem Wachstumsprozesse von Pflanzen modelliert werden können.

Astrid Lindenmayer war einer der ersten, der syntaktische Methoden verwendete, um Wachstum zu modellieren.

 

L-Systeme verwenden ein Axiom als "Start-String" und setzen daraufhin iterativ eine Reihe von Substitutionsregeln ein, um eine immer längere Zeichenkette zu erhalten, die als Anweisung zum Zeichnen von Fraktalen verwendet werden kann.

 

Etliche Fraktale, z. B. die Kochkurve, die Kochsche Schneeflockenkurve, das Sierpinski Dreieck, der Cantorstaub und die Peano Kurve können mittels des L-Systems gebildet werden.

 

Beispiel:

 

Wir verwenden 2 Buchstaben: F und G.

Für jeden Buchstaben definieren wir eine Substitutionsregel:

 

Regel 1: F = FG

Regel 2: G = F

 

Die bedeutet, dass der Buchstaben F durch FG und gleichzeitig der Buchstabe G durch F ersetzt werden soll.

 

Starten wir mit "F"

  1. F → FG
  2. FG → FGF
    F wird durch FG ersetzt und G durch F.
    Wir erhalten also: FGF
  3. FGF → FGFFG
  4. FGFFG → FGFFGFGF
  5. FGFFGFGF → FGFFGFGFFGFFG
  6. ...

Um Mittels des L-Systems Fraktale generieren zu könne, müssen aus den Symbolen grafische Handlungsanweisungen abgeleitet werden. So kann man z. B. folgendes definieren:

"F","G" : zeichne eine Linie mit einer bestimmten Länge.

"f","g" : gehe eine bestimmte Länge vorwärts, ohne eine Linie zu zeichnen.

"+" : "Drehung um einen Winkel nach links"

"-" : "Drehung um einen Winkel nach rechts"

"r": alternative Drehung um einen Winkel nach rechts"

 "l": alternative Drehung um einen Winkel nach links"

 

Um Abzweigungen darstellen zu können (z. B. zur Konstruktion von Bäumen) werden die Symbole "[" und "]" verwendet.

"[" : speicher die Position und Richtung.

"]" : gespeicherte Position und Richtung wiederherstellen

 

"(" : speicher die Position und Richtung und multipliziere den Weg mit einem Faktor

")" : gespeicherte Position und Richtung wiederherstellen  und dividiere den Weg durch einen Faktor

 

Baum

Sven Fauth: L-System: Baum
L-System: Baum

Axiom: F

Ersetzungsregel: F → F(+F)(-F)

 

+ := Linksdrehung um 25° (mathematisch positiv)

- := Rechtsdrehung um 25° (mathematisch negativ)

 

( := Position und Richtung speichern, Weglänge mit 0,7 multiplizieren

) := Position und Richtung speichern, Weglänge durch 0,7 dividieren

 

Kochsche Schneeflocke

Sven Fauth: Kochsche Schneeflockenkurve
Kochsche Schneeflockenkurve

Axiom: FrFrF

Ersetzungsregel: F → F+F--F+F

 

r := Rechtsdrehung um 120°.
+ := Linksdrehung um 60° (mathematisch positiv)

- := Rechtsdrehung um 60° (mathematisch negativ)

 

Das obige Beispiel stellt den dritten Iterationsschritt dar.

 


Sierpinski Variante 1

Sierpinski Variante 1
Sierpinski Variante 1

Axiom: F-G-G

Ersetzungsregeln:

F → F-G+F+G-F

G → GG

 

+ := Linksdrehung um 120° (mathematisch positiv)

- := Rechtsdrehung um 120° (mathematisch negativ)

 

Sierpinski Variante 2

Sierpinski Variante 2
Sierpinski Variante 2

Axiom: F

Ersetzungsregeln: 

F → G−F−G

G → F+G+F

+ := Linksdrehung um 60° (mathematisch positiv)

- := Rechtsdrehung um 60° (mathematisch negativ)