Drachenkurve

Drachenkurve

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

Aufbau

Faltanleitung für eine Drachenkurve

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.

Algorithmus

Erstellung einer Drachenkurve durch 90°-Rotationen
Erstellung einer Drachenkurve durch Hinzufügen von Ecken in alternierender Richtung

Weitere Implementationen im Rosetta Code Wiki.[1]

Lindenmayer-System

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

  • Winkel: 90°
  • Terminale
  • Variablen
  • Startstring:
  • Ableitungsregeln:

F hat hierbei die Bedeutung einer neuen Strecke entlang der „Blickrichtung“. Plus und Minus entsprechen einer Drehung um 90 Grad mit bzw. gegen den Uhrzeigersinn.

Pseudocode

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

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

Weblinks

Commons: Drachenkurve – Album mit Bildern, Videos und Audiodateien

Einzelnachweise

  1. Rosetta Code Wiki

Auf dieser Seite verwendete Medien

14 Order Dragon Curve.svg
14th Order Dragon Curve
12 Order Dragon Curve.svg
12th Order Dragon Curve
8 Order Dragon Curve.svg
8th Order Dragon Curve
9 Order Dragon Curve.svg
9th Order Dragon Curve
3 Order Dragon Curve.svg
3rd Order Dragon Curve
7 Order Dragon Curve.svg
7th Order Dragon Curve
10 Order Dragon Curve.svg
10th Order Dragon Curve
5 Order Dragon Curve.svg
5th Order Dragon Curve
Dragon curve paper strip.png
Autor/Urheber: unknown, Lizenz: CC-BY-SA-3.0
4 Order Dragon Curve.svg
4th Order Dragon Curve
Drachen p 2.PNG
Autor/Urheber:

Philipph

, Lizenz: Bild-frei

Drachenkurve

11 Order Dragon Curve.svg
11th Order Dragon Curve
15 Order Dragon Curve.svg
15th Order Dragon Curve
6 Order Dragon Curve.svg
6th Order Dragon Curve
13 Order Dragon Curve.svg
13th Order Dragon Curve
Dragon Curve unfolding zoom numbered.gif
Autor/Urheber: Jahobr, Lizenz: CC0
Animation einer sich entfaltenden Drachenkurve. Die Ordnung steigt von 0 bis 15. Die Ecken sind zur Darstellung des Verlaufs abgeflacht. Nach erreichen der Ordnung 15 wird die Kurve herangeholt um das Muster sichtbar zu machen.
0 Order Dragon Curve.svg
0 Order Dragon Curve
Dragon Curve adding corners trails rectangular numbered R.gif
Autor/Urheber: Jahobr, Lizenz: CC0
Animation of a Dragon curve. The order is increased from 0 to 15.
2 Order Dragon Curve.svg
2nd Order Dragon Curve