FCM
Fractal Clip Maker
V.2.12
Ein kleines Programm zur Erzeugung animierter Mandelbrot- und Julia-Mengen
Title
Copyright (c) 2006-2010 by Friedemann Seebass, Deutschland
27. Februar 2010



Inhalt
go to the English version




A. Schnelleinstieg

1. FCM - wozu?

FCM ist ein Programm zur Erzeugung fraktaler Grafiken. Es kann
Gut, es gibt Programme, die mehr können (s. Abschnitt D.4), aber FCM ist sehr einfach zu bedienen, auch wenn man nicht weiß, was fraktale Bilder sind. Wenn Sie mehr darüber wissen möchten, lesen Sie die kurze Einführung in Kapitel C.

Meine Motivation, "noch einen" Fraktalgenerator zu entwickeln, war, Java-Swing zu lernen. Das Thema eignet sich dafür besonders gut, weil die Applikation zu 10 % aus Algorithmik und zu 90 % aus Benutzeroberfläche besteht.

2. Systemvoraussetzungen

Java: FCM ist in Java geschrieben. Zuerst braucht man daher die Java-Laufzeitumgebung (im folgenden JRE, Java-Runtime-Environment, genannt), und zwar in der Version 1.6.0 oder neuer. Die älteste Laufzeitumgebung, mit der ich FCM erfolgreich testen konnte, ist 1.6.0_04-b12. Laden Sie sich die neueste Version von www.java.com herunter (ungefähr 16 MB).

Hardware: Die schwächste Maschine, mit der ich FCM ausprobiert habe, ist ein Pentium 200 MMX mit 64 MB RAM. Aber erwarten Sie nicht, daß Clips auf so einem alten Rechner flüssig ablaufen. Mein Pentium M 1500 spielt Clips (400 x 300 Pixel) mit einer Rate von ungefähr 15 Bildern pro Sekunde ab, ein alter AMD Duron 700 schafft das nur, wenn man die Bildgröße auf 200 x 200 Pixel reduziert.

Betriebssystem:  Dank Java ist das Betriebssystem egal. Ich habe FCM auf Windows ME, 2000, XP, Vista, 7, SuSE Linux 10.3 und Ubuntu 6.1 erfolgreich getestet.

3. Installation

Die Installation benötigt zwei Schritte, die in den folgenden Abschnitten beschrieben werden:
Falls Sie Videos im Avi- oder Mpeg-Format erzeugen wollen, benötigen Sie eine zusätzliche Software wie MEncoder. Siehe hierzu Abschnitt B.11.

a) Installation der Java-Laufzeitumgebung

Prüfen Sie zuerst, ob die Java-Laufzeitumgebung (= Java-Runtime-Environment, JRE) bereits installiert ist: Öffnen Sie eine Konsole (unter Windows die "Eingabeaufforderung" im Zubehör-Menü) und geben Sie ein:

    java -version

Wenn die Ausgabe so ähnlich aussieht wie

    java version "1.6.0_04"
    Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
    Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)


ist alles gut, fahren Sie mit Abschnitt 3.b) fort.

Andernfalls laden Sie das neueste JRE für Ihr Betriebssystem (z. B. die Datei jre-6u7-windows-i586-p-s.exe) von www.java.com herunter, führen Sie die Datei aus und befolgen Sie die Installationshinweise, die auf dem Bildschirm angezeigt werden.

Achtung, Linux-Benutzer: Achten Sie darauf, daß der Pfad zum Java-Interpreter in Ihrer PATH-Umgebungsvariable eingetragen ist. Der Java-Installer scheint das nicht zu machen. Auf meinem SuSE-System habe ich eine Zeile

PATH=/opt/jre1.5.0_06/bin:$PATH

(oder wo auch immer Sie ihr JRE hininstalliert haben) in die Datei /opt/kde3/bin/startkde eingetragen.

b) Installation von FCM

Die Installationsdatei "fcm.zip" enthält den Ordner "fcm". Entpacken Sie ihn an einer beliebigen Stelle, das ist alles.

c) Dateiliste

Die ausgepackte Datei fcm.zip enthält die folgenden Dateien:

Ordner/Datei
Beschreibung
fcm Programmordner.
 +-doc Ordner mit der Programmdokumentation.
 |  +-pics Ordner mit allen Bildern.
 |  |  `-*.png
Einige Bilder mit Bildschirmfotos von Dialogboxen usw.
 |  |-manual_en.html Das Benutzerhandbuch in Englisch.
 |  `-manual_de.html Dieses Benutzerhandbuch.
 +-examples
Ordner mit einigen Beispieldateien.
 |  +-julia.frc
