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

Inhalt | go to the English version

- A. Schnelleinstieg
  - 1. FCM - wozu?
  - 2. Systemvoraussetzungen
  - 3. Installation
    - a) Installation der Java-Laufzeitumgebung
    - b) Installation von FCM
    - c) Dateiliste
  - 4. Programmstart
    - a) Start aus dem "fcm"-Ordner heraus
    - b) Starten vom Desktop aus
    - c) Speicher für die Java VM
  - 5. Ihr erstes fraktales Bild
  - 6. Zoomen in die Mandelbrot-Menge
  - 7. Abspielen des Clips
  - 8. Zeichnen von Julia-Mengen durch Picken von c-Werten
  - 9. Entfernen aller Bilder und laden eines Clips
- B. FCM im Detail
  - 1. Das Hauptfenster
  - 2. Die Menüzeile
    - a) Das Datei-Menü
    - b) Das Editieren-Menü
    - c) Das Animationen-Menü
    - d) Das Hilfe-Menü
  - 3. Die Werkzeugleiste
  - 4. Die Bilderliste
  - 5. Bild-Kontrollelemente
  - 6. Die Statusleiste
  - 7. Der Dialog "Einstellungen"
    - a) Abschnitt "Hilfe-Browser"
    - b) Abschnitt "Sprache"
    - c) Abschnitt "Erscheinungsbild"
    - d) Abschnitt "Sonstiges"
  - 8. Der Dialog "Bild-Geometrie"
    - a) Abschnitt "Bildgröße"
    - b) Abschnitt "Bildränder"
    - c) Abschnitt "Maximale Anzahl der Iterationen"
    - d) Abschnitt "Konstante c"
    - e) Schaltflächen
  - 9. Der Dialog "Farben"
    - a) Abschnitt "Farbanzahl"
    - b) Abschnitt "Farbverlauf-Editor"
    - c) Weitere Steuerelemente
  - 10. Der Dialog "Animationsparameter"
    - a) Abschnitt "Erstes und letztes Bild"
    - b) Abschnitt "Einstellungen"
  - 11. Der Dialog "Video-Erzeugung"
    - a) Konzept der Videoerzeugung
    - b) Abschnitt "Dateien und Ordner"
    - c) Abschnitt "Video-Einstellungen"
    - d) Abschnitt "Video erzeugen und abspielen"
    - e) Tips zur Erzeugung qualitativ hochwertiger Filme
  - 12. Einige technische Aspekte
  - 13. Anwendungsbeispiel: Bildoptimierung
- C. Kurze Einführung in die mathematischen Grundlagen
  - 1. Iterationen
  - 2. Komplexe Zahlen
    - a) Die komplexe Ebene
    - b) Rechenregeln
  - 3. Die Mandelbrot-Menge
  - 4. Die Julia-Menge
- D. Anhang
  - 1. Bekannte Fehler
  - 2. Bekannte Unzulänglichkeiten
  - 3. Änderungsliste
  - 4. Andere Fraktalgeneratoren

# A. Schnelleinstieg

## 1. FCM - wozu?

FCM ist ein Programm zur Erzeugung fraktaler Grafiken. Es kann

- Mandelbrot-Mengen generieren,
- Julia-Mengen generieren,
- in die Mengen hinein- und hinauszoomen,
- Farben manipulieren,
- alle Parameter zur Erzeugung der Bilder manipulieren,
- Animationen erstellen unter anderem beim

- Zoomen,
- Bewegen der Ebene,
- Verändern des "c-Wertes" in Julia-Mengen,
- Verändern der Farben.

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:

- Installation der Java-Laufzeitumgebung Version 1.6.0 oder neuer. Das ist natürlich nur nötig, wenn es auf Ihrem Rechner nicht bereits installiert ist.
- Installation von FCM.

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:

