Ein Wort der Vorsicht an zaghafte Seelen: Nehmt euch in Acht! Windend und drehend werdet ihr verschiedenste, unter Umständen gefährliche Gitter durchlaufen und der Spur von geheimnisvollen Monstern und anderen Schönheiten auf dem Rücken einer Schildkröte folgen!


Unser Ziel ist es, diese wunderschönen Kurven bekannter zu machen. Hier könnt ihr Informationen über die Mathematik hinter den Kurven aus meiner Publikation „Fractal Plane-filling Curves“ [1] und Jörg Arndt’s „Plane-filling curves on all uniform grids“ [2] finden. Beide Veröffentlichungen findet ihr unten.

Gitterfüllende Kurven

Gitterfüllende Kurven sind kein neues Forschungsgebiet, sie wurden bereits 1890 entdeckt. Bekannte Beispiele sind die Hilbert- und die Peano Kurve [3,4].


Eine gitterfüllende Kurve füllt einen Teil des darunterliegenden Gitters vollständig aus. Bis 2013 waren allerdings nur ein paar der Monsterkurven veröffentlicht worden. Dann begann Jörg Arndt seine Suche nach Kurven einer ganz bestimmten Klasse – und war erfolgreich! Bis heute fand er über eine Million neuer fraktaler Objekte.

Lindenmayer Systeme (L-Systeme)

Lindenmayer Systeme wurden 1968 vom Biologen Aristid Lindenmayer eingeführt. Ursprünglich waren sie als theoretischer Rahmen beim Studium der Entwicklung einfacher, mehrzelliger Organismen gedacht.
Um die Kurven in unserer Klasse darzustellen, benutzen wir sogenannte einfache L-Systeme, die nur ein nicht-konstantes Symbol besitzen. L-Systeme sind, deterministische Textersetzungs-Automaten. Im folgenden Beispiel wird der Buchstabe „F“ durch das Wort „F+F-F“ ersetzt (F ist das nicht-konstante Symbol). Sowohl „+“ als auch „-“ werden auf sich selbst abgebildet, da sie konstante Symbole sind. Jede Kurve hat eine bestimmte Ordnung, nämlich die Anzahl der Buchstaben F im Wort. In diesem Fall, „F+F-F“, ist die Ordnung also drei.

Das Bild zeigt die Ersetzung des ersten „F“ - ein einfacher Strich - durch das Wort „F+F-F“. Die daraus entstehende Form, die ein wenig wie ein schiefes N aussieht, ist die erste Iteration des L-Systems. Für die nächste Iteration wird wieder jedes „F“ durch „F+F-F“ ersetzt, „+“ und „-“ bleiben unverändert.

Das Rendern der Kurven wird durch Turtle-Graphics umgesetzt. Stellt euch vor, ihr habt eine sehr geduldige Schildkröte, die für euch Linien zeichnet. Ihr setzt euch auf ihren Rücken und müsst ihr nur sagen, wie gezeichnet werden soll. Der Buchstabe „F“ bedeutet „male eine Linie in Einheitslänge in die aktuelle Richtung“. Da das unterliegende Gitter aus Dreiecken besteht, werden „+“ und „-“ als Drehungen um plus, oder minus 120° interpretiert. Auf anderen Gittern sind Drehungen um 90°, 60° und 120° möglich. Die resultierende Kurve in unserem Beispiel ist der altbekannte Terdragon, entdeckt von Davis und Knuth im Jahre 1970 [5].

Die Gitter

