Allgemeines

Die Java Anwendung Kolam habe ich programmiert, nachdem ich den Artikel Die Kolam-Figuren Südindiens, von Prof. Marcia Ascher in Spektrum der Wissenschaften gelesen habe.

Die Schwellenzeichnungen von Tamil Nadu sind über Jahrhunderte hinweg mündlich überliefert worden. In ihnen steckt Mathematik, die erst durch die modernen Konzepte der theoretischen Informatik zutage gefördert wird.

Einige typische Kolam-Figuren lassen sich wie bei den Lindenmayer-Systemen generieren. (Siehe Kochsche Schneeflocke.)
Über dieses Thema findet man z.B. im Internet weitere Informationen.

Programmierung / Softwareentwicklung

Das Schlangen-Kolam

Es gibt eine Vielzahl unterschiedlicher Kolam-Muster. Einige lassen sich mit formalen Sprachen wie bei den Lindenmayer-Systemen beschreiben und dann per Computerprogramm erzeugen.

Hier sollte das Schlangen-Kolam gezeichnet werden!

Die Funktion des Programms

Das Programm bearbeitet als Ausgangsfigur ein kreuzförmiges Objekt mit 45-Grad-Übergängen. Die erste Abbildung stellt nur einen Teil der Ausgangsfigur dar. Dieser Teil kann mit den Symbolen
F+F+F - - F - - F+F+F beschrieben werden. Die Symbole haben dabei die folgende Bedeutung:

F zeichne eine Linie
+ Zeichenrichtung 45 Grad nach links drehen
- Zeichenrichtung 45 Grad nach rechts drehen

Die Ausgangsfigur setzt sich aus dem Teil B, zwei 45-Grad-Drehungen nach rechts, einer Strecke F, wieder zwei 45-Grad-Drehungen nach rechts und einem weiteren Teil B zusammen. Es folgen zwei 45-Grad-Drehungen nach rechts, eine Strecke F, wieder zwei 45-Grad-Drehungen nach rechts und die Figur ist geschlossen
Der String F+F+F--F--F+F+F--F--F+F+F--F--F+F+F--F-- enthält damit die Zeichenvorschrift für die gesamte Ausgangsfigur.

In einer kürzeren Schreibweise kann die Zeichenfolge:
F+F+F--F--F+F+F als B zusammengefasst werden. In jedem weiteren Iterationsschritt wird jedes B durch die Zeichenfolge:
B+F+B--F--B+F+B ersetzt. Das hat für die erste Iteration die Folge, dass an jedem Arm der Ausgangsfigur eine weitere Ausgangsfigur angedockt wird.
In dem folgenden Bild ist die Ersetzung der Teifigur B blau dargestellt. Die Gesamtfigur zeigt das Ergebnis des ersten Rekursionsschrittes.

Um die gesamte Figur zu erzeugen, ist noch der untere Teil zu ersetzen und die bereits zu der Ausgangsfigur gehörenden seitlichen Linien bleiben erhalten.
Das Programm stellt die dritte Iteration grafisch dar.

 

Die formalen Sprachen eignen sich gut, um solche Strukturen zu entwickeln. Andere Kolams, und damit auch andere Strukturen lassen sich einfacher mit Gittersprachen entwickeln. Eine interessante Fingerübung wäre, das folgende Kolam zu generieren:

Zurück zur Seite Programmierung