- Halten Sie die Umschalt- und die Steuerung-Taste gedrückt und ziehen Sie die Datei "FCM.jar" auf den Desktop; das erzeugt dort eine Verknüpfung. Starten Sie FCM dann durch Doppelklick auf das Verknüpfungs-Icon. Das Icon können Sie bei Bedarf ersetzen durch die Datei fcm/mandel.ico; klicken Sie dazu die Verknüpfung mit der rechten Maustaste an und tauschen Sie das Icon über den Eigenschaften-Dialog aus.

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

- Rechtsklick auf den Desktop => das Kontextmenü erscheint.
- Klicken Sie auf "Neu erstellen/Verknüpfung zu Programm..." => ein Dialog erscheint
- Geben Sie im Editierfeld des Reiters "Allgemein" "FCM" ein.
- Aktivieren Sie den Reiter "Programme".
- Geben Sie im Feld "Befehl" das Kommando "java -jar FCM.jar" ein.
- Geben Sie im Feld "Arbeitsordner" den Pfad zum fcm-Ordner ein (z. B. "/home/fs/fcm").
- Falls gewünscht, können Sie das Icon durch fcm/mandel.png ersetzen.
- Verlassen Sie den Dialog mit OK => ein Icon erscheint auf dem Desktop.
- Starten Sie FCM durch Doppelklick auf das Icon.

### 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

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. 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:

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.
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

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.
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

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. | Abb. A8: Laden eines Clips

# B. FCM im Detail

## 1. Das Hauptfenster

Abb. B1 zeigt FCMs 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.
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
--- | --- | ---
| 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
--- | --- | ---
| 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
--- | --- | ---
| 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
--- | --- | ---
| 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

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

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
--- | --- | ---
| > | 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.
Abb. B5: Statusleiste (Mandelbrot-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 ...".
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:

- Skaliere Bild beim Exportieren:
  Wenn in der Auswahlliste ein anderer Wert als 100 % angegeben wird, skaliert FCM beim Exportieren (Speicherung als PNG-, BMP- oder JPG-Datei) jedes Bild auf den eingegebenen Prozentwert herunter. Bei der Eingabe von 50 % ist ein Bild dann z. B. nur halb so breit und halb so hoch wie angezeigt. Eine Vorschau kann man sich ansehen, wenn man ein Bildfenster anklickt (damit es den Fokus bekommt) und dann die Taste "1" auf der Tastatur drückt.
  Wozu ist das gut? Mit dieser Maßnahme kann man die Bildqualität beim Speichern dramatisch steigern, wenn man ein Bild zunächst sehr viel größer als gewünscht erzeugt (etwa 1600 x 1200 Pixel) und dann in der gewünschten Größe speichert, z. B. auf 25 %, also 400 x 300 Pixel, herunterskaliert. Das entspricht einem Antialiasing-Prozeß und verringert Treppchenbildung an Kanten. Siehe hierzu auch den Abschnitt über Supersampling in B.8.a) und das Beispiel in B.13.
- Maximaler Speicher für die VM:
  Wie in Kapitel A.4.c) schon gezeigt, kann man der Java-Virtual-Machine beim Programmstart angeben, wieviel Speicher sie maximal vom RAM des Rechners beanspruchen darf. Um dem Anwender das Hantieren mit der Kommandozeile zu ersparen, kann man dies auch hier angeben. Die Einstellung wird allerdings nur wirksam, wenn man FCM mit dem Menüpunkt "Datei/Starte FCM neu" neu startet, da nur dann FCM beim Start der neuen Instanz eine Kommandozeile zusammenstellen kann! (Falls man mehr Speicher angibt als der Rechner hat, schlägt der Neustart kommentarlos fehl.) Bei einem normalen Start durch Doppelklick auf "FCM.jar" startet die VM immer mit dem Vorgabewert von nur 64 MB, egal was man hier eingestellt hat.
  Leider ist es in der Tat etwas umständlich, FCM zwei Mal starten zu müssen. Sie sollten daher besser die Startdatei "startFCM.bat" an Ihre Bedürfnisse anpassen und diese zum Starten verwenden, wenn Sie regelmäßig mehr Speicher brauchen.
  (Falls jemand weiß, wie man der VM zur Laufzeit Speicher zuteilen kann, lassen Sie es mich wissen. Ich habe nicht einmal herausfinden können, ob und wie man in Java die Größe des im Rechner eingebauten Speichers ermitteln kann.)
