DrachenkurveDie Drachenkurve ist ein fraktales Objekt, das ähnlich wie die Koch-Kurve und die Hilbert-Kurve durch Ersetzung erzeugt wird. AufbauEine anschauliche Methode, die Drachenkurve zu erzeugen, ist folgende:
AlgorithmusWeitere Implementationen im Rosetta Code Wiki.[1] Lindenmayer-SystemDie Drachenkurve lässt sich durch ein Lindenmayer-System mit folgenden Eigenschaften beschreiben:
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. PseudocodeZur 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:
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 OrdnungEine Drachenkurve n-ter Ordnung besteht aus Segmenten. Im Folgenden die ersten 16 Drachenkurven:
WeblinksCommons: Drachenkurve – Album mit Bildern, Videos und Audiodateien
Einzelnachweise |