Zurück


1. Einleitung

2. Hauptteil

3. Schluss

4. Quellen


» Sie befinden sich hier: Startseite / Hobbys / IT / Facharbeit Fraktale


Fraktale


Facharbeit von Andreas Riedl im Fach Mathematik


1. Einleitung


In dieser Facharbeit werde ich mit Hilfe von fraktalen Modellen Pflanzenblätter imitieren. Bei der theoretischen Erklärung beschränke ich mich aber auf den Farn und das Sierpinski-Dreieck. Die grafische Darstellung der Imitation wird mit Hilfe eines unter Visual Basic 6.0 entwickelten Computerprogramms erzeugt.


Zuerst bedarf es aber einer Definition und eines geschichtlichen Hintergrunds der fraktalen Geometrie, um mit diesem komplexen Thema vertraut gemacht zu werden.


Die euklidische Geometrie (nach Euklid um 300 v. Chr.), die nur „einfache“ Formen, wie zum Beispiel Geraden und Kreise behandelt, war nicht in der Lage, „solche Formen zu beschreiben, die ähnlich in der Natur vorkommen, wie etwa Wolken, Berge, Küstenlinien und auch Pflanzenblättern“ [01]. Aus diesem Grund musste eine neue Geometrie der Natur entwickelt werden, die viele der unregelmäßigen und zersplitterten Formen um uns herum beschreibt. Diese neue Geometrie wurde fraktale Geometrie genannt. Der von Benoit B. Mandelbrot (* Warschau 1924) geprägte Begriff stammt von dem lateinischen Adjektiv fractus ab. Das dazugehörige Verb frangere wird als „zerbrechen, unregelmäßige Bruchstücke erzeugen“ übersetzt. Wie die Übersetzung zeigt ist der Ausdruck Fraktale für diese Geometrie passend, da „Fraktale selbstähnlich sind, das heißt, jeder Ausschnitt einer fraktalen Figur ähnelt bei entsprechender Vergrößerung dem Gesamtobjekt“ [02]. Seit Ende der siebziger Jahre findet die fraktale Geometrie und auch die Chaostheorie immer mehr Anerkennung in der Mathematik und den Naturwissenschaften, was sich vor allem durch die vielen Überraschungen, die sich mit Hilfe der fraktalen Geometrie ergeben, erklären lässt, vor allem dadurch, dass man mit Hilfe von Fraktalen eine Struktur im Chaos erkennen kann. [03]



2. Hauptteil


2.1 Grundlagen der fraktalen Geometrie


2.1.1 Methode der Rückkoppelung = Iteration


Bevor ich mit der Entwicklung des Farns beginne, bedarf es erst einiger Definitionen, Erklärungen und Formeln. Dabei werde ich im ersten Teil meiner Facharbeit auf die Methode der Rückkoppelung eingehen, welches für die Imitation von Pflanzenblättern eine Grundvoraussetzung darstellt.

Stellen wir uns dazu eine beliebige Formel vor, wie zum Beispiel f(x) = x².

Wir setzen eine beliebige Zahl x in die Formel ein, berechnen das Ergebnis und verwenden dieses Ergebnis wiederum als neues x und wiederholen den beschriebenen Vorgang. Kurz gesagt: eine „wiederholte Anwendung desselben Rechenverfahrens auf dabei gewonnene Zwischenwerte“ [04]. Dieser Vorgang wird auch Iteration genannt.

Ich werde dieses System Rückkoppelungsmaschine [05] nennen. Deren Funktionsweise ist in Abbildung 1 aufgezeigt. (EE: Eingabeeinheit, AE: Ausgabeeinheit)



Abbildung 1: Methode der Rückkoppelung


Die Methode der Rückkoppelung wird oft durch ein sehr anschauliches Beispiel erklärt, was ich Ihnen auch hier nicht vorenthalten will: die Videorückkoppelung. [06]

