# Fraktalgenerator

Ein Fraktalgenerator ist eine Software zur grafischen Darstellung von Fraktalen. Je nach Art des Fraktals werden dabei unterschiedliche Algorithmen verwendet. Die am häufigsten verwendeten Methoden sind die iterierten Funktionensysteme, die durch affine Abbildungen beschrieben werden, Lindenmeyer-Systeme oder der Fluchtzeit-Algorithmus für Mandelbrot- und Juliamengen.
Schnelle Fraktalgeneratoren berechnen nicht nur festgelegte Ausschnitte, sondern ermöglichen weiches Zoomen und „Fliegen“ in der grafischen Darstellung, die dabei kontinuierlich neu berechnet wird.

## Geschichtlicher Hintergrund

Als Ende der 1970er Jahre die Bedeutung der fraktalen Geometrie für die Computergrafiktechnik erkannt wurde, stieg das Interesse von Grafikern und Informatikern daran, doch auch mathematische Laien fanden an den ästhetisch reizvollen Fraktalen Gefallen. Größte Bekanntheit erlangte die Mandelbrot-Menge, deren grafische Darstellung auch Apfelmännchen genannt wird. Die Entwicklung der Heimcomputertechnik unterstützte die Verbreitung entsprechender Software.

## Bekannte Fraktalgeneratoren
### Auf dem PC

Bekannt sind auf dem PC die Programme Xaos, Fractint und Fractalizer. Das Open-Source-Programm Xaos ist auf Schnelligkeit optimiert, sodass man in Echtzeit hinein- und herauszoomen kann. Fractalizer ist eine deutsche Produktion.
Die meisten Fraktalgeneratoren rendern die Ausgabedaten in 2D auf einer X und Y Achse. Mit vielen Programmen kann man Animationen erstellen, in denen man in die jeweilige Fraktal-Funktion herein- oder herauszoomen und sich auf der X und Y Achse bewegen kann.
Eine weitere Darstellungsmethode ist das Rendern einer Mandelbox oder ähnlichen Fraktalen Algorithmen auf drei Achsen in 3D. Dabei wird ein bestimmter Fraktal-Algorithmus auch räumlich dargestellt. Die wohl bekanntesten Programme zu diesem Zweck nennen sich Mandelbulb 3D oder MB3D und Mandelbulber. Mit dieser Software ist es möglich, Einzelbilder und Animationen dieser räumlichen Fraktale zu erstellen, zu speichern und für die elektronische Weiterverarbeitung vorzubereiten. Es gibt in diesen Programmen die Möglichkeit den Kamera Standpunkt durch Tasten und Mausnavigation im Fraktal selbst fest zu legen und verschiedene Sets (also gerenderte Figuren) ineinander zu morphen. Kamerafahrten werden dabei durch das setzten von Keyframes ermöglicht. Auch können Tiefeninformationen des Z-Buffers für Verdeckungsberechnungen extra gespeichert werden um zum Beispiel in anderer 3D-Software bei der Kombination diverser 3D Animations Techniken weiterverarbeitet zu werden.
Eine weitere Möglichkeit zur Visualisierung von komplexen Mengen wie Mandelbrot- und Julia-Mengen besteht in nativ mit JavaScript programmierten Web-App's mit 2D Canvas. Die individuelle Programmierung ermöglicht die Auswahl verschiedener Darstellungsformen mit wählbarer Genauigkeit für beliebige positive und negative Exponenten m der iterativen komplexen Folge: $f(z_{n+1})=z_{n}^{m}+c$

#### Darstellungsformen

* positiv: Die x/y-Punkte der begrenzten komplexen Folgen $f(z)$ werden entsprechend der benötigten Anzahl von Iterationszyklen (Counter) bis zur Konvergenz unterschiedlich farblich dargestellt. Z.B.: differenziert nach geraden bzw. ungeraden Counter der die Farbe und/oder Farbbrillanz beeinflußt.
* counter: Die x/y-Punkte werden in Abhängigkeit vom Counter unterschiedlich farblich dargestellt. Z.B.: <100 weiß,<1000 grau, <10000 grün und ab 10001 rot als Markierung von alternierenden Iterationen. Die wertmäßig unbegrenzten Iterationen bilden einen blauen Bildhintergrund.
* negativ: Nur die x/y-Punkte, die wertmäßig unbegrenzte Iterationen für $f(z)$ auslösen, werden farblich markiert und ergeben einen attraktiven Bildhintergrund dessen Transparenz durch die Genauigkeit (Anzahl Pixel pro Bildpunkt) gesteuert werden kann. Julia-Menge in positiver Darstellung generiert aus Mandelbrot-Menge zur zweiten Potenz in negativer Darstellung

#### Spezielle Funktionalitäten

Die Generierung von Julia-Mengen abgeleitet aus der c-Menge (alle c-Punkte begrenzter komplexer Folgen: $f(z_{n+1})=z_{n}^{m}+c$) nach Mandelbrot ist leicht zu programmieren durch die Belegung entsprechender Events wie Doppelklick etc.
Ebenso einfach ist die grafische Darstellung einzelner Iterationszyklen von $f(z)$ für x/y-Punkte auszuführen. Dafür eignet sich eine spezielle Darstellungsform single.

### Andere Architekturen

Fraktalgeneratoren existieren für sehr viele programmierbare Taschenrechner, auf denen sie gerne zum Benchmarking des Systems oder bestimmter Teile davon benutzt werden. Die Hersteller von Taschenrechnern bieten in der Regel verschiedene Scriptsprachen wie Lua, Python, oder auch System spezifischen Assembler, proprietäre Sprachen wie TI-Basic oder HP-PPL oder C sowohl nativ als auch durch Modifikationen zum programmieren durch den Benutzer an. Diese Programmiermethodiken können erheblich in ihrer Ausführungsgeschwindigkeit variieren. Es gab sie bereits für ältere Taschenrechner mit Monochromdisplay (zum Beispiel für den Texas Instruments Voyage 200) und vergleichbar geringer Hardware Ausstattung Fraktalgeneratoren.
Auf aktuellen grafischen, programmierbaren Taschenrechnern wie aus der TI-Nspire Serie, den HP Prime Taschenrechner Versionen und auf den Rechnern des französischen Herstellers NumWorks wurden Fraktalgeneratoren programmiert.