Drachenkurve

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die Drachenkurve ist ein fraktales Objekt, das ähnlich wie die Koch-Kurve und die Hilbert-Kurve durch Ersetzung erzeugt wird.

Drachenkurve
DragonCurve animation.gif

Aufbau[Bearbeiten]

Eine anschauliche Methode, die Drachenkurve zu erzeugen, ist folgende:

  • Man nehme einen Papierstreifen und falte ihn in der Mitte, sodass sich seine Länge halbiert.
  • Dies wiederhole man beliebig oft, dabei ist darauf zu achten, dass jedes mal in dieselbe Richtung gefaltet wird.
  • Zum Schluss falte man das Papier auseinander und ordne es so an, dass die Innenwinkel der Falze immer 90° betragen.
Faltanleitung für eine Drachenkurve


Algorithmus[Bearbeiten]

Weitere Implementationen im Rosetta Code Wiki

Lindenmayer-System[Bearbeiten]

Die Drachenkurve lässt sich durch ein Lindenmayer-System mit folgenden Eigenschaften beschreiben:

  • Winkel: 90°
  • Startstring: FX
  • Ableitungsregeln:
    • X \mapsto X+YF+
    • Y \mapsto -FX-Y

Pseudocode[Bearbeiten]

Zur vereinfachten Darstellung einer Drachenkurve wird im Folgenden eine Codierung mit den Symbolen R und L verwendet. Das Zeichnen der Drachenkurve geschieht ähnlich wie bei Turtle-Grafik: R bedeutet eine 90°-Drehung nach rechts und L eine 90°-Drehung nach links. Man beginnt mit einer Linie nach oben. Danach wird nach jedem Symbol eine Linie in die aktuelle Richtung gezeichnet. Es gibt also in jeder Drachenkurve eine Linie mehr als Symbole. Mittels dieser Codierung lässt sich algorithmisch eine Drachenkurve wie folgt konstruieren:

  • Die Drachenkurve 0. Ordnung besteht nur aus der Anfangslinie „nach oben“.
  • Die Drachenkurve 1. Ordnung ist R (Anfangslinie, dann Rechtswende und eine weitere Linie)
  • Berechne eine Drachenkurve der Ordnung i+1 folgendermaßen:
    • Hänge an eine Drachenkurve der Ordnung i ein R an
    • Hänge an das Ergebnis erneut die Drachenkurve der Ordnung i, wobei das mittlere Zeichen durch L ersetzt wird.

Als Beispiel die Codierung der Drachenkurven der Ordnung 0 bis 5. Das eingefügte R ist im Folgenden fett gedruckt, das durch L ersetzte mittlere Zeichen kursiv.

0. Ordnung: ε (leerer String)
1. Ordnung: R
2. Ordnung: RRL
3. Ordnung: RRLRRLL
4. Ordnung: RRLRRLLRRRLLRLL
5. Ordnung: RRLRRLLRRRLLRLLRRRLRRLLLRRLLRLL

Drachenkurven verschiedener Ordnung[Bearbeiten]

Eine Drachenkurve n-ter Ordnung besteht aus 2^n Segmenten. Im Folgenden die ersten 16 Drachenkurven:

Weblinks[Bearbeiten]

 Commons: Drachenkurve – Album mit Bildern, Videos und Audiodateien