Man muss dabei einem Fernsehgerät eine Videokamera gegenüberstellen und den Videoausgang der Kamera mit dem Videoeingang des Fernsehgerätes verbinden, damit das aufgenommene Bild gleichzeitig auf dem Bildschirm sichtbar wird. Dieses Bild wird von der Kamera wieder aufgenommen und wiederum an den Bildschirm weitergeleitet.



2.1.2 Mehrfach-Verkleinerungs-Kopier-Maschine (kurz: MVKM) oder IFS (deterministisches iteriertes Funktionssystem)


Eine verbesserte Version der Rückkoppelungsmaschine ist die Mehrfach-Verkleinerungs-Kopier-Maschine (kurz: MVKM) [07]. Auch hier werde ich zunächst deren Funktionsweise erklären und durch ein Beispiel verdeutlichen.


Um eine MVKM zu erhalten, müssen wir einen Kopierer mit einer bestimmten Anzahl von Linsen ausstatten (ein normaler Kopierer hätte nur eine Linse), die jeweils das aufgelegte Bild verkleinern und die Verkleinerung auf eine bestimmte Stelle auf dem Kopierpapier setzen. In Abbildung 4 sehen wir den Aufbau einer MVKM mit drei Linsensystemen und in Abbildung 5 das Ergebnis nach einer bestimmten Anzahl von Iterationen (Durchgängen). Das Ergebnis ist ein Sierpinski-Dreieck [08], dessen Entstehung im folgenden Abschnitt genau erklärt wird.



Abbildung 2: Iteration eines Rechtecks


Ein beliebiges Rechteck (Anfangsrechteck) wird mit Hilfe der schwarz markierten Linse in Abbildung 3 auf das in Abbildung 4 mit 1 nummerierte schwarze Rechteck abgebildet. Es wird dabei verkleinert und um einen bestimmten Wert verschoben. Dasselbe Anfangsrechteck wird nun durch die graue und ebenfalls durch die weiße Linse auf Rechteck 2 und Rechteck 3 abgebildet. Dieses neue Objekt, aus den Rechtecken 1 – 3 bestehend, wird nun wiederum auf die eben beschriebene Weise mit Hilfe der drei Linsensystemen abgebildet. Das Ergebnis sehen Sie in Abbildung 4, Nr.4. Dieser Vorgang wird nun beliebig oft durchgeführt, bis ein Sierpinski-Dreieck entsteht (siehe Abbildung 4, Nr.5).



2.1.3 Affin-lineare Transformationen


Wenn wir nun verschiedene Linsensysteme, die neben gewöhnlichen Verkleinerungen auch andere Transformationen zulassen, wie zum Beispiel Skalierung, Scherung, Drehung, Spiegelung und Verschiebung, können wir mit der MVKM beeindruckende Objekte erzeugen.

Eine Zusammenfassung von Rotation, Skalierung und Verschiebung erfolgt mit Hilfe der folgenden Formel, die im Anhang dieser Facharbeit entwickelt wird:

x2 = x1 · kx · cos(w) – y1 · ky · sin(w) + e
y2 = x1 · kx · cos(w) + y1 · ky · sin(w) + f

Eine Kurzschreibweise, die wir in dieser Facharbeit hauptsächlich verwenden werden, lautet:

x2 = ax1 + by1 + e
y2 = cx1 + dy1 + f


2.1.4 Zusammenhang zwischen MVKM und affinen Transformationen


Der Vollständigkeit halber werde ich in diesem Kapitel auf die mathematische Beschreibung des Zusammenhangs zwischen MVKM und affinen Transformationen eingehen.


„Die Linsensysteme einer MVKM werden durch eine Anzahl von affinen (verwandten) Transformationen w1, w2, ..., wn beschrieben. Von einem gegebenen Anfangsbild A werden affine Kopien w1(A), w2(A),..., wn(A) erzeugt. Die MVKM stellt diese Kopien zu einem neuen Bild zusammen. Es entsteht die Ausgabe W(A) der Maschine: W(A) = w1(A) w2(A) ... wn(A) .