- Zeige Speicherverbrauch:
  Wenn dieses Ankreuzfeld aktiviert ist, wird rechts unten im Programmfenster die Speicherauslastung der VM ausgegeben und bei jedem Erzeugen oder Löschen eines Bildes aktualisiert.
- Zeige Kurzhilfetexte:
  Wenn dieses Kästchen angekreuzt ist, werden kurze Hilfetexte zu einem Bedienelement angezeigt, wenn die Maus darüber ruht.
- Zoom-Rechteck beibehalten:
  Wenn man in die komplexe Ebene hineinzoomt, ist es oftmals interessant zu sehen, welchen Ausschnitt das nächste Bild zeigen wird. Das Zoom-Rechteck bleibt im Vorgängerbild erhalten, wenn die Checkbox "Zoom-Rechteck beibehalten" aktiviert ist. Zusätzlich muß natürlich der "Neu"-Knopf in der Bilderliste aktiviert sein, weil sonst das aktuelle Bild (mit dem Zoom-Rechteck darin) durch das neue überschrieben wird.
  Das Zoom-Rechteck wird nur in eine Datei gespeichert, wenn Menüpunkt "Datei/Speichern mit Farben-Array" aktiviert ist.
- Nachfragen beim Beenden von FCM:
  Wenn angekreuzt, fragt FCM vor dem Verlassen noch einmal nach, ob Sie FCM wirklich beenden wollen.
- Spiele Sound nach Operation ab:
  Nach länger andauernden Vorgängen - wie dem Zeichnen eines Bildes oder der Berechnung eines Clips - spielt FCM die Datei "sound.wav" aus dem Installationsverzeichnis ab, falls dieses Feld angekreuzt ist. Wenn Sie einen anderen Sound hören wollen, tauschen Sie die Datei dort einfach aus.

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.
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"

- Breite und Höhe:
  Hier stellt man die Bildgröße in Pixeln ein.
  Die Größe eines bereits vorhandenen Bildes ist nicht änderbar. Wenn man die Werte auf einem vorhandenen Bild ändert, erscheint daher beim Verlassen des Dialogs ein neues Fenster, das allerdings alle anderen Parameter des vorhandenen geerbt hat. Man muß dann nur noch auf den "Zeichnen"-Knopf drücken, um eine größere oder kleinere Kopie des Originals zu erhalten.
- Vorgaben:
  In der Auswahlliste finden sich einige übliche Bildgrößen, die die Eingabe der Werte in die Felder "Breite" und "Höhe" erleichtern. Sie reichen von QQVGA ("Quarter Quarter Video Graphics Array") bis WQUXGA ("Wide Quad Ultra Extended Graphics Array").
- Schaltflächen "x 2", "x 3", "/ 2" und "/3":
  Diese Knöpfe multiplizieren oder dividieren die aktuelle Breite und Höhe mit dem angegeben Wert. Die Multiplikation ist nützlich, wenn man die Bilder später beim Exportieren zwecks Qualitätsverbesserung herunterskalieren möchte [Antialiasing, siehe Kapitel B.7.d) und B.13] und ersparen das Kopfrechnen. Die Division ist nur dazu da, etwaige Änderungen wieder rückgängig zu machen.
