Koordinaten-Grafik mit Java

Entwicklungsprojekt PHBern
HomeAufgabenDruckenJava-Online
Online-Editor starten

Fraktale

Fraktale sind computergenerierte Bilder, die eine Selbstähnlichkeit aufweisen, d.h. bei denen Teilbilder eine verkleinerte Kopie des Gesamtbildes sind. Der Begriff fractal wurde 1975 von Mathematiker Benoid Mandelbrot eingeführt und stammt aus dem Lateinischen fractus (gebrochen), was sich auf die sogenannte fraktale Dimension bezieht. In der traditionellen Geometrie ist eine Linie eindimensional, eine Fläche zweidimensional und ein Raum dreidimensional. Fraktale Bilder weisen meist eine nicht-ganzzahlige Dimension auf. Interessante Bilder liefern Fraktale, die durch eine nichtlineare Transformation entstehen. Solche Fraktale werden in der Regel nach der komplexen Abbildungsgleichung z' = z² + c iterativ berechnet, wobei c eine komplexe Zahl ist.

Die folgende Bildsequenz zeigt, dass jede Ausschnittsvergrösserung eines Fraktals wieder ein Fraktal ist.

 
 
 
 
 

Die bekanntesten nichtlinearen Fraktale sind Julia-Mengen und Mandelbrot-Mengen.

 

Julia Menge

 

Mandelbrot Menge

 

 
 
Beispiel zeigen
(Julia.java)

Beispiel im Online-Editor bearbeiten

Programmcode herunterladen

 
Beispiel zeigen
(Mandelbrot.java)

Beispiel im Online-Editor bearbeiten

Programmcode herunterladen

Beim Mandelbrot-Fraktal kann mit der Maus eine quadratische Fläche abgegrenzt werden, die in einem neuen Bild vergrössert gezeigt wird.

Erklärungen zum Programmcode:
Für die Berechnung der Fraktale sind komplexe Zahlen erforderlich. Die Klassenbibliothek ch.aplu.util enthält eine Klasse Complex, welche die wichtigsten Methoden für den Umgang mit komplexen Zahlen zur Verfügung stellt.
Complex c = new Complex( double real, double img )
Erzeugt eine komplexe Zahl mit dem Realteil real und Imaginärteil img.
getReal() Gibt den real Teil zurück.
getImg()
Gibt den imaginären Teil zurück.
modulus() Gibt den Betrag zurück.
Complex.add(Complex c1, Complex c2) Liefert eine neue komplexe Zahl als Summe der beiden komplexen Zahlen.
Complex.multiply(Complex c1, Complex c2) Liefert eine neue komplexe Zahl als Produkt der beiden komplexen Zahlen.

Einfacher verständlich sind Fraktale, die auf Grund einer linearen Transformation entstehen, wie Sirpinski, Dragon u.a. Solche Fraktale lassen sich leicht unter Verwendung der Turtlegrafik darstellen (siehe www.turtlegrafik.ch).