Der Betrieb der MVKM im Rückkoppelungsmodus entspricht somit der Iteration des Operators W. Das ist der Kerngedanke eines deterministischen iterierten Funktionssystems (IFS). Beginnend mit irgendeinem Anfangsbild A 0 erhalten wir A 1 = W(A 0) und A 2 = W(A 1) usw.“ [09]


In den folgenden Abbildungen sehen Sie die Arbeitsweise einer MVKM mit einem Rückkoppelungsmechanismus und den Bauplan einer MVKM. Auf beiden Bildern wird wiederum ein Sierpinski-Dreieck erzeugt. Das Anfangsbild ist jeweils ein Quadrat bei dem in der oberen Ecke der Buchstabe „L“ eingetragen ist, um die Position des Bildes eindeutig bestimmen zu können.



Abbildung 3: Bauplan einer MVKM



2.1.5 Definition des Attraktors


„Unabhängig davon, welches Anfangsbild wir der MVKM zuführen, erhalten wir stets eine Folge von Bildern, die ein und demselben Endbild zustreben. Dieses Endbild wird Attraktor der Maschine genannt. Wenn wir die Maschine mit dem Attraktor starten, passiert gar nichts.“ [10]



2.2 Erzeugung eines Farns mit nur vier Linsensystemene


Nach vielen Formeln und Definitionen können wir uns nun dem Hauptthema dieser Facharbeit zuwenden. Der Imitation von Pflanzenblättern. Wie bereits in der Einleitung erwähnt werde ich in der schriftlichen Arbeit nur auf den Farn und das Sierpinski-Dreieck eingehen, während in der praktischen Arbeit, also dem Softwareteil auch ein Ahornblatt verfügbar ist.


Entdeckt wurde der Attraktor des Farns von Michael Barnsley, weswegen er heute Barnsley-Farn genannt wird (siehe Abbildung 4).


Barnsleys Farn kann mit nur vier Linsensystemen dargestellt werden. Die Transformationen 1 und 2 sind jeweils Drehungen mit Verkleinerung, Transformation 3 führt außerdem eine Spiegelung durch. Die 4. Transformation staucht das Anfangsbild in nur eine Richtung, so dass nur ein Strich übrig bleibt, der den Stil des Farns darstellt. Abbildung 7 zeigt das Grundgerüst, an dem man erkennt, wie die Transformationen wirken.



Abbildung 4: Bauplan des Barnsley-Farns


Die folgende Tabelle gibt die einzelnen Werte an, die für die Transformation nötig sind. Beachten Sie bitte, dass jede Linse, im Gegensatz zum Sierpinski-Dreieck, eine andere Transformation durchführt.


Abb. Skalierung Drehung Verkleinerung
e f w kx ky
1 0 0,16 -2,5° 0,85 0,85
2 0 0,16 49° 0,3 0,3
3 0 0,044 -50° 0,3 0,37
4 0 0,16 0 0,16

Die Werte für die vier verschiedenen Transformationen wurden aus Barnsleys Buch [11] entnommen.


Durch Änderung der einzelnen Werte ändert sich die Form des Farns. Im Softwareprogramm dieser Arbeit können die einzelnen Parameter beliebig verändert werden.


Um die in Kapitel 2.1.3. aufgeführte, verkürzte Formel benutzen zu können, müssen die einzelnen Parameter der vier Transformationen zusammengefasst werden. Die folgenden Parameter werden in den meisten Dokumentationen zum Barnsley Farn angegeben. In meiner praktischen Arbeit werde ich aber die ausführliche Schreibweise der Formel und Parameter verwenden, damit die einzelnen Transformationen besser verändert werden können.


Abb. a b c d e f
1 0,849 0,037 -0,037 0,849 0 0,16
2 0,197 -0,226 0,226 0,197 0 0,16
3 -0,193 0,283 0,23 0,238 0 0,044
4 0 0 0 0,16 0 0,16