- Supersample:
  Diese Einstellung dient der Verbesserung der Bildqualität, indem pro dargestelltem Pixel mehrere Iterationswerte berechnet und dann gemittelt werden. Im Endeffekt bedeutet das, daß ein größeres Bild berechnet als dargestellt wird. Stellt man den Supersample-Wert z. B. auf 2, wird de facto ein Bild mit doppelter Breite und doppelter Höhe berechnet.

  Abb. B9: Ohne Supersampling (Wert auf 1) | Abb. B10: Mit vierfachem Supersampling (Wert auf 4)

  Achtung:
  Das Supersampling erfolgt im Raum der Iterationen, das oben beschriebene Herunterskalieren beim Exportieren von Bildern erfolgt im Raum der Farben. Das ist etwas fundamental anderes, beides hat seine Vor- und Nachteile (s. auch den Abschnitt über den Farben-Dialog):
  - Beim Supersampling entsteht der erhöhte Rechenaufwand nur bei der Ermittlung der Iterationswerte, das Einfärben des Bildes erfolgt dann auf dem normal großen Bild und ist daher so schnell, daß man die Farben mit dem Farben-Dialog auf nicht zu großen Bildern in Echtzeit ändern kann.
  - Beim Herunterskalieren muß man zunächst ein sehr großes Bild erzeugen und bearbeiten, das dann erst beim allerletzten Schritt, dem Exportieren als Datei, wieder verkleinert wird. Der erhöhte Rechenaufwand entsteht erstens bei der Ermittlung der Iterationswerte (in derselben Weise wie beim Supersampling), zweitens aber auch beim Einfärben, weil man immer mit einem großen Bild hantieren muß. Auf großen Bildern gelingt die Farbänderung nicht mehr in Echtzeit.
  - Beim Supersampling braucht man eine große Anzahl von Farben; wenn man nur wenig Farben verwendet, kommt es zu Artefakten. Betrachten wir z. B. den folgenden Farbverlauf:
    Abb. B11: Farbverlauf Dunkelgrau-Rot-Hellgrau
    Bestimmt man etwa, daß nur zwei Farben aus diesem Verlauf im Bild auftauchen sollen, nämlich Dunkelgrau und Hellgrau, sieht das Bild ohne Supersampling halt wie üblich aus, nämlich mit Treppchen an den Kanten. Mit Supersampling verschwinden aber die Treppchen leider nicht, vielmehr werden jetzt gemittelte Iterationswerte von z. B. 2,5 berechnet, und die treffen im Farbverlauf jetzt genau auf die rote Farbe, so daß die Kanten noch mehr hervortreten:

    Abb. B12: Ohne Supersampling, zwei Farben | Abb. B13: Artefakte mit vierfachem Supersampling, imer noch zwei(!) Farben

  - Beim Herunterskalieren erreicht man bei wenigen Farben im Bild eher das gewünschte Ergebnis. Es bleibt bei den zwei Farben, und die Treppchen verschwinden:
    Abb. B14: Großes Bild herunterskaliert auf 25 %,
    zwei Farben
  Fazit:
  Herunterskalieren liefert bei wenigen Farben bessere Ergebnisse als Supersampling, braucht aber beim Einfärben der zunächst großen Bilder viel Rechenleistung und Speicherplatz.
  Supersampling liefert bei vielen Farben vergleichbar gute Ergebnisse wie Herunterskalieren und spart Rechenleistung beim Einfärben und Speicherplatz.

### 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:

Abb. B15: Unscharfes Bild, 1600 Iterationen | 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

- Hilfe:
  Öffnet diesen Abschnitt des Benutzerhandbuchs.
- Vorgaben:
  Setzt alle Einträge auf Vorgabewerte.
- Zeichne neu:
  Zeichnet ein neues Bild mit den aktuellen Einstellungen. Das neue Bild wird als erstes Bild in die Bilderliste eingetragen. Der Abbrechen-Knopf kann dies nicht rückgängig machen!
- Anwenden:
  Zeichnet das aktuelle Bild neu unter Verwendung der Einstellungen im Dialog. Der Abbrechen-Knopf kann dies nicht rückgängig machen!
- Abbrechen:
  Verläßt den Dialog, ohne die Veränderungen zu übernehmen. Das funktioniert nicht, wenn zuvor der "Zeichne neu"- oder "Anwenden"-Knopf betätigt wurde.
