Die Mandelbrotmenge in Java

Mandelbrotmengen ge ̈ren zuden Fraktalen, das Besondere an der Mandelbrotmenge ist, dass die Details in den verschiedenen Bereichen gleich den Bereichen sind. Es liegt hier eine Selbstähnlichkeit vor, die dem Urheber der Mandelbrotmengen, Benoˆ Mandelbrot, zuzuschreiben ist. Das heisst, wird in ein Bereich der Menge optisch vergrössert, wiederholt sich dasselbe Muster in diesem Bereich.

Die Menge liegt der komplexen Zahlenebene zugrunde. In dieser werden nacheinander die Punkte dieser Ebene durchlaufen und mit einer festgelegten Folge berechnet.
Das Verhalten der Punkte in der Folge sagt aus, ob ein Punkt zu der
Mandelbrotmenge geh ̈rt oder nicht. Dieser Umstand wird sich bei der grafischen Darstellung zu Nutze gemacht, indem an dieser Stelle mit verschiedenen F ̈rbungen gearbeitet wird. Die Folge wird rekursiv durchlaufen, d.h. die Berechnung erfolgt aus den Werten des Vorgängers:

Mandelbrotmenge Formel

Um die Problematik der Berechnung der Mandelbrotmengen praktisch in einem Programm umsetzen zu können, wird die Berechnung der Folge für die Punkte in Teilschritten realisiert. Dies ermöglicht die Berechnung auf Grundlage der komplexen Zahlen, ohne komplexe Zahlen benutzen zu müssen. Aus der Reihe in Abschnitt 2 werden folgende Berechnungsvorschriften für die praktische Umsetzung:

Mandelbrotmenge Formeln

X0 und Y0 stellen jeweils die Koordinaten des zu zeichnenden Bildes dar. Xn und Yn sowie Xn+1 und Yn+1 sind die Folgeglieder beziehungsweise die Glieder aus dem vorangegangenen Durchlauf.
Mit dem Wert aus der letzten Formel wird jeweils geprüft, ob die
Koordinate zu der Mandelbrotmenge gehört. Dieser Vorgang wird für alle Koordinatenpunkte des zu zeichnenden Bildes durchlaufen.
Zur besseren Unterscheidung der Mandelbrotpunkte zu den normalen Bildpunkten werden verschiedene Farbwerte angebracht, die mit mit der Anzahl der Durchläufe verknüpft werden.

Mithilfe der beiden For-Schleifen werden die Bildpunkte durchlaufen, wobei das Bildkoordinatensystem in einem vorherigem Schritt einer Affintransformation unterzogen wurde, um eine Koordinatensystem mit dem Ursprung (0,0) in der Bildmitte zu erhalten. Im nächsten Schritt wird die Mandelbrotbedingung der berechneten Punkte geprüft sowie die Iterationsanzahl der Folge festgelegt. An dieser Stelle erfolgt die Berechnung der Mandelbrotbedingung mit den weiter oben genannten Formeln. Zur Darstellung im Bildkoordinatensystem wurde ein Pixelfaktor in die Berechnung eingeführt.
Zum Schluss werden die Farbeffekte des jeweiligen Pixels berechnet, um die Menge gut sichtbar darzustellen.

Mandelbrotmenge in Java Quellcode

Mandelbrotmenge mit Java

 

Um die komplexen Details der Mandelbrotmenge darstellen zu können, wurden verschiedene Zoomstufen mit Hilfe eines Zoomfaktors realisiert.

Mandelbrotmenge Java Zoom

Eingesetzt werden Fraktale wie zum Beispiel die Mandelbrotmenge in verschiedenen Bereichen der Grafikverarbeitung, um bestimmte visuelle Effekte zu erzielen sowie in der Chaosforschung, da sich das Verhalten der Folgeglieder hier anbietet.

Eine einfache Realisierung der Mandelbrotmenge ist gut umsetzbar. Um jedoch aufwendigere Ergebnisse erzielen zu können ist ein höherer Rechen- und Grafikaufwand notwendig. Altere Grafikkarten kommen hier durchaus an ihre Grenzen.
Durch Variation der Farbparameter lassen sich interessante Effekte erzielen.

Mandelbrotmenge programmieren Ergebnis

Meine Quellen

http://www.gekipptequadrate.de/mandelbrot.htm

http://nus.lugsp.at/ (Stand 17.12.2013, Link nicht mehr aktuell)

http://www.katharinen.ingolstadt.de/chaos/mandel2.htm (Stand 17.12.2013, Link nicht mehr aktuell)

Anmerkung: Diese Ausarbeitung habe ich im Dezember 2013 erstellt, zwei meiner Quellen sind anscheiend nicht mehr abrufbar, vielleicht wird dort auch nur die Seite umstrukturiert oder umgezogen.

 

 

Share on FacebookEmail this to someoneTweet about this on TwitterShare on Google+Pin on PinterestShare on TumblrPrint this page

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>