Kommen wir aber nun zur Entwicklung des ersten Programms.




2.3 Erste Methode: Farnerzeugung mit MVKM


2.3.1 Entwicklung des MVKM – Programms


Der Übersichtlichkeit halber habe ich den Code des Programms in drei Prozeduren aufgeteilt.


Die einzelnen Koeffizienten der Abbildung werden in einem globalen Array vom Typ Koeffizienten gespeichert.


Public g_KoeArray ( ) As Koeffizienten

Um globale Variablen von lokalen zu unterscheiden benutzte ich die ungarische Notation, die globale Variablen mit dem Präfix g_ ausstattet. [12]


Der Typ Koeffizienten ist folgendermaßen definiert:


Public Type Koeffizienten
  a As Variant 'Streckung X * cos(Alpha)
  b As Variant 'Streckung Y * sin(Alpha)
  c As Variant 'Streckung X * cos(Alpha)
  d As Variant 'Streckung Y * sin(Alpha)
  e As Variant 'Verschiebung X
  f As Variant 'Verschiebung Y
End Type

Die erste Funktion übernimmt die Anzahl der Iterationen, legt die Koordinaten eines Startvierecks fest und startet schließlich die Iteration.


Public Sub MVKM (ByVal NUM As Integer)
  ‘Startviereck
  Dim p1 as Point, p2 As Point, p3 As Point, p4 As Point
  p1.x = 0 : p1.y = 0
  p2.x = 0 : p2.y = 1
  p3.x = 1 : p3.y = 1
  p4.x = 1 : p4.y = 0
  ‘Iteration starten
  Call IFS (p1, p2, p3, p4, 0 , NUM)
End Sub

Die nächste Prozedur bildet den Kern der MVKM. Die durch die MVKM – Prozedur übergebenen Koordinaten des Startvierecks werden gespeichert, und die vier Transformationen werden auf die Koordinaten des Vierecks angewandt. Die transformierten Koordinaten des Vierecks werden nun durch einen rekursiven Aufruf der Prozedur wieder transformiert. Die Anzahl der Iterationen wird dabei jeweils um eins verringert. Dieser Vorgang wird solange durchgeführt, bis die Anzahl der Iterationen Null ist. Danach werden die Vierecke mit den entsprechenden, durch die Iteration ermittelten Koordinaten ausgegeben.


Private Sub IFS (pLU As Point, pLO As Point, pRO As Point, PRU As Point, abb As Integer, NUM As Integer)   Dim p1 as Point, p2 As Point, p3 As Point, p4 As Point
  if abb <> 0 Then
   ‘Koordinaten transformieren
   p1.x = g_KoeArray(abb).a * pLU.x + g_KoeArray(abb).b * pLU,Y + g_KoeArray(abb).e
   p1.y = g_KoeArray(abb).c * pLU.x + g_KoeArray(abb).d * pLU.Y + g_KoeArray(abb).f
   ‘auch für p2, p3 und p4
  Else
   p1.x = pLU.x : p1.x = pLU.y
   ‘auch für p2, p3 und p4
  End If
  ‘Nur die letzte Transformationen ausgeben
  If NUM < 1 Then
   Viereck p1, p2, p3, p4
  End If
  ‘Rekursiver Aufruf der Prozedur
  IF NUM >= 1 Then
   For i = 1 To 4
    IFS p1, p2, p3, p4, i, NUM - 1
   Next i
  End If
End Sub

Die letzte Prozedur, Viereck, gibt letztendlich die ermittelten Vierecke aus. Diese Prozedur, so wie der vollständige Code des MVKM – Programms finden Sie auf der beiliegenden Diskette dieser Facharbeit.



2.3.2 Dekodierungsproblem