- OK:
  Verläßt den Dialog, übernimmt die Veränderungen und zeichnet das Bild neu.

## 9. Der Dialog "Farben"

Man erreicht den Dialog über die Schaltfläche "Farben" in der Werkzeugleiste.
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:

- Hinzufügen einer Farbe:
  Durch Linksklick mit der Maus in den Farbverlauf oder Betätigen des "Hinzufügen"-Knopfes. Die Hinzugefügte Farbe ist zunächst immer weiß.
- Löschen einer Farbe:
  Durch Herausziehen des Reglers nach oben oder unten mit der Maus aus dem Farbverlauf oder Betätigen des "Löschen"-Knopfes.
- Verändern der Position einer Farbe:
  Durch Verschieben mit der Maus oder Eingabe eines Wertes zwischen 0 und 10.000 im Feld "Position".
- Aktivieren einer Farbe:
  Durch Anklicken mit der Maus oder Betätigen der Knöpfe "<" und ">".
- Aktivieren mehrerer Farben:
  Durch Anklicken mit der Maus mit gedrückter Strg- bzw. Umschalttaste.
- Verändern einer Farbe:
  Durch Verschieben der Markierung im "Farb-Wähler" oder durch Eingabe des RGB-Wertes in die Felder "Rot", "Grün" und "Blau".
- Vertauschen aller Farben:
  Der Knopf "o>o" schiebt alle Farbwerte nach rechts, wobei die Position der Schieberegler erhalten bleibt, der Knopf "o<o" schiebt alle Farbwerte nach links.
- Ausrichten aller Farben:
  Der Knopf "o-o-o" richtet alle Regler so aus, daß sie gleichen Abstand zueinander haben.
- "Strecken" und "Stauchen":
  Wenn man einen Regler mit gedrückter Strg-Taste verschiebt, werden alle Abstände zwischen den Reglern gestreckt bzw. gestaucht.
- Farbverlauf-Voreinstellungen:
  Es gibt einige vorbelegte Farbverläufe, die man im Scroll-Bereich auswählen kann. Eigene Farbverläufe kann man mit den Schaltflächen "Laden" und "Speichern" archivieren und wiederverwenden.

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

- "Sofort testen":
  Wenn diese Checkbox aktiviert ist, werden alle Änderungen sofort auf dem aktuellen Bild ausgeführt. Wenn das Bild klein genug ist (oder der Computer schnell genug), kann man die Farben fast in Echtzeit ändern. Das führt häufig zu beeindruckenden Effekten.
- "Auf alle ausgewählten Bilder anwenden":
  Wenn man einen Zoom-Clip erzeugt hat, möchte man häufig die Farben einiger Bilder ändern, weil sie nicht zufriedenstellend sind. Mit dieser Checkbox kann man FCM anweisen, beim Verlassen des Dialogs alle selektierten Bilder in der Bilderliste in gleicher Weise zu verändern. Ihre verkleinerte Darstellung auf den Knöpfen in der Bilderliste wird allerdings nur dann angepaßt, wenn außerdem die Checkbox "Zeichne Buttons neu" aktiv ist, da dieser Vorgang einige Zeit beansprucht.
- Schaltflächen:
  Die Knöpfe haben dieselben Funktionen wie im Bild-Geometrie-Dialog, siehe oben.

## 10. Der Dialog "Animationsparameter"

Man erreicht den Dialog durch Menüpunkt "Animation/Parameter ...".
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 ...".
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:

- Man erzeugt eine Animation mit FCM wie oben beschrieben. Als Ergebnis hat man eine Anzahl von Bildern in der Bilderliste.
- Man exportiert alle diese Bilder mit Menüpunkt "Datei/Exportiere alle Bilder als ..." als BMP-, PNG- oder JPG-Dateien in einen leeren Ordner. Als Ergebnis liegen die Bilder (und nur diese Bilder) in dem Ordner auf der Festplatte.
- Man startet eine Software, die diese Bilder in ein Video kodiert. Als Ergebnis liegt die Animation als MPEG- oder AVI-Datei (oder in einem anderen Videoformat) vor.