Wie bereits oben erwähnt, leben die Kurven auf bestimmten Gittern. Bei der Hilbert- oder der Peano-Kurve sieht man bereits, dass sie über ein quadratisches Gitter laufen. Die Gitterfüllenden Kurven unserer Klasse können nur auf Gittern existieren, die an jedem Punkt eine gerade Anzahl von sich treffenden Linien aufweisen. Dies ist beispielsweise beim Dreieckgitter, dem Viereckgitter und dem trihexagonalen Gitter (aus Dreiecken und Sechsecken) der Fall. Ein Gitter, das ausschließlich aus Sechsecken besteht, erfüllt diese Bedingung nicht, da sich hier drei Kanten an jedem Punkt treffen. Die Gitter, die wir betrachten sind die elf sogenannten uniformen Gitter. Diese beinhalten das Dreiecksgitter, das Vierecksgitter, das hexagonale und das trihexagonale Gitter. Als Symbol für das jeweilige Gitter werden die Polygone um einen Punkt herum benannt. Die Aufzählung wird mit dem Polygon mit der kleinsten Anzahl an Ecken begonnen [6]. Das Viereckgitter würde also das Symbol 4^4 bekommen, da sich an jedem Punkt vier Vierecke treffen. Beim trihexagonale Gitter treffen an jedem Punkt zwei Dreiecke und zwei Sechsecke abwechselnd aufeinander, deshalb wird es durch das Symbol 3.6.3.6 beschrieben.

Eigenschaften der Kurven

Die Kurven unserer Suche sind selbstvermeidend und kantenabdeckend (englisch edge-covering, kurz „ec“). Das bedeutet, sie überschneiden sich niemals selbst und durchlaufen jede Kante des darunterliegenden Gitters genau einmal. Die Punkte des Gitters werden allerdings mehrfach abgefahren.

Es existieren auch punktabdeckende Kurven (englisch point-covering, kurz „pc“), also Kurven, die jeden Punkt des darunterliegenden Gitters genau einmal abdecken. Diese können durch bestimmte Transformation aus den kantenabdeckenden EC-Kurven gebildet werden. Die Regeln für die Transformationen, die aus unseren EC-Kurven, PC-Kurven machen, findet ihr in den Papers [1] und [7]. In der Grafik rechts seht ihr eine EC-Kurve, die auf dem Dreieckgitter lebt und in zwei PC-Kurven transformiert wurde: In eine 3.6.3.6 PC-Kurve und eine PC-Kurve auf dem Sechseckgitter.

Jede Kurve hat zwei zugehörige Kachelungen (englisch tiling). Jeweils drei Kopien dieser Kurve der Ordnung 13 können zu einer Schneeflocke zusammengelegt werden. Die andere Kachelung besteht ebenfalls aus drei Kopien der Kurve und ähnelt einem Dreieck.
Eine weitere Eigenschaft der Kurven ist ihre Selbstähnlichkeit. Die Grafik zeigt, wie eine Kurve, ebenfalls der Ordnung 13, die auf dem Viereckgitter lebt, in 13 kleinere, gedrehte Kopien ihrer selbst unterteilt werden kann.


[1] Julia Handl, Joerg Arndt:
Fractal Plane-filling Curves, in Jürgen Mottok, Marcus Reichenberger, Reinhard Stolle (Eds.), ARC Conference Proceedings, pp. 248-251, (2016).

[2] Joerg Arndt:
Plane filling curves on all uniform grids, on arxiv.org, (2016)

[3] Giuseppe Peano: Sur une courbe, qui remplit toute une aire plane, Mathematische Annalen, vol. 36, no. 1, 1890.

[4] David Hilbert: Ueber die stetige Abbildung einer Linie auf ein Flächenstück, Mathematische Annalen, vol. 38, 1891, pp. 459-460.

[5] Chandler Davis, Donald E. Knuth: Number representations and dragon curves, in: Selected Papers on Fun and Games, CSLI Publications, 2011, pp. 571-614.

[6] Branko Grünbaum, Geoffrey C. Shephard: Tilings by regular polygons, Mathematics Magazine, vol. 50, no. 5, 1977.

[7] Joerg Arndt, Julia Handl: Plane-filling Curves on Grids, in Bridges Math Art Proceedings, pp. 537-540, (2016).