In diesem Kapitel werde ich ein Problem der MVKM - Methode aufführen. Betrachten Sie bitte in Abbildung 8 den Barnsley-Farn nach 5 und 10 Iterationen. Wie Sie bestimmt erkannt haben, ist der vollständige Farn noch in weiter Ferne. Dieses Problem werden Sie sicher auch bei der Verwendung der beiliegenden Software bemerkt haben. Man könnte zwar das Zeichnen des Farns durch die Verwendung von DirectX erheblich beschleunigen, die Codeerklärung hätte aber den Rahmen dieser Facharbeit gesprengt. Ein weiterer Nachteil für die Ausführgeschwindigkeit des Programm ist die Verwendung von Visual Basic 6.0 anstatt der neuen Version Visual Basic .NET. Der Visual Basic .NET Code hat aber nur noch sehr wenig Ähnlichkeiten mit dem 6er Code, weswegen ich mich letztendlich für Visual Basic 6.0 entschieden habe.


Im Folgenden versuche ich nun auszurechnen, nach wie vielen Schritten angenommen werden kann, dass das Endbild hinreichend gut erreicht ist.



Abbildung 5: Barnsley-Farn nach 5 und 10 Iterationen


Um das Anfangsechteck auf eine Größe unterhalb eines Pixels zu verkleinern, d.h. unter die grafische Auflösungsgrenze, muss eine bestimmte Anzahl von N Iterationen durchgeführt werden. Aus obiger Tabelle ist ersichtlich, dass Transformation 1 das Rechteck um den Faktor 0.85 verkleinert. Für die Rechnung setze ich die Größe des Anfangsrechtecks auf 100 x 100 Pixel. Aus der Gleichung 100 · 0.85 N = 1 ergibt sich für die ganze Zahl N die untere Schranke N ˜ 28. Das Anfangsrechteck der Breite 100 Pixel muss sooft um den Faktor 0.85 verkleinert werden, bis es eine Größe von 1 Pixel erreicht hat. Daraus folgt, dass man für N Iterationen M = 1 + 4 + 4 2 + 4 3 + ... + 4 N Rechtecke aufzeichnen müsste (vier Transformationen). Durch einsetzen von N = 28 in eine Reihenformel, , ergibt sich für M ˜ 10 17. Gute Computer sind unter bestimmten Voraussetzungen heutzutage in der Lage ungefähr 1000 Rechtecke pro Sekunde zu zeichnen. Damit müssten wir 10 14 Sekunden oder ungefähr 3 Millionen Jahren auf das Endbild warten.


Da unsereins einerseits nicht so lange auf das Ergebnis warten möchte und andererseits dazu auch nicht in der Lage ist, werde ich in den nächsten Kapitel der Facharbeit eine Lösung dieses Problems entwickeln. Mit Hilfe von Zufall und Chaos kann der Barnsley-Farn innerhalb von wenigen Sekunden in guter Näherung des Endbilds gezeichnet werden. [13]



2.4 Zweite Methode: Farnerzeugung mit GVKM


2.4.1 Chaos Spiels


„Die Realität ist vielleicht das reinste Chaos.“ [14]


Mit diesem Zitat von Georg Christoph Lichtenberg (1742 – 1799) im Hinterkopf werde ich ein Spiel einführen, wie Barnsley in seinem Buch „Fractal modelling of real world images“ [15], das Ihre Vorstellung vom Zufall möglicherweise ganz drastisch verändern kann. Dieses Spiel heißt Chaos-Spiel. Als Zufallszahlengenerator dient ein normaler sechsseitiger Würfel, mit den Zahlen 1,2 und 3, wobei die Zahlen 4,5 und 6 jeweils durch 1,2 oder 3 zu ersetzen sind. In Abbildung 9 sehen sie das Spielbrett für das Chaos-Spiel, mit drei Punkten, 1,2 und 3, die ein Dreieck bilden, und Fixpunkte genannt werden.



Abbildung 6: Spielbrett des Chaos-Spiels


