image image


Turtle-Graphik (5): Die Drachenkurve

Die Drachenkurve ist ein fraktales Objekt, das ähnlich wie die Koch-Kurve und die Hilbert-Kurve durch Ersetzung erzeugt wird. Sie wurde von den amerikanischen Mathematikern Harter und Heightway erfunden und durch eine Artikelserie im Scientific American vom März 1967 populär.

image

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

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

Die Drachenkurve ist strikt selbstähnlich und im Grenzfall flächenfüllend, das heißt, die fraktale Dimension ist 2.

Quellcode

Auch für die Programmierung der Drachenkurve bietet sich das Turtle-Modul von Python geradezu an:

import turtle as t
import math

numgen = 12

wn = t.Screen()
wn.setup(width = 640, height = 400)
wn.colormode(255)
wn.bgcolor(50, 50, 50)
wn.title("Drachenkurve")

puff = t.Turtle()
puff.speed(0)
puff.pencolor(150, 255, 100)

def dragon(drag, s, n, flag):
    if n == 0:
        drag.forward(s)
    else:
        alpha = 45
        if flag == 1:
            alpha = -alpha
            flag = -flag
        drag.left(alpha)
        dragon(drag, s/math.sqrt(2), n-1, -flag)
        drag.right(2*alpha)
        dragon(drag, s/math.sqrt(2), n-1, flag)
        drag.left(alpha)

puff.penup()
puff.setpos(-125, 50)
puff.pendown()
dragon(puff, 300, numgen, 1)
print("I did it, Babe!")

wn.mainloop()

Auch wenn ich schon mit t.speed(0) die höchstmögliche Geschwindigkeit eingestellt habe, dauert es eine Zeit, bis die Drachenkurve fertig gezeichnet ist. Man kann dafür aber während des Programmablaufes sehr schön die Entstehung der Kurve beobachten.

Literatur

image


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image


image