Fraktales Bild mit einer Julia-Menge.
 |  +-mandel1.clp Clip mit Zoom in die Mandelbrot-Menge.
 |  `-*.* Weitere Beispieldateien.
 +-lib Ordner mit der Java-Bibliothek.
 |  `-swing-layout-1.0.4.jar Java-Swing-Bibliothek.
 +-FCM.jar Das FCM-Programm.
 +-startFCM.bat Windows-Batch-Datei zum Starten von FCM, die einige Startkommandovariationen zur Auswahl enthält. Klappt auch unter Linux (Fehler können ignoriert werden).
 +-mandel.ico Kleines Icon für Desktop-Verknüpfung unter Windows.
 +-mandel.png Dasselbe Icon für Programmfenster.
 `-readme.txt Datei mit ersten Hinweisen.

Tabelle A1: FCM-Programmdateien

4. Programmstart

a) Start aus dem "fcm"-Ordner heraus

Windows-Benutzer:

Starten Sie das Programm durch Doppelklick auf die Datei FCM.jar.

Falls das nicht funktioniert (manchmal "klauen" sich andere Programme die Jar-Dateierweiterung und wollen die im Jar-File enthaltenen Dateien auspacken), klicken Sie FCM.jar mit der rechten Maustaste an, klicken Sie auf "Öffnen mit", und wählen Sie das Programm "Java(TM) 2 Platform Standard Edition binary" aus (um Jar-Dateien immer damit zu öffnen, können Sie die Checkbox "Dateityp immer mit dem ausgewählten Programm öffnen" aktivieren). Oder öffnen Sie die Eingabeaufforderung, navigieren Sie in den "fcm"-Ordner und geben Sie das folgende Kommando ein:

java -jar FCM.jar

Linux-Benutzer:

Öffnen Sie eine Konsole, navigieren Sie in den "fcm"-Ordner und geben Sie das folgende Kommando ein:

java -jar FCM.jar

Hinweis:
Wenn Sie einen Dialog mit einem Text wie "Could not find the main class. Program will exit!" oder die Nachricht

Exception in thread "main" java.lang.UnsupportedClassVersionError: fcm/FcmMDIApplication (Unsupported major.minor version 49.0)

in der Konsole sehen, dann ist ein veralteter Java-Interpreter installiert. Installieren Sie die Version 1.6.0 oder neuer wie oben beschrieben.

b) Starten vom Desktop aus

Windows-Benutzer:

Linux-Benutzer (gilt nur für KDE, bei anderen Desktops habe ich es nicht ausprobiert):

c) Speicher für die Java VM

Mit den oben gezeigten Kommandos wird die Java VM maximal nur 64 MB Speicher allokieren können. Das reicht für ca. 120 Bilder im Format 400 x 300 Pixel. Wenn man der VM z. B. 512 MB Speicher zugestehen will, muß man FCM mit folgendem Kommando starten:

    java -jar -Xmx512m FCM.jar

Weitere Beispiele finden Sie in der Datei "startFCM.bat". Siehe auch Abschnitt B.7.c).

5. Ihr erstes fraktales Bild

Neues Bild erzeugen
Abb. A1: Neues Bild erzeugen

Beim Start von FCM erscheint eine übliche Multi-Dokument-Anwendung mit einer Menüzeile, einer Werkzeugleiste usw. Für einen ersten Eindruck öffnen Sie das Datei-Menü und klicken Sie auf "Neues Mandelbrot-Bild". Ein leeres Fenster erscheint, und die "Zeichnen"-Schaltfläche blinkt.


Zeichnen eines Bildes
Abb. A2: Zeichnen eines Bildes

Klicken Sie auf den "Zeichnen"-Knopf, und eine Mandelbrot-Menge wird gezeichnet. Das Bild erscheint außerdem verkleinert in der Bilderliste auf der rechten Seite:
Bild-Button
Abb. A3: Bild in der Bilderliste

6. Zoomen in die Mandelbrot-Menge

Drücken Sie den "Zoomen"-Knopf in der Werkzeugleiste. Ein Zoom-Rechteck erscheint, das man mit der Maus oder den Cursor-Tasten verschieben kann. Seine Größe ist mit dem Mausrad oder der "+"- und "-"-Taste veränderbar. Stellen Sie die Größe so ein, daß das Rechteck etwas kleiner ist als das Grafik-Fenster, plazieren Sie es ungefähr in der Mitte des Fensters und drücken Sie die linke Maustaste oder die Return-Taste.

Zoomen   
Abb. A4: Zoom in die Mandelbrot-Menge

Die Mandelbrot-Menge wird neu berechnet. Wiederholen Sie diesen Vorgang mehrmals; jedes neue Bild erscheint in der Bilderliste. Achten Sie darauf, daß der "Neu"-Knopf aktiviert bleibt (andernfalls würde das aktuelle Bild durch das neue ersetzt werden, statt ein neues erzeugt). Den Zoom-Modus kann man verlassen, indem man den "Zoomen"-Knopf erneut betätigt oder die rechte Maustaste drückt.

7. Abspielen des Clips

Abspielen eines Clips
Abb. A5:
Abspielen eines Clips

Sobald ein paar Bilder in der Liste sind, drücken Sie den "Start"-Knopf in der Bilderleiste. Alle Bilder, die Sie bisher gezeichnet haben, werden im aktuellen Fenster abgespielt.

Aktivieren sie die "endlos"-Checkbox und spielen Sie den Clip erneut ab. Jetzt wird er endlos vor und zurück abgespielt.

Aktivieren Sie zusätzlich die "zyklisch"-Checkbox, und der Clip wird zyklisch abgespielt, nach dem letzten Bild folgt also wieder das erste oder umgekehrt. Die Wiedergabe kann man jederzeit unterbrechen, indem man auf den "Stopp"-Knopf drückt.

Geben Sie "1000" in das "Wartezeit"-Feld ein und spielen Sie den Clip erneut ab. Jetzt wird zwischen jedem Bild eine Pause von einer Sekunde eingelegt.


8. Zeichnen von Julia-Mengen durch Picken von c-Werten

Wählen Sie den Menüpunkt "Datei/Neues Julia-Bild" und drücken Sie erneut den "Zeichnen"-Knopf (vgl. Abb. A1). Plazieren Sie die beiden Fenster nebeneinander und aktivieren Sie das Mandelbrot-Fenster, indem Sie seine Titelzeile anklicken. Drücken Sie auf den "Picken"-Knopf in der Werkzeugleiste, bewegen Sie die Maus ins Mandelbrot-Fenster und drücken Sie irgendwo die linke Maustaste. Dadurch wählt man den komplexen Wert unter dem Mauszeiger aus, und eine neue Julia-Menge auf Basis dieses Wertes wird berechnet. Wiederholen Sie das mehrmals.
Julia-Mengen
Abb. A6: Zeichnen von Julia-Mengen durch Picken von c-Werten

Man sieht, daß die Gestalt einer Julia-Menge vom gewählten c-Wert abhängt. Siehe Kapitel C für Details.

9. Entfernen aller Bilder und laden eines Clips

Löschen aller Bilder
Abb. A7: Löschen der Bilderliste
Drücken Sie auf den "x-x"-Knopf in der Bilderleiste. Dadurch werden alle Bilder aus der Bilderliste und dem Speicher gelöscht.

Wählen Sie den Menüpunkt "Datei/Öffne Clip ..." aus. Ein Datei-Auswahldialog erscheint. Navigieren Sie zu dem Ordner mit den Beispielen (".../fcm/examples") und laden Sie den Clip "mandel1.clp". Das Laden wird etwas dauern, da jedes Bild neu berechnet werden muß. Drücken Sie dann den "Start"-Knopf, um den Clip abzuspielen, und den "Stopp"-Knopf, um die Wiedergabe abzubrechen.


Öffnen eines Clips
Abb. A8: Laden eines Clips

B. FCM im Detail

1. Das Hauptfenster

Abb. B1 zeigt FCMs Hauptfenster:

Hauptfenster

Abb. B1: Hauptfenster

Man sieht eine übliche MDI-Applikation (Multi-Document-Interface, Mehrfensteranwendung) mit einem Desktop und mehreren Fenstern darin, einer Menüzeile, einer Werkzeugleiste, einer Statusleiste und auf der rechten Seite eine Liste mit Bilder-Schaltflächen und einigen Kontrollknöpfen. Diese Elemente und alle Dialogboxen werden in den folgenden Abschnitten beschrieben.

2. Die Menüzeile

Die Menüzeile enthält alle in FCM verfügbaren Menüs.

Menüzeile
                Abb. B2: Die Menüzeile

a) Das Datei-Menü

Das Datei-Menü enthält alle Menüpunkte, die Dateien, Drucken und Einstellungen betreffen, und erlaubt das Beenden des Programms, wobei die Einstellungen gespeichert werden (im Unterschied zum Schließknopf oben rechts in der Ecke des Hauptfensters).

Datei-Menü
Menüpunkt
Beschreibung
Datei-Menü
Neues Mandelbrot-Bild
Öffnet ein neues, leeres Fenster zum Erzeugen einer Mandelbrot-Menge.
Neues Julia-Bild
Öffnet ein neues, leeres Fenster zum Erzeugen einer Julia-Menge.
Öffne Bild ...
Öffnet einen Dateidialog zur Auswahl eines fraktalen Bildes auf einem Massenspeicher.
In der Datei ist u. a. die Pixelgröße des Bildes abgelegt, die beim Laden wiederhergestellt wird, wenn noch kein Fenster offen ist. Falls ein leeres Fenster offen ist, kann man die Bildgröße aber auch an die Fenstergröße anpassen lassen. (Dies funktioniert jedoch nur, wenn das Bild nicht mit aktiviertem Menüpunkt "Speichern mit Farben-Array" gespeichert wurde.)
Speichere Bild Speichert das Bild im aktuellen Fenster auf einen Massenspeicher. Der Menüpunkt ist nur aktivierbar, wenn das Bild bereits gespeichert wurde und daher einen Namen hat.
Speichere Bild als ...
Speichert das Bild im aktuellen Fenster auf einen Massenspeicher. Ein Dateidialog wird zur Eingabe eines Namens geöffnet.
Exportiere Bild als ...
Speichert das aktuelle Bild im PNG- (Portable Network Graphics), BMP- (Windows OS/2 Bitmap) oder JPG- (Joint Photographic Experts Group) Format. Ein Dateidialog wird zur Eingabe eines Namens geöffnet. Das Format hängt von der gewählten Dateinamenserweiterung (".png", ".bmp" oder ".jpg") ab.
Exportiere ausgewählte Bilder als ...
Macht dasselbe wie Menüpunkt "Exportiere Bild als ...", aber alle selektierten Bilder in der Liste werden gespeichert. Die Dateinamen werden automatisch mit einer Nummer zwischen "0000" und "9999" verlängert. Wenn ihr Dateiname z. B. "test0234.png" lautet, starten die Nummern mit "0234".
Exportiere alle Bilder als ... Macht dasselbe wie Menüpunkt "Exportiere ausgewählte Bilder als ...", aber alle Bilder in der Liste werden gespeichert.
Kodiere exportierte Bilder als Video ...
Öffnet einen Dialog, um exportierte Bilder in eine MPEG- oder AVI-Datei zu verwandeln. Siehe Abschnitt B.11 für Einzelheiten.
Öffne Clip ...
Öffnet einen Dateidialog zur Auswahl eines Clips auf einem Massenspeicher. Die Bilder werden in die Bilderliste oberhalb des aktuellen Bildes eingefügt.
Für die Pixelgröße des Clips gilt dasselbe wie beim Öffnen eines Bildes: Man kann die Größe an ein bereits offenes Fenster anpassen lassen.
Öffne Clip, aber exportiere jedes Bild als ...
Öffnet einen ersten Dateidialog zur Auswahl eines Clips und dann einen zweiten zur Eingabe des ersten Dateinamens zum Exportieren der Bilder.
Nach der Berechnung jedes Bildes wird es sofort exportiert und aus der Bilderliste gleich wieder entfernt, um den Speicher freizubekommen. Der Menüpunkt ist also eine Kombination aus "Öffne Clip ..." und "Exportiere alle Bilder als ...", aber ohne die Bilder in der Bilderliste zu halten.
Zur Erläuterung siehe Abschnitt B.11.e).
Speichere ausgewählte Bilder als Clip ... Speichert alle selektierten Bilder der Bilderliste auf einen Massenspeicher. Ein Dateidialog wird zur Eingabe eines Namens geöffnet.
Speichere alle Bilder als Clip ...
Macht dasselbe wie Menüpunkt "Speichere ausgewählte Bilder als Clip ...", aber alle Bilder in der Liste werden gespeichert.
Mit Farben-Array speichern
Dies ist ein "Toggle"-Menüpunkt (Zustände ein und aus), der die Art beeinflußt, wie ein Bild gespeichert wird: Wenn er aktiviert ist, wird ein Bild mit seinem Farben-Array gespeichert, wenn nicht, werden nur seine Parameter (Ränder, Farbeinstellungen usw.) gesichert (s. auch Abschnitt B.12). Im zweiten Fall sind die Dateien viel kleiner, aber die Farben müssen neu berechnet werden, wenn man das Bild wieder lädt. Wenn Ihr Computer langsam oder ein Bild sehr groß ist, können Sie den Menüpunkt aktivieren.
Der Menüpunkt kontrolliert ebenfalls die Art der Speicherung bei Clips. Beachten Sie, daß Clip-Dateien wirklich sehr groß werden, wenn er aktiviert ist!
Seite einrichten ...
Öffnet den Konfigurationsdialog Ihres Druckers.
Drucken ... Öffnet den Drucken-Dialog Ihres Druckers.
Einstellungen ...
Öffnet den "Einstellungen"-Dialog. Er ist in Abschnitt B.7 beschrieben.
Starte FCM neu
Startet FCM neu. Dies ist nötig, wenn Sie eine neue Sprach- oder Speichereinstellung gewählt haben.
Beenden
Beendet das Programm und speichert neben den "Einstellungen" u. a. auch Größe und Position des Hauptfensters. Die Daten werden  nicht gespeichert, wenn man FCM mit dem Schließknopf rechts oben im Fenster verläßt.

Tabelle B1: Datei-Menü

b) Das Editieren-Menü

Das Editieren-Menü dient zur Manipulation der Bilderliste.
Einzelne oder mehrere Bilder aus der Liste kann man zusammen mit der Strg- bzw. Umschalt-Taste auswählen wie Dateien im Windows-Explorer, siehe den Abschnitt über die Bilderliste.
Achtung: FCM kann derzeit noch nicht mit der System-Zwischenablage umgehen, es ist also nicht möglich, mit Copy und Paste Bilder in andere Programme zu übertragen.

Editieren-Menü
Menüpunkt
Beschreibung
Editieren-Menü
Auswahl ausschneiden
Entfernt die selektierten Bilder aus der Liste und kopiert sie in den Puffer.
Kopiere Auswahl
Kopiert die selektierten Bilder in den Puffer.
Füge kopierte Bilder ein
Fügt die Bilder aus dem Puffer oberhalb vom letzten selektierten Bild ein.
Füge kopierte Bilder umgekehrt ein
Fügt die Bilder aus dem Puffer oberhalb vom letzten selektierten Bild ein, kehrt allerdings die Reihenfolge der Bilder um.
Lösche Auswahl
Entfernt die selektierten Bilder aus der Liste.
Lösche alles ...
Entfernt alle Bilder aus der Bilderliste und das Start- und Endbild für Animationen. (Letzteres tut die Schaltfläche "x-x" nicht.)
Entferne Schlüsselbildeigenschaft
Nach dem Erzeugen einer Animation sind die Bilder, zwischen denen Bilder berechnet wurden, sog. Schlüsselbilder; sie sind in der Bilderliste durch eine rote Markierung gekennzeichnet. Dieser Menüpunkt entfernt die Schlüsselbildeigenschaft wieder.
Wähle alle aus
Selektiert alle Bilder aus der Liste.
Wähle kopierte Bilder aus
Selektiert die Bilder, die sich im Puffer befinden. Nützlich, um eine Auswahl wiederherzustellen.
Wähle alle Schlüsselbilder aus
Selektiert alle sog. Schlüsselbilder, die beim Erzeugen einer Animation entstehen.
Kehre Auswahl um
Selektiert alle gerade nicht selektierten Bilder und  deselektiert alle gerade selektierten Bilder.
Gehe zu nächstem Bild
Selektiert und aktiviert das nächste Bild in der Liste. Alle anderen Bilder werden gleichzeitig deselektiert.
Gehe zu vorherigem Bild
Selektiert und aktiviert das vorherige Bild in der Liste. Alle anderen Bilder werden gleichzeitig deselektiert.
Gehe zu nächstem ausgewählten Bild
Aktiviert das nächste selektierte Bild in der Liste. Die Selektion bleibt dabei erhalten.
Gehe zu vorherigem ausgewählten Bild Aktiviert das vorherige selektierte Bild in der Liste. Die Selektion bleibt dabei erhalten.
Gehe zu nächstem Schlüsselbild
Aktiviert das nächste Schlüsselbild in der Liste. Die Selektion bleibt dabei erhalten.
Gehe zu vorherigem Schlüsselbild Aktiviert das vorherige Schlüsselbild in der Liste. Die Selektion bleibt dabei erhalten.
Gehe zu Bild ...
Es erscheint eine Dialogbox zur Eingabe einer Bildnummer. Beim Verlassen wird dieses Bild aktiviert und (zusätzlich) selektiert. Eine vorhandene Selektion bleibt dabei erhalten.

Tabelle B2: Das Editieren-Menü

c) Das Animationen-Menü

Das Animationen-Menü enthält alle Menüpunkte zur automatischen Erzeugung von Animationen. Die Vorgehensweise ist so, daß man einige Bilder (mindestens zwei) selektiert und mit Menüpunkt "Parameter ..." festlegt, aus wievielen Bildern der Übergang zwischen jedem Bilderpaar bestehen soll. Dadurch werden die selektierten Bilder zu "Schlüsselbildern" und in der Bilderliste mit einer roten Markierung versehen. Anschließend werden die Übergangsbilder mit "Berechne Animation" erzeugt.
Weitere Details sind in Abschnitt B.10. beschrieben.

Animationen-Menü
Menüpunkt Beschreibung
Animationen-Menü
Parameter ... Öffnet den Animationsparameterdialog. Er ist in Abschnitt B.10. beschrieben.
Bildrate anpassen ...
Falls man eine Animation in eine AVI-Datei verwandeln möchte (siehe Abschnitt B.11.), muß man angeben, wieviele Bilder pro Sekunde das Video haben soll. Wenn man die Bildrate ändern möchte, ändert sich natürlich auch die Anzahl der Bilder zwischen zwei Schlüsselbildern (sofern der zeitliche Abstand gleich bleiben soll). Hier kann man die Bildrate aller selektierten Schlüsselbilder auf den Wert ändern, der im Video-Erzeugungsdialog eingestellt wurde.
Präziser formuliert, wird die Anzahl der Bilder zwischen den selektierten Schlüsselbildern so neu berechnet, daß der zeitliche Abstand zwischen ihnen konstant bleibt, aber die neue Bildrate beim Erzeugen einer AVI-Datei verwendet werden kann.
Berechne Animation
Berechnet zwischen allen selektierten Bildern einen sanften Übergang. Genaueres in Abschnitt B.10.

Tabelle B3: Animationen-Menü

d) Das Hilfe-Menü

Das Hilfe-Menü erlaubt die Anzeige des Handbuchs und zeigt Versions-Informationen.

Hilfe-Menü
Menüpunkt Beschreibung
Hilfe-Menü
Inhalt
Öffnet das Handbuch in Ihrem Web-Browser. Unter Windows wird die Registry ausgelesen, um Ihren Browser zu finden, unter Linux wird Firefox benutzt. Dies kann im Einstellungen-Dialog geändert werden, s. Abschnitt B.7.
Über FCM
Öffnet einen Dialog mit Versions-Informationen, der Lizenz und einigen System-Eigenschaften.

Tabelle B4: Hilfe-Menü

3. Die Werkzeugleiste

Werkzeugleiste
Abb. B3: Die Werkzeugleiste

Die wichtigsten Funktionen von FCM lassen sich mit den Knöpfen der Werkzeugleiste ausführen.

Schaltfläche
Beschreibung
Zeichnen
Zeichnet ein fraktales Bild mit den aktuellen Einstellungen in das aktuelle Fenster.
Zoomen
Öffnet ein Zoom-Rechteck, das einen Ausschnitt im aktuellen Fenster markiert. Es gibt folgende Kommandos:
  • Mausbewegung oder Cursor-Tasten: Verschiebt den Ausschnitt.
  • Mausrad oder "+"- und "-"-Taste: Verändert die Größe.
  • Linke Maustaste oder Return: Auswählen und Zeichnen des Ausschnitts.
  • Mittlere Maustaste oder Taste "0": Setzt die Größe des Ausschnitts auf  dieselbe Größe wie das Fenster. Das kann man dazu verwenden, die sichtbare Ebene zu verschieben.
  • Rechte Maustaste oder ESC: Verläßt den Zoom-Modus.
Picken
Dieser Menüpunkt ist nur aktivierbar, wenn mindestens ein Julia-Fenster mit einem Bild darin offen ist. Ein Klick mit der linken Maustaste in ein Bild pickt den komplexen Wert unter dem Mauszeiger und zeichnet ein neues Julia-Bild, wobei der Wert als "c"-Parameter verwendet wird. Wenn das aktive Fenster ein Mandelbrot-Bild enthält, wird die Julia-Menge in das zuletzt aktive Julia-Fenster gezeichnet. Die Kommandos sind im wesentlichen dieselben wie beim Zoomen:
  • Mausbewegung oder Cursor-Tasten: Verschieben des Cursors.
  • Linke Maustaste oder Return: Auswählen des Wertes und Neuzeichnen der Grafik.
  • Rechte Maustaste oder ESC: Verlassen des Picken-Modus.
Daten
Öffnet den Bild-Geometrie-Dialog. Er ist in Abschnitt B.8 beschrieben.
Farben
Öffnet den Farben-Dialog. Er ist in Abschnitt B.9 beschrieben.

Tabelle B5: Werkzeugleiste


Der Zeichnen-Knopf blinkt, wenn die eingestellten Grenzen (Dialog Bild-Geometrie) nicht mit den dargestellten übereinstimmen.

4. Die Bilderliste

Bilderliste
Abb. B4:
Die Bilderliste
Die Bilderliste enthält alle Bilder, die sich im Speicher befinden. Man kann sie sich wie einen Stapel vorstellen: Das älteste Bild ist unten, neue Bilder werden oben daraufgelegt. Der Bildanzeiger am unteren Ende zeigt, wie viele Bilder vorhanden sind und welches davon gerade aktiv ist (im Beispiel links sind 18 Bilder im Speicher und das 16. ist aktiviert).

Einzelne oder mehrere Bilder aus der Liste kann man auswählen wie Dateien im Windows-Explorer (s. auch den Abschnitt über das Editieren-Menü):
  • Ein einzelnes Bild wird durch Anklicken mit der Maus ausgewählt.
  • Ein weiteres Bild wird durch Anklicken mit der Maus ausgewählt, wobei die Strg-Taste gedrückt gehalten werden muß.
  • Mehrere Bilder werden durch Anklicken mit der Maus ausgewählt, wobei die Umschalt-Taste gedrückt gehalten werden muß.
Solange die "Neu"-Schaltfläche gedrückt ist, wird beim Zeichnen ein neues Bild erzeugt. Wenn das nicht der Fall ist, wird das aktuelle Bild stattdessen beim Zeichnen durch das neue ersetzt.
Beim Erzeugen von Animationen entstehen sog. Schlüsselbilder. Diese werden durch ein rotes Dreieck in der linken oberen Ecke des Bildes gekennzeichnet.

5. Bild-Kontrollelemente

Mit den Bild-Kontrollelementen kann man durch die Bilderliste rollen, die Bilder auf und ab bewegen und löschen. Außerdem kann man die Bilder als Animation abspielen.

Elemente
Kontrollelement
Beschreibung
Bild-Kontrollelemente
>
Das nächste Bild wird gezeigt. (Die Shortcut-Taste ist "D".)
<
Das vorherige Bild wird gezeigt. (Die Shortcut-Taste ist "C".)
Auf
Die aktuelle Auswahl wird eine Position nach oben bewegt.
Ab
Die aktuelle Auswahl wird eine Position nach unten bewegt.
x
Die aktuelle Auswahl wird gelöscht.
x-x
Alle Bilder werden gelöscht.
Start
Die aktuelle Auswahl wird als Animation abgespielt. Falls nur ein Bild ausgewählt ist, werden alle Bilder abgespielt, beginnend mit dem aktuellen Bild.
Achtung: Da die Farben neu berechnet werden, wenn das Bild angezeigt wird, und dieser Vorgang einige Zeit benötigt, sollten die Bilder nicht zu groß sein, um eine akzeptable Bildrate zu erzielen.
Stopp Mit diesem Knopf kann man alle länger dauernden Operationen unterbrechen. Z. B. das Abspielen eines Clips, Laden eines Clips, Zeichnen eines Bildes.
zyklisch
Wenn diese Box angeklickt ist, wird eine Animation zyklisch abgespielt, d. h. das erste Bild wird nach dem letzten wieder gezeigt und umgekehrt. Die Richtung hängt davon ab, in welche Richtung der Clip gerade abgespielt wird, während man die Box anklickt.
endlos
Wenn diese Box aktiviert ist, wird eine Animation endlos vor und zurück abgespielt. Ist zusätzlich die "zyklisch"-Box angeklickt, ist die Wiedergabe stattdessen zyklisch.
Wartezeit/ms
Mit diesem Element kann man eine Zeit vorgeben, die zwischen der Anzeige zweier Bilder verstreichen soll. Für flüssige Animationen setzt man es auf 0; wenn man stattdessen eine Diashow abspielen will, kann man es z. B. auf 2000 setzen, um zwei Sekunden Pause zwischen jedem Bild einzufügen.

Tabelle B6: Bild-Kontrollelemente

6. Die Statusleiste

Die Statusleiste zeigt die wichtigsten Parameter eines Bildes. Die linken vier Einträge enthalten die Grenzen des Bildes, also die komplexen Zahlen für linken, rechten, oberen und unteren Bildrand. Weil die Mandelbrot-Menge die c-Ebene zeigt, sind sie mit "crMin" usw. bezeichnet; eine Julia-Menge zeigt die z-Ebene, daher heißen sie in diesem Fall "zrMin" etc.

Statuszeile (Mandelbrot-Menge)
Abb. B5: Statusleiste (Mandelbrot-Menge)

Statuszeile (Julia-Menge)
Abb. B6: Statusleiste (Julia-Menge)

Weiter sieht man die Koordinaten des Mauszeigers und die Anzahl der Iterationen, die nötig waren, um dieses Pixel zu berechnen. Diese Daten werden in den rechten drei Feldern angezeigt.

Julia-Mengen zeigen außerdem in den Feldern "cr" und "ci" den Wert der Konstanten c, die zur Berechnung der Menge verwendet wurde.

7. Der Dialog "Einstellungen"

Man erreicht den Dialog durch Menüpunkt "Datei/Einstellungen ...".

Einstellungen-Dialog

Abb. B7: Dialog "Einstellungen"

a) Abschnitt "Hilfe-Browser"

In diesem Abschnitt des Dialogs kann man den gewünschten Hilfe-Browser einstellen. Wenn "Verwende Standard-Browser" aktiviert ist und FCM unter Windows läuft, wird die Registry gelesen, um Ihren Standard-Browser zu ermitteln; unter Linux wird Firefox benutzt. Falls das nicht funktioniert oder Sie einen anderen Browser bevorzugen, können Sie ihn mit dem "Suchen ..."-Knopf auswählen.

b) Abschnitt "Sprache"

FCM ist derzeit mit zwei Lokalisierungen ausgestattet, deutsch und englisch. Weil bei einer Änderung der Sprache alle Texte neu gelesen werden müssen, wird die Änderung erst nach einem Neustart mit "Datei/Starte FCM neu" wirksam.
Bei der Einstellung "Vorgabe" wird die Sprache gewählt, die Ihr Desktop als Standardsprache vorgibt. Sie können sie auch beeinflussen, indem Sie FCM von der Kommandozeile aus z. B. mit
    java -jar -Duser.language=de -Duser.country=DE FCM.jar
oder mit
    java -jar -Duser.language=en -Duser.country=GB FCM.jar
starten.

c) Abschnitt "Erscheinungsbild"

Der dritte Abschnitt erlaubt die Veränderung des Erscheinungsbilds von FCM. Das Layout ist optimiert für MS-Windows (ich finde diese Darstellung am elegantesten, leider ist sie unter Linux nicht verfügbar), nicht so gut sieht die CDE/Motif-Einstellung aus.
Die Liste wird dynamisch zur Laufzeit generiert, indem die verfügbaren Java-"Look-and-Feels" gelesen werden.

d) Abschnitt "Sonstiges"

Der letzte Abschnitt erlaubt die Änderung von weiteren Einstellungen:
Die Einstellungen werden in der Datei fcm.ini in Ihrem Home-Verzeichnis gespeichert; allerdings nur, wenn Sie FCM mit "Datei/Beenden" oder "Datei/Starte FCM neu" beenden. Die Datei wird nicht geschrieben, wenn Sie FCM mit dem Fensterschließknopf rechts oben verlassen, alle Änderungen sind dann verloren.

8. Der Dialog "Bild-Geometrie"

Man erreicht den Dialog über die Schaltfläche "Daten" in der Werkzeugleiste.

Bild-Geometrie-Dialog

Abb. B8: Dialog "Bild-Geometrie"

Mit dem Bild-Geometrie-Dialog kann man im wesentlichen die Bildgröße und -ränder einstellen. Er ist in vier Abschnitte und die Schaltflächen-Gruppe unterteilt:

a) Abschnitt "Bildgröße"

b) Abschnitt "Bildränder"

Diese vier Eingabefelder kontrollieren die Projektion des Fensters in die komlexe Ebene. crMin ist der linke, crMax der rechte Rand (reale Achse), ciMin der untere und ciMax der obere Rand (imaginäre Achse).
Da das Seitenverhältnis eines Pixels stets 1:1 ist, ist man nicht ganz frei in der Wahl der Ränder. Mindestens einer von ciMin und ciMax wird automatisch berechnet, abhängig davon, welche "automatisch"-Checkbox aktiviert ist. Wenn beide angeklickt sind, werden die Ränder so berechnet, daß die Mitte der vertikalen Achse an derselben Stelle bleibt wie zuvor.
In der Regel gibt man die Werte hier nicht von Hand ein, sondern verändert den Bildausschnitt mit der Zoom-Funktion oder verschiebt das Bild direkt mit der Maus.

c) Abschnitt "Maximale Anzahl der Iterationen"

Wie man in Abschnitt C.3 nachlesen kann, kommt die Iteration, die für jedes Pixel berechnet wird, möglicherweise nie zu einem Ende. Hier kann man einstellen, wie viele Iterationen höchstens durchlaufen werden sollen, bis der Vorgang abgebrochen wird. Wenn diese Zahl erreicht ist, wird das Pixel schwarz.
Es ist nicht ganz leicht, einen optimalen Wert für diese höchste Iterationsanzahl zu finden: Große Werte führen zu langen Berechnungsdauern, kleine Werte können "unscharfe" Bilder verursachen:

Unsharp
Abb. B15: Unscharfes Bild, 1600 Iterationen
Sharp
Abb. B16: Schärferes Bild, 5600 Iterationen

Eine Daumenregel (wenigstens für Mandelbrot-Mengen) ist: Beim Hineinzoomen in die Ebene sollte die Iterationsanzahl größer werden. Diese Regel wird angewandt, wenn die "automatisch"-Checkbox aktiviert ist. Besonders für Regionen aus der "Spalte" der Mandelbrot-Menge (Abb. B15 und B16 sind aus dieser Gegend) und auch für Julia-Mengen sollten Sie die Automatik evtl. durch eigene Eingaben korrigieren. Julia-Mengen brauchen häufig höhere Werte, um ausgedehnte schwarze Regionen zu vermeiden, die in Wahrheit gar nicht schwarz sind.
Die Automatik kann etwas beeinflußt werden mit dem Feld "Multipliziere mit": Der automatisch berechnete Wert wird mit diesem Wert multipliziert und dann das Ergebnis für die Berechnung der Bilder verwendet.

d) Abschnitt "Konstante c"

Falls das aktuelle Fenster eine Julia-Menge zeigt, kann man hier ihren c-Wert verändern. Komfortabler geht das mit der "Picken"-Funktion in der Werkzeugleiste.

e) Schaltflächen


9. Der Dialog "Farben"

Man erreicht den Dialog über die Schaltfläche "Farben" in der Werkzeugleiste.

Dialog "Farben"

Abb. B17: Dialog "Farben"

Der Farben-Dialog erlaubt die Veränderung der Art und Weise, wie Farben in die fraktale Grafik abgebildet werden. Dazu müssen wir kurz einen genaueren Blick auf die Daten werfen, die FCM bei der Berechnung eines Bildes generiert. Wie in Abschnitt C.3 beschrieben, wird die komplexe Ebene Pixel für Pixel abgetastet, und für jedes Pixel wird die Iteration durchgeführt. FCM speichert die Anzahl der Iterationen für jedes Pixel, die benötigt wird, bis der Betrag der komplexen Zahl größer ist als 2.45 (=Wurzel aus 6), in einem zweidimensionalen Feld ab, das genauso groß ist wie das Bild. Jeder Zahlenwert in diesem Feld wird auf eine Farbe abgebildet, und das korrespondierende Pixel erhält diese Farbe. Die Abbildung von Zahlenwert auf Farbe kann hier manipuliert werden.

Man sieht, daß es eine Abhängigkeit gibt zu der maximalen Iterationsanzahl, die im vorherigen Abschnitt beschrieben wurde. Angenommen, wir haben ein Maximum von 200 Iterationen, dann haben wir offensichtlich auch nur höchstens 200 verschiedene Farben! (Möglicherweise sogar weniger, wenn wir zufällig eine Region betrachten, in der die Iteration für jedes Pixel schon früher terminiert.)

a) Abschnitt "Farbanzahl"

Angenommen, wir betrachten eine Region der komplexen Ebene, in der alle o. g. 200 Iterationswerte vorhanden sind, und das Bild zeigt daher auch 200 verschiedene Farbwerte. Trotzdem könnten wir uns wünschen, nicht alle 200 möglichen Farben zu verwenden, sondern z. B. nur zwei Farben. Dies kann man mit dem Schieberegler "Anzahl der Farben" einstellen, sofern der Radio-Knopf "Manuelle Einstellung" aktiviert ist. Beachten Sie, daß der maximal einstellbare Wert von der Einstellung "max. Iterationsanzahl" im Dialog "Bild-Geometrie" abhängt. In Abb. B17 steht der Wert 40. Das bedeutet, daß ein Pixel mit der Iterationsanzahl 41 dieselbe Farbe hat, wie ein Pixel mit der Iterationsanzahl 1, eines mit 42 dieselbe wie eines mit 2 usw.

Wenn man mit FCM ein wenig herumspielt und in die Mandelbrot-Menge hineinzoomt, stellt man fest, daß die Bilder besser werden, wenn man nicht jedes Bild mit derselben festen Anzahl von Farben berechnet. Daher versucht FCM, individuell für jedes Bild selbst eine gute Wahl zu treffen, wenn einer der Auto-Modi eingeschaltet ist.

Der erste ["automatisch (zähle Iterationswerte)"] zählt die Anzahl der verschiedenen Iterationswerte im Bild.
Beispiel: Angenommen, es gibt im Bild einige Pixel mit 10 Iterationen, andere mit 20 Iterationen, und alle anderen haben 200 Iterationen. Dann ist die Anzahl verschiedener Iterationswerte 3, mehr Farben sind nicht nötig (und möglich), und FCM stellt die Farbanzahl auf diesen Wert ein. Zoom-Animationen mit dieser Einstellung tendieren dazu zu flackern.

Der zweite ["automatisch (verwende 'max. Iterationen' zur Berechnung)"] nimmt Ihre Einstellung für die maximalen Iterationen im Bild-Geometrie-Dialog (s. Abb. B8) als maximale Farbanzahl. Dieser Eintrag paßt sich automatisch der Zoomgröße an - und damit auch die Farbanzahl - wenn das im Geometrie-Dialog so eingestellt ist.

Drittens wird die automatisch gewonnene Farbanzahl zusätzlich modifiziert durch den Wert, der im Feld "Reduziere die Farbanzahl durch Divisor" angegeben ist. Auf diese Weise kann man die Automatiken in Grenzen noch beeinflussen.

b) Abschnitt "Farbverlauf-Editor"

Der Farbverlauf-Editor ist das mächtigste Werkzeug, um die Bilder den eigenen Wünschen anzupassen. Oben haben wir gesehen, daß es eine Abbildung von Iterationen auf Farben gibt. Aber welcher Iterationswert korrespondiert mit welcher konkreten Farbe? Das wird mit dem Farbverlauf und den beiden Schiebereglern '"Kleinste" Farbe' und '"Größte" Farbe' gesteuert.

Zunächst sollte man sich einen Farbverlauf erzeugen, der die gewünschten Farben enthält. Ein Farbverlauf kann durch Hinzufügen, Löschen und Verändern der runden Farb-Schieberegler frei gestaltet werden. In Abb. B17 besteht der Farbverlauf beispielsweise aus fünf Farben (grün, rot, gelb, blau und weiß), die gleichen Abstand haben.

Die Funktionen des Editors sind im einzelnen:
Der Farbverlauf eines Bildes wird grundsätzlich zusammen mit dem Bild abgespeichert und muß daher nicht separat gesichert werden.

Nun haben wir zwar einen Farbverlauf, aber wie die Zuordnung zwischen Iterationsanzahl eines Pixels und Farbe dieses Pixels aussieht, ist immer noch nicht klar: Diese kann man nun mit den beiden Schiebereglern '"Kleinste" Farbe' und '"Größte" Farbe' bestimmen. In Abb. B17 sieht man, daß der '"Kleinste" Farbe'-Regler auf der grünen Position steht. Das bedeutet: Alle Pixel mit einer Iterationsanzahl von 1 werden grün. Der '"Größte" Farbe'-Regler steht in der weißen Region, und die "Anzahl der Farben" ist 40. Das bedeutet: Wenn ein Pixel die Iterationsanzahl 40 hat, wird es weiß. Alle Farbwerte zwischen 1 und 40 werden über den Farbverlauf zwischen den beiden Schiebereglern gleichmäßig verteilt. Ein Pixel mit Farbwert 41 hat dann wieder dieselbe Farbe wie eines mit Farbwert 1 usw. Wenn der '"Kleinste" Farbe'-Regler hinter dem '"Größte" Farbe'-Regler steht, werden die Farben umgebrochen. Man kann das alles leicht verstehen, wenn man als Farbanzahl 2 einstellt und mit den Reglern spielt: Nur die beiden Farben, auf denen die Regler stehen, kommen dann im Bild vor.

Achtung: Pixel mit Farbwert = max. Iterationen sind immer schwarz. Diese Farbe kann nicht geändert werden.

c) Weitere Steuerelemente


10. Der Dialog "Animationsparameter"

Man erreicht den Dialog durch Menüpunkt "Animation/Parameter ...".

Animationsparameter

Abb. B18: Dialog "Animationsparameter"

In Abschnitt A.6. wurde gezeigt, wie man Animationen von Hand durch Erzeugung einzelner Bilder erstellen kann. Das ist reichlich mühsam. Daher kann man einige Bilder (mindestens zwei) in der Bilderliste selektieren und zwischen ihnen einen sanften Übergang automatisch berechnen lassen. Wie dies geschieht, kann man mit dem Animationsparameter-Dialog beeinflussen.

a) Abschnitt "Erstes und letztes Bild"

In diesem Bereich wird das Start- und Endbild des ersten selektierten Bildpaares angezeigt. Die Ankreuzfelder "Glätte Bewegung" bewirken die Berechnung von zusätzlichen Bildern am Anfang und Ende des Übergangs, so daß sich die Bewegung dort etwas verlangsamt. Auf diese Weise hat man einen glatteren Übergang zwischen zwei aufeinanderfolgenden selektierten Bildpaaren.

b) Abschnitt "Einstellungen"

Hier sind alle Parameter aufgelistet, die FCM bei der Animationserzeugung verändern kann (mit Ausnahme von Änderungen im Farbgradienten; einen solchen Übergang kann man nicht beeinflussen). Wenn ein Parameter sich zwischen Start- und Endbild nicht unterscheidet, ist das Eingabefeld ausgegraut und enthält den Wert 0. In Abb. B18 sieht man beispielsweise einen Zoom in eine Julia-Menge. Der Eintrag im Größenänderungsfeld sagt uns, daß die reelle Bildbreite von Bild zu Bild um 8 % schrumpfen soll. Das resultiert in 36 Bilder, wie in der letzten Zeile ausgegeben. Natürlich hängt das vom Größenunterschied zwischen Start- und Endbild ab.
Alle Parameter beeinflussen sich gegenseitig: Wenn man den Prozentwert der Größenänderung modifiziert, hat das eine andere Bildanzahl zur Folge, und das verändert wiederum die übrigen Parameter. Probieren Sie es aus.
Hinweis: Das funktioniert nur, wenn das modifizierte Eingabefeld den Fokus hat. Leider hat das hier verwendete Java-Swing-Element ("Spinner") anscheinend einen Bug (JRE 1.6) und hat nicht den Fokus, sogar wenn der Cursor darin blinkt! Daher setzt FCM den Fokus per Programm-Code, sobald der Mauszeiger über dem Element steht. Um das anzuzeigen, wird die Beschriftung dann blau. Nur in diesem Zustand funktioniert der Update-Mechanismus! Das bedeutet, daß man die Einträge nicht vernünftig ohne Maus allein mit der Tastatur verändern kann, sorry.

Bedienelement
Beschreibung
Dauer/ms
In diesem Feld kann man die Zeit (in Millisekunden) eingeben, die zwischen dem ersten und dem letzten Bild eines Übergangs vergehen soll.
Für eine Animation, die in FCM abgespielt wird, hat diese Zahl zunächst keine Bedeutung. Sie wird erst dann wichtig, wenn man sie in eine AVI-Datei verwandeln will. Auch dann ergibt sich die Dauer allerdings ausschließlich aus der Anzahl der Bilder (dem untersten Eingabefeld) und der Bildrate, die im Video-Erzeugungs-Dialog eingegeben wird.
Wozu ist das Feld dann also gut? Der Bedarf ergibt sich aus folgender Situation: Man möchte eine Animation mit Musik hinterlegen, wobei sich im Takt der Musik optisch etwas tun soll. Da der Rhythmus der Animation dann durch die Musik vorgegeben ist, braucht man auf jeden Fall definierte Zeiten für jeden Übergang. Wenn man weiß, mit welcher Bildrate man seine Animation erzeugen will, kann man sich die Anzahl der benötigten Bilder leicht ausrechnen und im untersten Eingabefeld eintragen. Blöd nur, wenn man die Animation dann doch mit einer anderen Bildrate erzeugen will: Dann muß man sämtliche Übergänge durchgehen und die Bildanzahl entsprechend ändern. Deswegen kann man sich hier die Zeit für einen Übergang merken. Benutzt wird diese Zeit ausschließlich im Zusammenhang mit Menüpunkt "Animation/Bildrate anpassen ...". Dieser Menüpunkt greift sich nämlich die Bildrate aus dem Video-Erzeugungs-Dialog und paßt dann für sämtliche Übergänge die Bildanzahl so an, daß die Übergangsdauer gleich bleibt.
Bilder pro Sekunde
Für dieses Feld gilt sinngemäß das gleiche wie für das Feld "Dauer/ms": Es ist nur für die Erzeugung von AVI-Dateien interessant. Es hilft hier das Kopfrechnen zu vermeiden, wenn man die Dauer, die Bildrate und die Anzahl der Bilder in Zusammenhang bringen will.
Ändere die Bildgröße um
Dieses Element ist veränderbar, wenn das Startbild eine andere Größe (des Ausschnitts aus der komplexen Ebene) hat als das Endbild. Man kann hier den Prozentwert eingeben, um den die Breite bzw. Höhe zwischen Vorgänger- und Nachfolgerbild differieren soll.
Bewege jedes Bild um
Dieses Element ist veränderbar, wenn Startbild und Endbild bei gleicher Größe einen anderen Ausschnitt der komplexen Ebene zeigen. Die Position kann sich horizontal und/oder vertikal unterscheiden. Der Durchschnitt wird berechnet, das Ergebnis ist eine Zahl. Jedes Bild wird nun horizontal und vertikal um den einzugebenden Prozentwert dieser Zahl verschoben.
Ändere die maximale Iterationsanzahl um
Dieses Element ist veränderbar, wenn sich die maximalen Iterationsanzahlen zwischen Start- und Endbild unterscheiden und mindestens eine von beiden nicht auf "automatisch" gesetzt ist (s. Abschnitt  B.8).
Weil dieser Eintrag sich nur bei Zooms in die komplexe Ebene ändern sollte und sich dann logarithmisch ändert, ist der Wert, den man hier eingeben kann, die prozentuale Änderung zum nächsten Bild und nicht ein absoluter Wert.
Ändere den Realteil der Julia-Konstanten um
Dieses Element ist veränderbar, wenn sich die Realteile der Julia-Konstanten c von Start- und Endbild unterscheiden. Die Differenz wird von FCM berechnet, und man kann hier einen Prozentwert dieser Differenz eingeben. Dieser resultiert in einer Konstanten, um die sich jedes Bild von seinem Vorgänger unterscheidet.
Ändere den Imaginärteil der Julia-Konstanten um
M. m. wie oben.
Ändere die Farbanzahl um
Dieses Element ist veränderbar, wenn sich die Farbanzahl zwischen Start- und Endbild unterscheidet und mindestens eine von beiden nicht auf "automatisch" gesetzt ist (s. Abschnitt B.9). Der Wert, den man hier eingeben kann, ist der Prozentwert, um den sich die Farbanzahlen zweier aufeinanderfolgender Bilder unterscheiden.
Ändere die '"Kleinste" Farbe' um
Dieses Element ist veränderbar, wenn sich die '"Kleinste" Farbe' zwischen Start- und Endbild unterscheidet. Die folgenden vier Fälle muß man unterscheiden:
  • Der Startwert ist kleiner als der Endwert und man erhöht den Wert bei jedem Bild => der Wert vergrößert sich bei jedem Bild:

       0           Start          ->           Ende        10000
       |-------------|--------------------------|------------|

  • Der Startwert ist größer als der Endwert und man erhöht den Wert bei jedem Bild => der Wert vergrößert sich bei jedem Bild, aber es gibt einen Umbruch bei 10000:

       0     ->     Ende                      Start   ->   10000
       |-------------|--------------------------|------------|

  • Der Startwert ist kleiner als der Endwert und man verringert den Wert bei jedem Bild => der Wert verringert sich bei jedem Bild, aber es gibt einen Umbruch bei 0:

       0     <-    Start                       Ende   <-   10000
       |-------------|--------------------------|------------|

  • Der Startwert ist größer als der Endwert und man verringert den Wert bei jedem Bild => der Wert verringert sich bei jedem Bild:

  •    0            Ende          <-          Start        10000
       |-------------|--------------------------|------------|

Im Eingabefeld kann man den absoluten Wert eingeben, um den sich der Farbton von Bild zu Bild unterscheiden soll. Um den Wert zu verringern, gibt man einen negativen Wert ein.
Ändere die "größte" Farbe um
M. m. wie oben.
Resultiert in
Dieses Element ist immer veränderbar. Hier gibt man die Anzahl der Bilder ein, aus denen die Animation bestehen soll. Veränderungen führen natürlich zu Veränderungen bei allen anderen Parametern.

Tabelle B7: Animationsparameter

Sobald man den Dialog mit OK verläßt, werden alle selektierten Bilder zu sog. Schlüsselbildern und in der Bilderliste durch ein rotes Dreieck markiert. Wenn man zwischen jedem Bildpaar eine unterschiedliche Anzahl von Übergangsbildern haben will, muß man die Bilder paarweise selektieren und den Parameterdialog für jedes Pärchen separat aufrufen.

Hinweis: Die Schlüsselbilder enthalten die komplette Information, um eine Animation zu erzeugen. Es reicht also theoretisch aus, beim Abspeichern eines Clips nur die Schlüsselbilder zu sichern, die komplette Animation kann man dann durch Neuberechnung wiederherstellen.

Tip: Insbesondere bei Clips von Julia-Mengen muß man häufig mit den Parametern ein wenig experimentieren und Bilder neu berechnen lassen. Das kostet bei größeren Bildern erheblich Rechenzeit. Es ist daher sinnvoll, einen Clip mit möglichst kleinen Bildern zu erstellen und abzuspeichern. Beim Laden kann man dann ein größeres Format wählen, indem man zuvor ein leeres Fenster in der gewünschten Größe öffnet.

11. Der Dialog "Video-Erzeugung"

Man erreicht den Dialog durch Menüpunkt "Datei/Kodiere exportierte Bilder als Video ...".

Video-Erzeugung

Abb. B19: Dialog "Video-Erzeugung"

a) Konzept der Videoerzeugung

Das Erzeugen von MPEG- oder AVI-Video-Dateien ist ein komplexer Vorgang, den FCM nicht direkt beherrscht. Vielmehr muß man eine weitere Software installieren, die diese Aufgabe übernimmt.
Das Vorgehen ist das folgende:
Es gibt verschiedene kostenlose Programme, die einzelne Bilder in ein Video konvertieren können:
MEncoder kommt mit den meisten Bildformaten zurecht und bietet die meisten Möglichkeiten, daher unterstützt FCM die Erzeugung von Videos mit diesem Programm über den Video-Erzeugungs-Dialog, der eine grafische Oberfläche für MEncoder darstellt und die wichtigsten Parameter relativ einfach einzugeben erlaubt.

Laden Sie sich also unter http://www.mplayerhq.hu/design7/dload.html die Datei "MPlayer-mingw32-1.0rc2.zip" (oder neuer) herunter und packen Sie sie an beliebiger Stelle aus (die Stelle ist nur fast beliebig: Der Pfad darf keine Leerzeichen enthalten!). Dabei entsteht der Ordner "MPlayer-1.0rc2", in diesem Ordner befinden sich die beiden Dateien "mencoder.exe" und "mplayer.exe", die von FCM zur Kodierung und zur Wiedergabe verwendet werden.

b) Abschnitt "Dateien und Ordner"

Der wichtigste Eingabebereich ist der erste Abschnitt "Dateien und Ordner"; wenn hier alle Eintragungen gemacht sind, füllt sich der Rest des Dialogs von selbst mit Vorgabewerten, die man nur bei Bedarf verändern muß.

Bedienelement
Beschreibung
Typ der Bilddateien
MEncoder kommt mit verschiedenen Dateitypen zurecht, hier muß man in der Auswahlliste den Dateityp angeben, in dem man seine Bilder exportiert hat: BMP, PNG oder JPG.
Ordner mit Bildern
Hier gibt man den Ordner an, in den man seine Bilder exportiert hat.
Audiodatei
Falls man das Video mit Musik unterlegen möchte, kann man hier eine WAV- oder MP3-Datei angeben, die dazu verwendet werden soll.
Ausgabedatei
Hier gibt man Ort und Namen der Datei an, in die der Film gespeichert werden soll.
MPlayer-Ordner
FCM muß wissen, wo sich der MEncoder auf Ihrer Festplatte befindet. Geben Sie hier den Ordner an, in dem die Datei "mencoder.exe" liegt.

Tabelle B8: Abschnitt "Dateien und Ordner" im Video-Erzeugungs-Dialog

Diese Angaben reichen bereits zur Erzeugung des Videos, der Knopf "Video erzeugen" ist jetzt anwählbar.

c) Abschnitt "Video-Einstellungen"

Mit diesem Abschnitt kann man MEncoder einige Parameter übergeben. Die wichtigsten sind über die Drop-Down-Listen veränderbar.

Bedienelement Beschreibung
Video-Codec
Dient zur Auswahl des zu verwendenden Video-Codecs. Welcher am besten geeignet ist, hängt von dem Videoplayer ab, den Sie verwenden wollen, da nicht jeder Player jedes Format versteht. Der Windows-Mediaplayer kommt am besten mit "msmpeg4v2" zurecht.
Audio-Codec
Hier gilt dasselbe wie für den Video-Codec. Für den Windows-Mediaplayer sind "copy", "mp3lame" und "pcm" am besten geeignet.
kBits pro Sekunde
Die Datenrate kann man MEncoder stufenlos mitgeben, ein paar Standardvorgaben befinden sich in der Drop-Down-Liste. Je höher die Datenrate, desto besser wird die Bildqualität, aber desto größer wird auch die Filmdatei. Hier muß man ein wenig experimentieren, um den besten Kompromiß zu finden.
Generelle Einstellungen
Dieses Feld dient zur Eingabe allgemeiner Parameter für den MEncoder, falls Sie welche eingeben wollen. Lesen Sie die MEncoder-Doku.
Codec-Einstellungen
Hier werden einige Parameter angegeben, die den Video-Codec betreffen. Sie könnten stattdessen genausogut unter "Generelle Einstellungen" eingetragen werden. Das Feld dient nur der Übersichtlichkeit.
Bilder pro Sekunde
Auch hier gilt, je höher die Bildrate, desto besser die Bildqualität (Kinofilme haben 24 Bilder pro Sekunde, im Fernsehen sind's 25), aber desto größer wird auch die Video-Datei. Und, nicht zuletzt, ist Ihr Film schneller zu Ende!
15 Bilder pro Sekunde sind auch schon ganz brauchbar.

Tabelle B9: Abschnitt "Video-Einstellungen" im Video-Erzeugungs-Dialog


d) Abschnitt "Video erzeugen und abspielen"

Die Elemente dieses Abschnitts füllen sich in der Regel von selbst passend aus, wenn in den Feldern oben im Dialog etwas eingegeben wird. Ändern sollte man die Einträge nur bei Bedarf (z. B. wenn Sie ein anderes Programm als MEncoder verwenden wollen) und dann oben nichts mehr ändern, weil die Änderungen sonst wieder überschrieben werden.

Das Prinzip besteht darin, daß FCM beim Drücken des "Video erzeugen"-Knopfes eine Batch-Datei ("enc.bat") erzeugt, die den Aufruf des MEncoders mit allen eingestellten Parametern enthält, und diese dann über die Systemkonsole ("Eingabeaufforderung" unter Windows) aufruft.
Ebenso wird beim Drücken des "Video abspielen"-Knopfes die Batch-Datei "play.bat" erzeugt und ausgeführt.

Bedienelement Beschreibung
Konsolenkommando
Das ist das Kommando, mit dem man eine Konsole aufruft und diese eine Batch-Datei ausführen läßt. Unter Windows sollte man keine Änderungen vornehmen, unter Linux könnte man hier seine Lieblings-Shell eintragen.
Kodieren-Batch-Datei
Hier kann man den Inhalt der Batch-Datei "enc.bat" sehen, die beim Drücken auf den "Video erzeugen"-Knopf generiert wird. Das Batch-Programm wechselt zunächst in das Verzeichnis mit den exportierten Bildern und führt dann den MEncoder mit allen oben im Dialog eingegebenen Parametern aus.
Abspielen-Batch-Datei
Das gleiche wie beim Kodieren, dies ist aber der Inhalt der Batch-Datei zum Abspielen des erzeugten Videos.
Kodierungskommando
Dieses Kommando führt FCM aus, um die Batch-Datei "enc.bat" zu starten, sobald man den Knopf "Video erzeugen" anklickt.
Abspielkommando
Dieses Kommando führt FCM aus, um die Batch-Datei "play.bat" zu starten, sobald man den Knopf "Video abspielen" anklickt. Die wichtigsten MPlayer-Tastenkommandos während des Abspielens sind:
  • Links: -10 Sekunden
  • Rechts: + 10 Sekunden
  • Runter: - 1 Minute
  • Rauf: + 1 Minute
  • Rücktaste: normale Geschwindigkeit
  • {: halbe Geschwindigkeit
  • }: doppelte Geschwindigkeit
  • F: Vollbild
Schließe Konsolenfenster
Beim Erzeugen oder Abspielen von Videos öffnet sich ein Konsolenfenster, das die jeweilige Batch-Datei ausführt. Das Fenster bleibt anschließend geöffnet, damit man die evtl. erscheinenden Fehlermeldungen lesen kann. Es ist allerdings lästig, dieses Fenster immer wieder von Hand schließen zu müssen, wenn keine Fehler mehr auftreten. Wenn man dieses Ankreuzfeld aktiviert, schließt sich das Fenster nach Bearbeitung der Batch-Datei wieder von selbst.

Tabelle B10: Abschnitt "Video erzeugen und abspielen"

e) Tips zur Erzeugung qualitativ hochwertiger Filme

Clips bestehen gerne mal aus mehreren tausend Bildern, die nur dann komplett in den Speicher passen, wenn sie sehr klein sind (z. B. 200 x 150 Pixel). Um daraus eine AVI-Datei guter Qualität zu machen, braucht man die exportierten Bilder aber in größerem Format (z. B. 800 x 600 Pixel). Wenn man die Bilder zwecks Qualitätsverbesserung zunächst noch größer berechnen und beim Exportieren dann herunterskalieren möchte (s. Abschnitt B.8.a)), empfiehlt sich sogar eine Bildgröße von z. B. 1600 x 1200 Pixel. Man könnte seinen Clip natürlich in mehrere Teil-Clips aufteilen und nacheinander berechnen und exportieren lassen. Bequemer geht das aber mit dem Menüpunkt "Datei/Öffne Clip, aber exportiere jedes Bild als ..." wie im folgenden beschrieben:
=> Jedes Bild des Clips wird jetzt im großen Format berechnet, sofort exportiert (dabei ggf. herunterskaliert) und dann aus der Bilderliste gelöscht. Am Ende verbleibt nur das letzte Bild des Clips in der Liste, und alle Bilder liegen als BMP-Datei auf der Platte.
Die exportierten Bilder können nun wie oben beschrieben in eine AVI-Datei überführt werden.

12. Einige technische Aspekte

Um ein fraktales Bild zu erzeugen, sind drei Arten von Daten beteiligt:

Erstens gibt es die Bildparameter. Das sind die, die man in den Parameter-Dialogboxen eingeben kann (s. Abb. B8 und B9). Sie sind ausreichend, ein Bild komplett zu beschreiben und zu berechnen. Nur diese Parameter werden gespeichert, wenn der Menüpunkt "Datei/Speichern mit Farben-Array" nicht aktiviert ist.

Zweitens gibt es das Array der Iterationswerte. Das ist ein zweidimensionales Feld von 32-Bit-Werten. In diesem Array ist für jedes Bildpixel gespeichert, wie viele Iterationen nötig waren, um die Grenze von 2,45 für den Betrag |zn| der komplexen Zahl zu überschreiten (s. Kapitel C für Details); diese Anzahl von Iterationen korrespondiert mit einem Farbwert, er ist aber nicht der 24-Bit-True-Color-Wert, den man letztendlich im Fenster dargestellt sieht. Das Array wird im Hauptspeicher für jedes Bild in der Bilderliste vorgehalten. Wenn der Menüpunkt "Datei/Speichern mit Farben-Array" aktiviert ist, wird dieses Array zusätzlich zu den Bildparametern gespeichert.

Drittens gibt es das True-Color-Bild, das man im Fenster sieht. Dieses Bild wird aus dem Iterations-Array (unter Verwendung der benutzerdefinierten Farbparameter) immer neu berechnet, sobald ein Bild aus der Liste aktiviert wird. Es wird nicht mit dem Bild gespeichert (es gehört dem Fenster, nicht dem Bild). Wenn man einen Clip abspielt, passiert genau das gleiche: Das True-Color-Bild muß aus dem Iterationen-Array berechnet werden. Man kann sich vorstellen, daß dieser Prozeß Zeit kostet. Es spart aber Speicherplatz, so daß man mehr Bilder im Speicher halten kann.

Alle Bilder werden im Hauptspeicher gehalten, die Festplatte wird nicht benutzt.

Ergebnis: Wenn Ihr Computer langsam ist, sollten Sie Clips aus kleineren Bildern erstellen, um die Bildwiederholrate zu steigern. Evtl. ist es besser, den Menüpunkt "Datei/Speichern mit Farben-Array" zu aktivieren, um das Laden der Bilder von Festplatte zu beschleunigen.

13. Anwendungsbeispiel: Bildoptimierung

Das folgende Beispiel soll zeigen, wie man mit FCM am effizientesten Bilder in hoher Qualität erzeugt. Wir gehen hierbei davon aus, daß alle Parameter zunächst auf die Vorgabewerte eingestellt sind.

Die wichtigste Grundregel beim Erzeugen von Bildern mit FCM ist:

    Arbeiten Sie mit möglichst kleinen Bildern!

Die Berechnung von Fraktalen ist sehr rechenintensiv, je größer die Bilder werden, desto zäher fühlt sich FCM an. Auf meinem Pentium M 1500 hat sich eine Größe von 400 x 300 Pixeln bewährt (deswegen ist sie auch die Default-Größe beim ersten Start). Erst im letzten Schritt, wenn man alle Parameter so eingestellt hat, wie man sie haben will, sollte man ein großes Bild erzeugen, das man dann z. B. als JPG-Datei abspeichern kann. Solange man noch viel an den Parametern drehen muß, schadet aber auch eine noch kleinere Größe nicht, im folgenden sind die Bilder daher nur 200 x 150 Pixel groß.

Der erste Schritt besteht darin, eine interessante Region zu suchen. Schauen wir z. B. mal in die Spalte zwischen dem "Kopf" und "Körper" der Mandelbrotmenge; nach ein paarmal Zoomen findet man eine vielversprechende Stelle, eine Medusen-artige Struktur:

Zoom ins Apfelmännchen

Abb. B20: Zoom in die Mandelbrotmenge auf der Suche nach einer interessanten Region

Zunächst stellt man fest, daß es im letzten Bild noch ausgedehnte schwarze Regionen gibt, die nicht "Apfelmännchen-artig" aussehen, vermutlich ist daher die maximale Iterationsanzahl, die FCM automatisch gewählt hat, noch nicht hoch genug. Wir stellen daher im Bild-Geometrie-Dialog (Knopf "Daten" in der Werkzeugleiste) die maximale Iterationsanzahl von ca. 650 auf 2000, die schwarzen Regionen verschwinden damit:

Medusa mit 2000 Iterationen

Abb. B21: Maximale Iterationsanzahl auf 2000 erhöht

Allerdings sehen die Farben jetzt etwas langweilig aus, denn die Farbenanzahl hat sich auf Grund der Kopplung der Farbenanzahl an die Iterationsanzahl ebenfalls verändert. Solche Spiralregionen wirken immer besonders interessant, wenn man die Farbenanzahl so wählt, daß sich die Farben in jedem Spiralumlauf wiederholen. Das können wir im Farben-Dialog mit dem Schieberegler "Anzahl der Farben" bewerkstelligen.

Farbverlauf "FCM"

Reduktion auf 63 Farben

Abb. B22: Farbverlauf "FCM",
Farbenanzahl auf 63 reduziert
Farbverlauf "Spektrum", modifiziert

Meduse mit neuem Farbverlauf

Abb. B23: Farbverlauf "Spektrum (s/w)",
modifiziert (weiße Farbe entfernt, alle Farben etwas nach links verschoben)

In Abb. B22 ist die Farbenanzahl auf 63 reduziert, aber die Farben sind noch etwas blaß. Der Farbverlauf "Spektrum (s/w)" sieht schon etwas bunter aus. Noch besser wirkt das Bild, wenn man in diesem Farbverlauf die weiße Farbe entfernt und alle Farben etwas nach links verschiebt, so daß das Bild einen dunklen Hintergrund bekommt, dann leuchten die Farben mehr (Abb. B23).

Etwas unschön sind jetzt noch die Farbabstufungen, die relativ deutlich erkennbar sind. Leider ist hier mit FCM keine direkte Abhilfe möglich, da ist der Fractalizer mit seinen "Feinabstufungen" besser [vielleicht kriege ich mal raus, wie die das machen :-)]. Man kann sich aber die Selbstähnlichkeit der Mandelbrotmenge zunutze machen und eine kleinere Version unserer Region suchen, die mehr Abstufungen enthält. Suchen Sie also die nächste verkleinerte Ausgabe der Mandelbrotmenge auf der "Antenne" der großen Menge, zoomen sie dort ebenfalls zu der gleichen Stelle zwischen Kopf und Körper und passen Sie wieder den Farbverlauf geeignet an.

Mandelbrotmenge auf der Antenne

Abb. B24: Kleinere Mandelbrotmenge auf der "Antenne" der Muttermenge

Zum Schluß überlegt man sich, wie groß das fertige Bild werden soll, z. B. 400 x 300 Pixel. Supersampling ist hier wegen der geringen Farbenanzahl nicht angemessen (probieren Sie es aus), daher wird die Methode "Herunterskalieren" zur Qualitätsverbesserung angewandt.
Dazu öffnen Sie den Bild-Geometrie-Dialog und drücken drei Mal auf den "x 2"-Knopf. Beim Verlassen des Dialogs mit OK wird dadurch ein leeres Fenster in der Größe 1600 x 1200 Pixel erzeugt. Das Bild wird nun neu gezeichnet (wie üblich mit dem Knopf "Zeichnen" in der Werkzeugleiste).
Im Dialog "Einstellungen" (Menüpunkt "Datei/Einstellungen ...") gibt man in der Auswahlliste "Skaliere Bild beim Exportieren auf" den Wert "25 %" ein, verläßt den Dialog mit OK und speichert das Bild mit Menüpunkt "Datei/Exportiere Bild als ...".

Endbild

Abb. B25: Fertiges Bild, auf 400 x 300 Pixel herunterskaliert


C. Kurze Einführung in die mathematischen Grundlagen

Die folgenden Abschnitte geben einen (sehr) kurzen Überblick über den mathematischen Hintergrund, der zur Erzeugung der fraktalen Grafiken nötig ist.

1. Iterationen

Wenn man eine Iteration berechnet, führt man dieselbe Operation mehrere Male durch, indem man das Ergebnis der Vorgängeroperation als Eingabewert für die Nachfolgeoperation verwendet. Z. B. könnte man beschließen, wiederholt eine Konstante zu einer Zahl zu addieren. Angenommen, die erste Zahl sei 0 und die Konstante 1.2, dann wird man die Zahlenfolge 0, 1.2, 2.4, 3.6, ... usw. erhalten. Das können wir etwas formaler schreiben:

r0 = 0
r1 = r0 + 1.2 =   0 + 1.2 = 1.2
r2 = r1 + 1.2 = 1.2 + 1.2 = 2.4
r3 = r2 + 1.2 = 2.4 + 1.2 = 3.6
...

Und kürzer:

r0 = 0, c = 1.2
rn = rn-1 + c

Man kann diese Iteration so lange durchführen bis man sie abbrechen möchte, z. B. wenn rn einen Wert größer 4 erreicht hat.

Betrachten wir die folgende etwas unterschiedliche Iteration als weiteres Beispiel:

r0 = 0, c = 1.2
rn = rn-12 + c

Mit anderen Worten: Wähle als Startwert wieder 0 und als Konstante wieder 1.2. Um den nächsten Wert zu berechnen, quadriere den Vorgänger und addiere die Konstante dazu.
Das resultiert in die folgende Zahlensequenz, wie man leicht ausrechnen kann: 0, 1.2, 2.64, 8.17, ...
Wenn wir c = 0.5 setzen, lautet die Sequenz: 0, 0.5, 0.75, 1.06, 1.63, 3.15, 10.44, ...
Wenn wir c = -2 setzen, lautet die Sequenz: 0, -2, 2, 2, 2, 2, ...

Wir halten als interessantes Ergebnis fest: Im ersten Fall ist die vierte Zahl (8.17) größer als unsere Grenze 4, im zweiten Fall ist die siebte Zahl (10.44) größer als 4, im dritten Fall erreichen wir die Grenze 4 nie! Dies hängt offensichtlich von der Konstanten c und/oder dem Startwert r0 ab.

Wie könnten wir das Resultat visualisieren? Wir geben jeder Zahl eine Farbe (z. B. 4 = grün, 7 = rot, nie = schwarz) und zeichnen einen Punkt in diesen Farben für jeden c-Wert auf einen Zahlenstrahl:


reelle Achse

Abb. C1: Reelle Zahlenachse mit c-Werten

In diesem Bild sagen die bunten Punkte zu uns:
"Hallo, ich bin der c-Wert -2, und ich erreiche nie unsere Grenze, daher bin ich schwarz."
"Hallo, ich bin der c-Wert 0, und ich brauche 4 Iterationen, um unsere Grenze zu erreichen, daher bin ich grün."
"Hallo, ich bin der c-Wert 0.5, und ich brauche 7 Iterationen, um unsere Grenze zu erreichen, daher bin ich rot."

2. Komplexe Zahlen

Um zu verstehen, was man auf den fraktalen Bildern sieht, die FCM generiert, braucht man eine grobe Vorstellung davon, was komplexe Zahlen sind. Komplexe Zahlen sind eine Erweiterung der reellen Zahlen. Wie Sie sich evtl. erinnern, sind reelle Zahlen die Kombination der rationalen Zahlen (die Menge aller Brüche) und der irrationalen Zahlen (algebraische und transzendente Zahlen). Mit den reellen Zahlen kann man zwar schon eine Menge machen, sie haben aber einen Nachteil: Man kann keine Wurzel aus negativen Zahlen ziehen, weil das Produkt zweier negativer Zahlen stets positiv ist [was könnte die Wurzel aus -2 sein? Nein, -1.41*(-1.41) ist +2!]. Komplexe Zahlen überwinden das, indem eine "imaginäre Einheit" i eingeführt wird, die per Definition die Wurzel aus -1 ist; mit anderen Worten: i2 = -1.

Eine komplexe Zahl z hat die Form z = a + bi mit reellen Zahlen a und b. a ist der sogenannte Realteil, b der Imaginärteil von z. Für uns sind drei Aspekte wichtig:
  1. Eine komplexe Zahl kann als Punkt in der sogenannten komplexen Ebene dargestellt werden.
  2. Es gibt Rechenregeln, nach denen mit komplexen Zahlen gerechnet werden kann, insbesondere kann man sie addieren und multiplizieren.
  3. Eine komplexe Zahl hat einen Abstand vom Ursprung der komplexen Ebene.

a) Die komplexe Ebene

Als Beispiel betrachten wir die komplexe Zahl z1 = 3 + 2i. Man kann diese Zahl in ein kartesisches Koordinatensystem an der Position (3,2) einzeichnen. Die horizontale Achse wird verwendet, den Realteil darzustellen, die vertikale zeigt den Imaginärteil:

komplexe Ebene

Abb. C2: Die komplexe Ebene

Außerdem sieht man in Abb. C2 den Betrag von z1 (Abstand von z1 zum Ursprung, er ist mit |z1| bezeichnet) und eine andere komplexe Zahl z2 = 2 - 1i.

b) Rechenregeln

Wie rechnet man mit komplexen Zahlen? Das geht genauso einfach wie mit reellen Zahlen; man muß nur beachten, daß i*i = -1 ist. Wir müssen für eine der oben beschriebenen Iterationen nur addieren und multiplizieren. Die Regeln für diese Operationen mit einer komplexen Zahl z1 = a + bi und einer anderen z2 = c + di sind:

Addition:       z1 + z2 =  a+bi +  c+di
                        =  a+c  + (b+d)i

Multiplikation: z1 * z2 = (a+bi)*(c+di)
                        = a*c + a*di + bi*c + bi*di
                        = a*c + a*di + bi*c + b*d*i*i
                        = a*c + a*di + bi*c + b*d*(-1)
                        = ac-bd + (ad+bc)i

Und der Betrag ist definiert als:
        _____
|z| =  roota2+b2

Als Beispiel multiplizieren wir die Zahlen aus Abb. C2: z1 = 3+2i  und  z2 = 2-1i:

z1 * z2 = (3+2i)*(2-1i)
        = 3*2 - 3*1i + 2i*2 -2i*1i
        = 6 - 3i + 4i - 2i*i
        = 6 + i + 2
        = 8 + i

Und der Betrag von z1 ist z. B.:
        _______   ___
|z1| = root32 + 22 = Root13 = 3.61

[Der Vollständigkeit halber: Die komplexen Wurzeln von -2 sind (0 + 1.41 i) and (0 - 1.41 i), da
-1.41 i * -1.41 i = 1.41 i * 1.41 i = 2*i2 = -2.]

3. Die Mandelbrot-Menge

Betrachten wir eine Iteration mit komplexen Zahlen. Wir können dieselbe Iterationsformel wie in Abschnitt C.1 benutzen, mit einem komplexen Startwert z0 und einer komplexen Konstanten c, z. B.:

z0 = 0 + 0i, c = -1.3 + 0.8i
zn = zn-12 + c

Auf dieselbe Art wie oben können wir fragen: "Wie viele Iterationen brauchen wir, bis der Betrag von zn größer ist als 4?". Und das ist genau das, was man in einem von FCM erzeugten Mandelbrot-Bild sieht! (Um genau zu sein: Die Grenze ist nicht 4, sondern 2.45 [Wurzel aus 6]).

In einem solchen Bild sieht man die komplexe Ebene, jeder Punkt wird als unterschiedlicher c-Wert interpretiert. Die Ebene wird nun Punkt für Punkt und Zeile für Zeile abgetastet, und die Iteration wird für jeden Punkt (=c-Wert) durchgeführt. Jeder Punkt liefert die Anzahl, wie viele Iterationen nötig sind, bis der Betrag von z größer wird als 4. Jede Anzahl entspricht einer Farbe, und das Pixel, das zu dem c-Wert gehört, wird in dieser Farbe gezeichnet.

Nun gibt es auch hier einige Punkte, für die der Betrag niemals größer wird als 4. Diese Punkte werden schwarz gezeichnet, sie bilden die Mandelbrot-Menge:

Mandelbrot set

Abb. C3: Mandelbrot-Menge

Alle schwarzen Punkte bilden eine charakteristische Figur, die man in Abb. C3 sehen kann. Die krumpelige Grenze ist eine typische fraktale Struktur: Wenn man ein Vergrößerungsglas nähme und sie sich genauer ansähe, sähe sie immer noch genauso verkrumpelt aus wie ohne Lupe. Probieren Sie es aus, indem Sie mit FCM in die Ebene hineinzoomen. Sie werden ein Universum bizarrer Strukturen entdecken; und alles kommt aus dieser simplen Iteration!

Übrigens: Die Menge ist nach Benoit B. Mandelbrot benannt, einem polnisch-amerikanischen Mathematiker.

4. Die Julia-Menge

Die Julia-Menge wird durch dieselbe Iterationsformel erzeugt wie die Mandelbrot-Menge. Der Unterschied ist: Man betrachtet nicht die c-Ebene der Konstanten c, sondern die z-Ebene der Startwerte z, wobei die Konstante c für alle Punkte dieselbe ist.

Das bedeutet: Eine beliebige Konstante c wird gewählt. Dann wird die komplexe Ebene abgetastet, wieder Punkt für Punkt, Zeile für Zeile. Jeder Punkt wird diesmal aber als Startwert z0 und nicht als c interpretiert. Die Iteration wird ansonsten genauso durchgeführt wie bei der Mandelbrot-Menge. Selbstverständlich ist das Ergebnis ein anderes und hängt von der gewählten Konstanten c ab:

Julia set

Abb. C4: Julia-Menge mit c = -0.8 + 0.2i

Die Julia-Menge ist nach dem französischen Mathematiker Gaston Julia benannt.

D. Anhang

1. Bekannte Fehler


2. Bekannte Unzulänglichkeiten


Fehlermeldungen und Verbesserungsvorschläge sind herzlich willkommen. Bitte schreiben Sie an fs@friedemann-seebass.de.

3. Änderungsliste

04.06.2006: V.0.80:

02.07.2006: V.0.90:

06.08.2006: V.1.00:

13.08.2006: V.1.10:
31.01.2007: V.1.20:
11.02.2007: V.1.30:
26.10.2008: V.2.00:
20.03.2009: V.2.10:
5.2.2010: V.2.11:
27.2.2010: V.2.12:

4. Andere Fraktalgeneratoren

Es gibt einige andere kostenlose Fraktalgeneratoren im Internet, die mir gefallen haben: