L-Systeme
Eine Einführung
L-Systeme sind Ersetzungsysteme.
1. Ein einfaches Beispiel. zurück
Wir beginnen mit einem "F"(Axiom). In jeder darauf folgenden Ersetzung wird dieses "F" durch "F-F++ F-F" ersetzt . Nach einer Ersetzung erhält man daher die Zeichenkette"(F-F ++F-F)" nach einer zweiten "(F-F++F-F)- (F-F++F-F)++ (F-F++F-F)- (F-F++F-F)" und so weiter(die Klammern dienen der besseren Lesbarkeit).
2. Das Ersetzungsystem. (exemplarisch erklärt) zurück
Wir nehmen zwei Buchstaben a und b. Für jeden wird eine Regel definiert. Die Regel a-> ab bedeutet, dass a durch ab ersetzt werden soll und die Regel b->a, dass b durch a ersetzt werden soll. Der Ersetzungprozess beginnt mit einem Axiom. In unserem Beispiel ist das b. Im ersten Schritt ersetzt man dieses Axiom anhand der Regel b->a durch a. Im zweiten Schritt ersetzt man a anhand der Regel a-> ab durch ab und so weiter (sieh unten).
b
|
a
_|_
a b
_| \
a b a
_| | |_
a b a a b
_/ | |_ |_ \
a b a a b a b a
3. Die Turtle Grafik. zurück
Eine mögliche Darstellung der durch die Ersetzungssysteme erzeugten Zeichenketten ist die Interpretation mit Hilfe der sogenannten Turtle (Schildkröte) Grafik. Der Zustand der Turtle wird durch das Triplet (x, y, d) beschrieben. Die kartesischen Koordinaten (x, y) beschreiben dabei die Position und der Winkel d die Blickrichtung der Turtle. Bei gegebener Schrittlänge L und Winkel d interpretiert die Turtle folgende Symbole wie folgt:
| F | Turtle bewegt sich um einen Schritt der Länge L. Es wird eine Linie der Länge L gezogen. | Abbildung 1: Turtlekommandos in 2D |
| f | Turtle bewegt sich um einen Schritt der Länge L. Es wird keine Linie gezogen. | |
| + | Blickrichtung der Turtle wird um d Grad nach rechts (Uhrzeigersinn) gedreht. | |
| - | Blickrichtung der Turtle wird um d Grad nach links (Gegenuhrzeigersinn) gedreht. | |
| | | Blickrichtung der Turtle um Winkel 180°( Drehung nach hinten). | |
| [ | Lege den aktuellen Zustand der Turtle auf dem Stack ab. | ![]() Abbildung 2. |
| ] | Hole das oberste Element vom Stack und mache es zum aktuellen Zustand der Turtle. Die Turtle bewegt sich in diesen Zustand, ohne daß eine Linie gezogen wird. | |
| # | Addiere 1 zu der Linienbreite. | |
| ! | Subtrahiere 1 von der Linienbreite. | |
| ; | Addiere 1 zu der Farbennummer. | |
| : | Subtrahiere 1 von der Farbennummer. |
4. Die Koch-Kurve. zurück
Interpretiert man die in 1) erzeugte Zeichenkette, bei gegebenem Winkel d= 60° als Turtle-Grafik, so erhält man die Koch-Kurve. Die nach einer Ersetzung (Schritt 1) erzeugte Zeichenkette F-F++F-F wird folgendermaßen interpretiert: Ziehe einen Strich der Länge L, ändere die Blickrichtung der Turtle um 60° im Gegenuhrzeigersinn. Ziehe wieder einen Strich. Ändere die Blickrichtung der Turtle um 120° im Uhrzeigersinn und ziehe dann wieder einen Strich. Ändere dann die Blickrichtung der Turtle um 60° im Gegenuhrzeigersinn und ziehe den letzten Strich. Wichtig ist hierbei, die Winkeländerungen immer aus der aktuellen Blickrichtung der Turtle zu betrachten. Es ergibt sich so das in Abbildung 3 gezeigte Bild.

Bei weiterer Ableitung ergeben sich folgende Turtle- Interpretationen:

Abbildung 4: Kochkurve
5. Geklammerte L-Systeme. zurück
L-Systeme werden insbesondere zur Beschreibung des Wachstums von Pflanzen und andere Prozesse (z.B. die Entwicklung der Lunge) eingesetzt. Dabei repräsentiert die ``Zeichenfolge`` die ``Regeln``, die das Wachstums eines bestimmtes Gebildes strukturieren. Im folgenden Beispiel steht ``[``für ``Speichern der Position``und ``]``für ``Rückkehr an die zuletzt gespeicherte Position``.

Abbildung 5.