Zu Beginn muss ein beliebiger Spielpunkt auf dem Spielbrett gekennzeichnet werden. Dieser wird als z 0, wie in Abbildung 10 zu sehen ist, bezeichnet. Der Zufallsgenerator wird gestartet und erzeugt zum Beispiel die Zahl 2. Der neue Spielpunkt z 1 wird nun wie folgt erstellt: die Strecke zwischen z 0 und dem Fixpunkt 2 muss geteilt werden, und in der Mitte der neue Spielpunkt eingezeichnet werden.



Abbildung 7: Ersten sechs Züge des Chaos-Spiels


Diese Spielzüge setzen wir beliebig oft fort. In Abbildung 11 können Sie die entstehende Figur nach 100, 500, 1000, 10.000 Spielzügen sehen.



Abbildung 8: Chaos-Spiel nach 100, 500, 1000, 10000 Spielzügen


Überraschenderweise wurde mit diesem Zufallsexperiment das Sierpinski-Dreieck erzeugt. Sie haben somit erlebt, „wie der Zufall eine absolut deterministische Gestalt erzeugen kann“ [16]. Dieses Zufallsverfahren werde ich nun auch auf den Barnsley-Farn anwenden, um nicht 3 Millionen Jahre auf ein hinreichend gutes Ergebnis warten zu müssen. Dazu muss die MVKM mit einem Wahrscheinlichkeits-Mechanismus ausrüstet werden.



2.4.2 Umwandlung der MVKM in eine Glücksrad-Verkleinerungs-Kopier-Maschine (GVKM)


Um eine GVKM zu erhalten, muss die Kopiermaschine auf einzelne Punkte, und nicht auf das ganze Bild angewandt werden. Die wichtigste Änderung besteht darin, dass nicht alle Linsensysteme gleichzeitig eingesetzt werden. Stattdessen wird per Zufall ein Linsensystem, d.h. mit einer bestimmten Wahrscheinlichkeit, ausgewählt und dieses ausgewählte Linsensystem wird auf den vorhergehenden Punkt angewandt. Alle, durch diese Methode erzeugten Punkte, ergeben schließlich das Endbild der Maschine. In Abbildung 12 sehen Sie das Prinzip der GVKM.



Abbildung 9: Prinzip der GVKM


Der Vorteil der GVKM liegt vor allem darin, dass man nur noch einen Punkt im Auge behalten muss, wodurch die Darstellung durch den Computer erheblich beschleunigt wird.


Ich werde nun die GVKM – Methode auf den Farn anwenden.


Für alle Transformationen des Farns, w1, w2, w3, und w4 setze ich zu Beginn gleiche Wahrscheinlichkeiten voraus. Es wird per Zufall eine Transformation ausgewählt, z.B. w2, die dann auf einen beliebigen Startpunkt z 0 angewandt wird. Eine weitere zufällige Transformation wird nun auf den neuen Spielpunkt z1 = w2(z0) fort angewandt. Dieser Vorgang wird beliebig of durchgeführt. In Abbildung 13 sehen Sie das vorerst enttäuschende Ergebnis nach mehr als 100 000 Spielpunkten.



Abbildung 10: Barnsley-Farn mit GVKM nach 100000 Spielpunkten


Eine einfache Abwandlung der GVKM erzeugt ein viel besseres Ergebnis, wie aus Abbildung 14 ersichtlich wird.



Abbildung 10: Barnsley-Farn mit GVKM mit unterschiedlichen Wahrscheinlichkeiten


Anstatt für alle Transformationen die gleiche Wahrscheinlichkeit zu benutzen, wurden hier die einzelnen Transformationen mit unterschiedlichen Wahrscheinlichkeiten angesprochen. Die verwendeten Wahrscheinlichkeiten sind 0.85, 0.07, 0.07, 0.01 für die jeweiligen Transformationen. Die Abschätzung der passenden Wahrscheinlichkeiten wird in dieser Arbeit nicht behandelt, da dies den Rahmen sprengen würde.



