Die Java Anwendung Koch'sche Schneeflocke habe ich nach grundlegenden Ideen von Lindenmayer-Systemen programmiert.
Fraktale Strukturen werden bei L-Systemen durch Zeichenfolgen definiert, die Befehle für die
Darstellung der Struktur sind. Ein Interpreterprogramm führt die Zeichenbefehle aus
und stellt dadurch die Struktur dar.
Eine Ersetzungmethode, die einzelne Zeichen durch eine Zeichenfolge -ein Wort- ersetzt, führt von
einer Iteration der Struktur zur nächten, detailreicheren Struktur.
Aristid Lindenmayer war ein ungarischer theoretischer Biologe, der um 1968 eine formale Sprache zur Modellierung von Pflanzen entwickelt hat.
Über dieses Thema findet man z.B. im Internet weitere Informationen.
Die Kochsche Schneeflocke
Niels Fabian Helge Hartmut von Koch war ein schwedischer Mathematiker, der die
nach ihm benannte Koch-Kurve konstruiert hat. Dieses Fraktal ist unendlich lang und
ist an keiner Stelle differenzierbar. Die Figur sieht auch interessant aus.
Unendlich lang ist die Randlinie aber nur dann, wenn die fraktale Strukur unendlich fein
ausdifferenziert ist.
Die Funktion des Programms
Das Programm bearbeitet als Ausgangsfigur ein gleichseitiges Dreieck. Bei einem
gleichseitigen Dreieck sind die Winkel gleich groß (120 Grad). Das Dreieck ist als
eine Folge von Zeichenanweisungen kodiert.
Der String sLsLs bedeutet: Zeichne
die Strecke s, ändere die Zeichenrichtung um 120 Grad nach links, zeichne die Strecke s,
ändere die Zeichenrichtung um 120 Grad nach links und zeichne die Strecke s.
Die Länge s wird so angepasst, dass die Figur eine vorgegebene Größe besitzt.
Die Ausgangszeichenrichtung ist horizontal nach rechts.
Ein Zeicheninterpreter dekodiert den String und zeichnet die Figur (siehe Ausgangsfigur).
Die folgenden Iterationen wirken auf den Ausgangsstring. Dabei wird jedes s im
Ausgangsstring durch die Zeichenfolge -das Wort- srsLsrs ersetzt. Der
Zeicheninterpreter kennt damit die Befehle:
Damit wird jede gerade Linie im Ausgangsbild durch eine Folge von vier Linien ersetzt.
Die Länge der vier Ersetzungslinien wird dabei auf 1/3 der Ausgangslänge gesetzt. Damit
bleibt die Gesamtgröße der Figur erhalten.
Der Ausgangsstring für die erste Iterationsstufe wird damit von:
sLsLs zu
srsLsrsLsrsLsrsLsrsLsrs.
Man kann es schon erahnen, die nächste Iteratonsstufe ersetzt wiederum jedes s des Ausgangsstrings durch das Wort srsLsrs woraus dann bereits eine längere Zeichenkette entsteht. Mit jeder Iterationsstufe wächst der String an und die Figur wird weiter ausdifferenziert. Nach einigen Iterationsebenen wird der String sehr viele Zeichen enthalten und auch der schnellste Computer wird erkennbar Zeit benötigen, um die Figur darzustellen.
Zurück zur Seite Programmierung