|
Was ist Hüpfer?
Hüpfer ist eine Computergraphik, genauer ein Fraktal.
Bei Vorgabe eines Anfangspunktes werden mit Hilfe zweier Formeln nacheinander
die Koordinaten immer weiterer Punkte berechnet und sofort gezeichnet.
Die Punkte schließen sich zu Figuren zusammen. Das Besondere ist
und so kommt der Name Hüpfer zustande, dass die Punkte um den Anfangspunkt
herum in immer meist größeren Abständen springen. Das konnte
man in den achtziger Jahren, als diese Grafiken aufkamen, bei den damals
langsameren Computern gut erkennen. Heute sind die Bereiche, in denen gerade
gezeichnet wird, vergleichbar mit pulsierenden Ringen, in die sich Kaskaden
von Punkten ergießen.
Hüpfer ist die deutsche Bezeichnung von Hopalong (hop-along, weiterhüpfen).
Der Erfinder von Hopalong ist Barry Martin von der Aston University
in Birmingham/England. A. K. Dewdney beschrieb diese Fraktale im Magazin
Scientific
American im September 1986 und machte sie so bekannt. Die deutsche
Ausgabe
Spektrum der Wissenschaft verbreitete Hopalong in Deutschland
in der Novemberausgabe 1986 mit einer Übersetzung dieses Artikels
in der Rubrik Computer-Kurzweil .
Es folgen drei typische Hüpfer-Bilder.
a=0.4, b=1, c=0
|
a=0.7, b=1, c=0
|
a=0.01, b= -0.3, c=0.003
|
Algorithmus top
In Dewdneys Aufsatz findet man das folgende Programm.
... ... |
Erklärung:
Der Ausgangspunkt der Grafik ist der Punkt (x,y)=(0,0).
Nach zwei getrennten Formeln werden xx und yy berechnet. Dabei tauschen
sich x und y aus. Dann wird zum Plotten "umgeladen". Das wiederholt sich
bis num erreicht wird.
Die Variable i steht für einen Punkt, num ist die Anzahl der Punkte.
Die Vorzeichenfunktion SIGN(x) ist gleich 1, wenn x>0, -1 wenn x<0
ist; SIGN(0)=0.
ABS(x) ist die Betragsfunktion und ermöglicht ein Wurzelziehen. |
Es gibt im Programm vier Variable, die eine Figur bestimmen. Das sind die
Parameter (a, b, c) und die Anzahl der Punkte num.
Wer sich mit Hüpfer beschäftigen will, sollte - in welcher
Programmiersprache auch immer - dieses einfache Programm ausprobieren.
Fractint top
Die drei Bilder oben wurden mit dem Programm Fractint erzeugt.
Fractint
ist ein Programm, das der Mandelbrotmenge (Apfelmännchen) gewidmet
ist. Man kann das Freeware-Programm aus dem Internet (URL unten) holen.
Auf meiner Seite Apfelmännchen habe
ich die Version 18.21 beschrieben.
So nebenbei kann man auch Hopalongs erzeugen. Man markiert unter Fractals/Fractal
Formula...Hopalong und erhält ein Fenster mit den eingestellten
Parametern a=0.4, b=1 und c=0 und dem Bereich ist -2<x<3 und -1.625<y<2.625.
Mit OK bestätigt man die eingestellten Werte und es entsteht ein Hopalong.
Das Programm verwendet eine Endlosschleife und man hat damit keine Informationen
über die Anzahl der bereits gezeichneten Punkte.
... ... |
Wenn man den Entstehungsvorgang früh genug abbricht, erhält
man abgeschlossene Figuren wie oben.
Mit der Zeit wachsen die Figuren jedoch über den Bilderrahmen
hinaus (links).
Für die Parameter a=0.01, b=0.3 und c=0.0003 ergab sich nach einer
halben Stunde das nebenstehende Bild. |
Wie man sieht, sind die Punkte nach bestimmten Regeln gefärbt. Jedoch
sind Hüpfer eher wegen der Formen interessant.
In der Homepage von David
Imai (URL unten) wird ein Applet angeboten [Das Applet
bleibt offline aktiv, wenn man die Seite geöffnet hält]. Man
kann sich vom Reichtum der Formen mit "New Image" überzeugen. Man
kann die Parameter a,b und c verändern.
Am Applet der Homepage von
"Fluxery" (URL unten) ist auch interessant, dass man auch den Term
{Sgn(x)*Sqrt(Abs(b * x - c))}der Originalarbeit
durch verwandte Terme ersetzen kann.
Experimente top
Wie viele Leser von Spektrum der Wissenschaft habe ich damals
dieses kleine Programm sofort ausprobiert. In den 90iger Jahren benutzte
ich dann ein Programm in Visual Basic 3, das ich jetzt wieder ausgegraben
habe. Es soll gleich vorweg angemerkt werden, dass es ein "Arbeitsprogramm"
ist.
Hauptroutine des Programms:.
Sub graph (u, v, a, b, c, z)
text9.Text = ""
x = 0: y = 0
For i = 0 To z
PSet (u + x, v + y)
xx = y + Sgn(x) * Abs(b * x - c)
yy = a - x
x = xx
y = yy
If i / 10000 = Int(i / 10000) Then text9.Text
= Str$(i)
Next i
text9.Text = "Ende"
End Sub................................................................................ |
Man erkennt das Programm von oben wieder.
>Der Einfachheit halber werden Bildschirmkoordinaten verwendet. Dadurch
ist die Einheit gleich einem Pixel.
>Die Variablen u und v legen fest, wo die Mitte einer Figur liegt. Das
kann in Visual Basic etwa (7000,5000) sein.
>Der erste Funktionsterm ist Sgn(x) * Abs(b * x - c). Im Unterschied
zum klassischen Hüpfer fehlt die Sqrt-Funktion.
So habe ich etwas Eigenes :-).
<text9.Text> ist sehr hilfreich. Man kann die Fortschritte und das
Ende des Zeichnens erkennen. |
Zum Programm.
Wenn man nach dem Start das graue Schaltfeld Margerite anklickt, so
werden oben sechs Parameter eingelesen. In der Mitte unten steht im weißen
Feld das Wort "Margerite". Geht man auf "zeichnen", so werden die
Werte oben ausgelesen und die Punkte berechnet und gezeichnet. Das Bild
füllt den Bildschirm aus. Unten sieht man einen Ausschnitt. Mit einem
Klick auf "löschen" verschwindet es. Man kann die Parameter
mit Maus und Tastatur ändern und wieder auf "zeichnen" klicken. Gibt
man für u nacheinander 1000, 3000, 7000, 9000 an, so stehen Bilder
nebeneinander und man kann vergleichen.
Ich biete das Programm huepfer hier zum Herunterladen
an. Man benötigt die .dll-Datei <vbrun300.dll>, die man im Internet
findet. Sie muss meist ins Verzeichnis C:/Windows. Der Umfang ist 9358
Byte.
Es folgen einige Bilder, die mit dem Programm huepfer
erstellt worden sind. Darunter stehen jeweils die Parameter (a, b, c, num).
Bitte beim Betrachten den Kopf leicht nach rechts neigen um sich an der
Symmetrie zu erfreuen.
(500, 0.21, 100,150000)
|
(150, 0.22761, 100, 300000)
|
(300, 0.21, 50, 750000)
|
(366, 0.07, 50,1000000)
|
(500, 0.833, 120, 40000)
|
(150, 0.033, -80, 2000000)
|
(300, 0.405, 150, 600000)
Der Einfluss der Parameter auf ein Bild ist voller
Überraschungsmomente.
Eine Aussage kann man wagen: Je größer die Parameter, desto
größer wird im Endeffekt die Figur.
xx = y + Sgn(x) * Abs(b * x - c)
yy = a - x
Fünf Parameter sind jeweils für ein Bild konstant, der sechste
Parameter (er steht oben links) ändert sich.
Tipps top
>Es soll noch einmal hervorgehoben werden, dass man am besten ein eigenes
Programm schreibt um Hüpfer zu studieren. Dann kann man auch leicht
Abänderungen des Programms vornehmen und lernt die große Vielfalt
der Formen kennen.
Einige Tipps:
>Probiere alle möglichen Zahlen (auch negative Zahlen) für
a,b,c,num aus.
>Lasse die Funktion INT(x) weg. Es zeigt sich, wie wichtig diese "Sprungfunktion"
für einen Muster-Reichtum ist.
>Lasse die Funktionen SQR(x) und dann auch ABS(x) weg.
>Ersetze x durch 0.9999*x. Es ist erstaunlich, dass trotz der Nähe
zu 1 wegen der vielen Iterationen die Grafiken klein bleiben.
>Ändere die Vorzeichen. Es wird deutlich, wie bestimmend sie sind.
>Bringe Farbe in den Hüpfer.
>Verwende statt des Standardterms Sgn(x) * Sqrt((Abs(b * x - c)) andere
Terme.
Beispiel:
Hüpfer im Internet top
Deutsch:
Georg Wengler
Punktmengen
durch Iteration (Hüpfer), Applet
Englisch:
David Imai
Hopalong Image
Generator an interactive Java applet
James Henstridge
Hopalong
Orbit Fractal (Applet)
Po Shan Cheah (Java Programs)
The "hopalong"
strange attractor (Run it. Get the source code.)
NN ("Fluxury")
Hopalong
Fractals (Applet)
Paul Bourke
Fractals
and Computer Graphics
The Fractint
Site at SPANKY is maintained by Noel Giffin at the TRIUMF project on
the University of British Columbia Campus in Vancouver B.C. Canada.
Links überprüft am 23.01.2006
Referenzen top
A.K.Dewdney: Computer-Kurzweil, Spektrum der Wissenschaft, November
1986
Feedback: Emailadresse auf meiner Hauptseite
Diese
Webseite ist bald auch in Englisch vorhanden.
URL meiner
Homepage:
http://www.mathematische-basteleien.de/
©
2003 Jürgen Köller
top |