2.4.3 Entwicklung des GVKM - Programms


In diesem Kapitel werde ich den Code für das GVKM – Programm entwickeln.


Zuerst muss ein Algorithmus entwickelt werden, der per Zufall eine bestimmte Abbildung auswählt. Zu beachten ist, dass jede Abbildung eine unterschiedliche Wahrscheinlichkeit hat.


Die einzelnen Wahrscheinlichkeiten der Abbildung werden zusätzlich in dem unter 2.3.1 aufgeführten, globalen Array vom Typ Koeffizienten gespeichert.


Public Type Koeffizienten
  'Koeffizienten der Abbildung...
  w As Variant 'Wahrscheinlichkeit
End Type

Für den Glücksradalgorithmus werden zwei Variablen benötigt.


Dim k As Integer
Dim s as Double

k speichert die gewählte Abbildung und s ist die Summe der Wahrscheinlichkeiten, das heißt s kann nur Zahlen zwischen 0 und 1 aufnehmen.


Zuerst wird Abbildung 1 gewählt und deren Wahrscheinlichkeit gespeichert.


k = 1
s = g_KoeArray(k).w

Durch eine Do – While Schleife wird nun ermittelt, welche Abbildung ausgewählt werden soll.


Do While s < Rnd
  k = k +1
  s = s + g_KoeArray(k).w
Loop ’Referenz angeben

Der Befehl Rnd gibt eine Zufallszahl zwischen 0 und 1 aus. Ist diese Zahl kleiner als die Wahrscheinlichkeit der ersten Abbildung, so wird die Schleife nicht fortgesetzt und Abbildung 1 verwendet. Ist Rnd größer als die Wahrscheinlichkeit der ersten Abbildung, so wird die Schleife ausgeführt. k wird erhöht, das heißt die nächste Abbildung wird verwendet. Die Wahrscheinlichkeit der gewählten Abbildung wird zu s dazugezählt. Die Schleife wird so lange fortgesetzt bis die Summe der Wahrscheinlichkeiten kleiner als die Wahrscheinlichkeit aus Rnd ist.


Dieser Algorithmus setzt die Variable k auf die Nummer der zu verwenden Abbildung. Die gewählte Abbildung wird nun auf die x- und y-Werte angewandt, beim ersten Iterationsdurchgang werden x und y auf Null gesetzt.


Der komplette Code lautet:


Public Sub GVKM (ByVal AnzahlIterationen As Long)
  Dim xAlt As Double, yAlt As Double
  Dim x As Double, y As Double
  Dim i As Integer
  Dim k As Integer
  Dim s As Double
  For i = 1 to AnzahlIterationen
   k = 1
   s = g_KoeArray(k).w
   Do While s < Rnd
    k = k + 1
    s = s + g_KoeArray(k).w
   Loop
   x = g_KoeArray(k).a * xAlt + g_KoeArray(k).b * yAlt + _
   g_KoeArray(k).e
   y = g_KoeArray(k).c * xAlt + g_KoeArray(k).d * yAlt + _
   g_KoeArray(k).f
    - Ausgabe der Punkte auf den Bildschirm
   xAlt = x
   yAlt = y
  Next i
End Sub

Die vollständige Version der Prozedur „GVKM“ finden Sie auf der beiliegenden Diskette.


Als Referenz für den oben entwickelten Code habe ich auf Peitgen zurückgegriffen. Peitgens Code musste aber vollständig überarbeitet werden, da sein Codestil nicht mehr der heutigen Zeit entspricht, da er zum Beispiel GoTo Funktionen verwendet, und somit Spaghetti-Code erzeugt.



2.5 Kurze Beschreibung der Gesamtsoftware: MG – VKM


In Abbildung 15 sehen Sie das Bild des MG-VKM Programms.



Abbildung 11: Programm MG-VKM
»» Download »»


