Allgemeines

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.

Programmierung / Softwareentwicklung

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.

Hier sollte die Koch-Kurve gezeichnet werden!

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:

  • s = zeichne die Strecke s
  • L = drehe die Zeichenrichtung um 120 Grad nach links
  • r = drehe die Zeichenrichtuing um 60 Grad nach rechts
  • Damit wird jede gerade Linie im Ausgangsbild durch eine Folge von vier Linien ersetzt.

    Bild: koch1.gif

    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