Es gibt verschiedene kostenlose Programme, die einzelne Bilder in ein Video konvertieren können:

- MEncoder (http://www.mplayerhq.hu):
  Sehr leistungsfähiges Open-Source-Programm, umfangreiche Einstellmöglichkeiten, aber keine grafische Oberfläche.
- Bmp2Avi und pjBmp2Avi (http://www.divx-digest.com/software/bmp2avi.html):
  Kleine, einfach zu bedienende Programme von Paul Roberts; Bmp2Avi ist eine Konsolenanwendung, pjBmp2Avi hat eine grafische Oberfläche.
- PicToAvi (http://www.fractalizer.de):
  Kleines, einfach zu bedienendes Programm von Sven Kohn und Robert Sontheimer, das beim Fraktalgenerator "Fractalizer" mitgeliefert wird; kann leider keine Audio-Dateien einbinden.

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:

- Bereiten Sie einen kompletten Clip in kleinem Format vor, der vollständig in den Speicher paßt.
- Speichern Sie den Clip und löschen Sie dann die Bilderliste.
- Wenn Sie die Bilder beim Exportieren zwecks Qualitätsverbesserung herunterskalieren wollen, geben Sie im Dialog "Einstellungen" im Feld "Skaliere Bild beim Exportieren auf" z. B. einen Wert von 50 % ein.
- Stellen Sie im Dialog "Bild-Geometrie" ein großes Format ein, z. B. 1600 x 1200 Pixel.
- Öffnen Sie mit Menüpunkt "Datei/Neues Mandelbrot-Bild" ein Fenster in diesem Format.
- Klicken Sie dann auf Menüpunkt "Datei/Öffne Clip, aber exportiere jedes Bild als ...". Wählen Sie Ihren kleinformatigen Clip aus und geben Sie im zweiten Dateiauswahldialog den Namen des ersten zu exportierenden Bildes in der Form "xxx_0001.bmp" ein.
- FCM stellt fest, daß der Clip in einem anderen Format vorliegt, als das offene Fenster. Auf die Frage "Bild an Fenster anpassen?" antworten Sie mit "Ja".

=> 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:
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:
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.

Abb. B22: Farbverlauf "FCM", Farbenanzahl auf 63 reduziert | 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.
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 ...".
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:
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:
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| = a2+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| = 32 + 22 = 13 = 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:
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:
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

- Manchmal erscheint die "Kein Speicher mehr frei!"-Meldung nur auf der Konsole (die man nur sieht, wenn man FCM von der Kommandozeile aus startet) und nicht in einem Nachrichtendialog wie es sein sollte - anscheinend fange ich noch nicht alle Out-of-Memory-Ausnahmen ab.

## 2. Bekannte Unzulänglichkeiten

- Es gibt noch kein Undo.
- Die System-Zwischenablage wird noch nicht unterstützt.
- Mehrkern-Prozessoren werden nicht ausgenutzt.
- Ein Bug im Internet-Explorer 7 führt dazu, daß sich die Hilfe nicht an der richtigen Stelle, sondern immer am Anfang der HTML-Seite öffnet. Abhilfe: Installieren Sie z. B. Firefox und wählen sie ihn unter "Datei/Einstellungen ..." als Browser aus.

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

## 3. Änderungsliste

04.06.2006: V.0.80:

- Erste veröffentlichte Version.

02.07.2006: V.0.90:

- Automatische Animationen.
- Einige Änderungen in der Oberfläche.

06.08.2006: V.1.00:

- Deutsche Benutzeroberfläche verfügbar.
- Liste der Erscheinungsbilder (im Dialog "Einstellungen") wird jetzt dynamisch generiert; unter Linux gibt es jetzt daher zusätzlich noch das Look-and-Feel "GTK".
- Kleinere Bugfixes.

13.08.2006: V.1.10:

- Die Menüpunkte "Neustart in Deutsch" und "Neustart in Englisch" funktionieren jetzt auch unter Linux.
- Picken geht jetzt auch mit der Tastatur statt nur mit der Maus.
- Handhabung beim Zoomen verbessert.

31.01.2007: V.1.20:

- Der Bildausschnitt kann jetzt durch Ziehen des Bildes mit der Maus verschoben werden.
- Der VM kann der maximale Speicher für einen Neustart zugeteilt werden.
- Der aktuelle Speicherverbrauch kann im Programmfenster ausgegeben werden.

11.02.2007: V.1.30:

- Der Dialog "Bild-Geometrie" wurde mit JRE Version 1.6 nicht vollständig dargestellt und berechnete eigenmächtig die imaginären Grenzen neu, die Fehler sind jetzt behoben.
- Bilder und Clips können beim Laden eine andere Pixelgröße annehmen als sie beim Speichern hatten.
- Im Dialog "Einstellungen" kann man jetzt zusätzlich einen Schalter "Nachfragen beim Beenden von FCM" anwählen.

26.10.2008: V.2.00:

- Verschiedene Farbverläufe möglich.
- Farbverlaufseditor.
- Supersampling im Raum der Iterationen.
- Herunterskalieren der Bilder beim Export zur Qualitätsverbesserung (Antialiasing).
- Schlüsselbilder bei der Erzeugung von Animationen.
- Integration von MEncoder zur Erzeugung von AVI- und MPEG-Dateien.

20.03.2009: V.2.10:

- Neue Navigationskommandos "Gehe zu nächstem Schlüsselbild" und "Gehe zu vorherigem Schlüsselbild".
- FCM spielt einen Sound ab, wenn Operationen beendet werden.
- Der Stopp-Button funktioniert jetzt auch mit neueren Java-Runtime-Environments wieder zuverlässig.
- Wenn man unten in der Statusleiste auf die Bildgrenzen klickt, wird in allen offenen Fenstern ein Rahmen eingeblendet, der die Größe und Position des aktuellen Fensters anzeigt. Auf diese Weise kann man leicht den Ausschnitt eines Zooms in einem Übersichtsbild wiederfinden.
- Wenn man unten in der Statusleiste auf die Julia-Konstante eines Julia-Bildes klickt, wird in allen offenen Fenstern die Julia-Konstante des aktuellen Bildes angezeigt.
- Kleinere Fehlerkorrekturen.

5.2.2010: V.2.11:

- In der Drop-Down-Liste für den VM-Speicher im "Einstellungen"-Dialog gibt es jetzt Vorgabewerte bis 8 GB.
- Optimierung beim Laden von Clips: Nur die Farben werden neu berechnet, falls die anderen Bildparameter dieselben sind.
- Neuer Menüpunkt zum gleichzeitigen Laden und Exportieren der Bilder eines Clips.
- Neuer Menüpunkt "Anmation/Bildrate anpassen ..."; er erlaubt die komfortable Änderung der Bildrate für einen ganzen Clip.

27.2.2010: V.2.12:

- Für den neuen Menüpunkt "Datei/Öffne Clip, aber exportiere jedes Bild als ..." fehlte die deutsche Übersetzung.
- Die Dateidialoge schlagen jetzt eine Datei-Extension vor, wenn eindeutig möglich.

## 4. Andere Fraktalgeneratoren

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

- ChaosPro (www.chaospro.de):
  Äußerst umfangreiche Einstellmöglichkeiten, verschiedenste fraktale Algorithmen.
- Fractalizer (www.fractalizer.de):
  Erzeugt nur Mandelbrotmengen, von allen mir bekannten Programmen aber mit der besten Bildqualität.
- Fractint (spanky.triumf.ca/www/fractint/fractint.html):
  Der Klassiker schlechthin, Oberfläche heutzutage etwas gewöhnungsbedürftig, da textbasiert.
- XaoS (xaos.sf.net):
  Verschiedene fraktale Algorithmen, Zoom in die Bilder in Echtzeit!