In diesem Programm sind die Programme der Kapitel 2.3 und 2.4 in ein Gesamtprogramm zusammengefasst. Der Benutzer kann die Werte der Transformationen ändern, die Anzahl der Transformationen und Iterationen. Beim Praxisteil dieser Arbeit ist zu beachten, dass der in Kapitel 2.3 und 2.4 besprochene Code für dieses Programm verallgemeinert werden musste.



3. Schluss


Am Schluss meiner Facharbeit möchte ich eine kurze Zusammenfassung der Ergebnisse liefern und auf die Zukunft der fraktalen Geometrie eingehen.


In den Kapiteln 2.3 und 2.4 habe ich zwei verschiedene Methoden zur Erzeugung eines Farns erklärt, die MVKM - und die GVKM - Methode. Ich bin dabei auf die Probleme der MVKM – Methode eingegangen, und habe auf Grund dieser Probleme die GVKM – Methode entwickelt, die den Attraktor des Farns in einer viel kürzeren Zeit erstellt, als die MVKM – Methode. Der Vorteil der MVKM – Methode liegt dagegen darin, dass die einzelnen Schritte der Iterationen genau beobachtet werden können.


Zum Abschluss möchte ich noch auf die Zukunft der fraktalen Geometrie eingehen.


Michael Barnsley hat ein Verfahren entwickelt, – das er aber leider nicht preisgegeben hat - mit dem er mit Hilfe von fraktalen Modellen Bilder komprimieren kann. Dieses Verfahren übertrifft heutige Kompressions-verfahren bei weiten. Die Bilder werden nun nicht mehr durch einzelne Pixel beschrieben, sondern durch einzelne Abbildungen.


Bis zur endgültigen Durchsetzung dieses Verfahrens hat Michael Barnsley aber noch einen weiten Weg vor sich.



4. Literaturverzeichnis und Quellen:


[Barth], F., Mühlbauer, P., Dr. Nikol, F., Wörle, K., "Mathematische Formeln und Definitionen" München: Bayerische Schulbuch Verlag 1998


[Mandelbrot], B. B., “Die fraktale Geometrie der Natur”, Birkhäuser, Basel 1987


[Peitgen], H.O., Jürgens, H., Saupe, D., „Bausteine des Chaos“, Springer-Verlag, New York 1992


[Barnsley], M. F., "Fractal modelling of real world images, in: The Science of Fractal Images", H.-O. Peitgen und D. Saupe (Hrsg,), Springer-Verlag . New York . 1988


[Kühnel], A., "VB.NET: Objektorientiertes Programmieren in VB; Einstieg in die .NET-Klassenbibliothek" Bonn: Galileo Computing 2002


[Stephens], R., „Bug Proofing Visual Basic – A Guide to Error Handling and Prevention”, Wiley, USA 1999


[Brockhaus], "Der Brockhaus multimedial 2002 premium" Mannheim: Bibliographisches Institut & F.A. Brockhaus AG, 2001


[Abraham], R., “Structural Stability, the Theory of Catastrophes, and Applications in the Science: Simulation of cascades by video feedback”, Springer-Verlag , Berlin




[01] [Mandelbrot], S. 13

[02] vgl. [Brockhaus], Definition: Fraktale

[03] [Peitgen], S. VII

[04] vgl. [Brockhaus], Definition: Iteration

[05] [Peitgen]

[06] [Abraham]

[07] Die Metapher der MVKM stammt aus [Peitgen]

[08] Benannt nach dem Mathematiker Waclaw Franciszek Sierpinski (1882 - 1969)

[09] [Peitgen], S. 284f

[10] [Peitgen], S. 279f

[11] [Barnsley], S. 241

[12] [Stephens], S. 40ff

[13] [Peitgen], S. 310ff

[14] [Peitgen], S. VII

[15] [Barnsley]

[16] vgl. [Peitgen], S. 355



Kontakt zum Autor Andreas Riedl



© by Andreas Riedl | Impressum

Seitenanfang



Bewertung


Werbung