CHAOSultd

Version 5.0m Version 5.0c 15.8.1992

von

Th. Morus Walter

Inhaltsverzeichnis

1 allgemeine Beschreibung und Leistungsfähigkeit 4

2 Copyright 5

3 Installation 5 3.1 benötigte Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 Lieferumfang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Danksagung 7

5 zur Geschichte von CHAOSultd V5.0 7 5.1 Vorgeschichte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5.2 CHAOSultd V5.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.3 Änderungen gegenüber FRACTAL 4.30 . . . . . . . . . . . . . . . . . . . . 9 5.4 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

6 Fehler 10 6.1 eliminierte Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.2 bekannte Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.3 unbekannte Fehler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6.4 Fehler in der Anleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7 zu dieser Anleitung 12

I CHAOSultd 14

1 Verwaltung von Bildern – der Desktop 14 1.1 Objekte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2 Objekt-Icon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3 Selektieren von Objekten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Scrollen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5 Infoleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.6 Speicher-Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.7 Bilder Packen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.8 Objekte löschen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 Bilder erzeugen 18 2.1 neue Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2 Weiterberechnen von Bildern . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Vier Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4 Neu berechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 Anzeigen 19

3.1 Bilder anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Block zeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Bildvergleich . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.4 Parameter anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5 Bildinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 Filme 23 4.1 Filme erzeugen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Filme ändern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3 Filme anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Input/Output 24 5.1 Speichern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.2 Laden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.3 Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6 Einstellungen 27 6.1 allgemeine Einstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 6.2 Druckereinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.3 Voreinstellung der Bildparameter . . . . . . . . . . . . . . . . . . . . . . . . 30

7 Besonderheiten der Farbversion 30 7.1 Auflösungswechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 7.2 Farbeinstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

8 Tastatur-Kommandos 32

9 Sonstiges 32

II die Fractal-Routinen 33

1 der Algorithmus 33

2 Parameter 33 2.1 benötigte Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.2 Eingabe der Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.3 Fractalbildfolgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4 3d Fractale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.5 freie Fractale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3 unterstützte Optionen 39 3.1 Parameter anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.2 Bild-Info anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3 Bilder anzeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4 Block zeigen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.5 neu berechnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.6 Vier Bilder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.7 Hardcopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

III Hüpfer 41

1 der Algorithmus 41 2 Parameter 41 3 unterstützte Routinen 42

IV Feigenbaum-Diagramme 43

1 Algorithmus 43 2 Parameter 43 3 unterstützte Routinen 43

V Dateiformate 45

1 CHAOSultd-Bilder 45 2 Filme 46 3 Einstellungen 47

VI die Schnittstelle für externe Routinen 48

1 Beschreibung der benötigten Routinen 48 1.1 allgemeine Angaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 1.2 Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

2 Beschreibung der von CHAOSultd zur Verfügung gestellten Routinen 55 2.1 Routinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.2 Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

3 Vorgehensweise 63

1 allgemeine Beschreibung und Leistungsfähigkeit

CHAOSultd V5.0 ist ein universelles Programm zur Erzeugung und Verwaltung fraktaler und chaotischer Bilder auf dem Atari ST. Ein paar Stichworte zum Funktionsumfang:

• Versionen für Farb- und Monochrom-Betrieb

im Farb-Betrieb läuft das Programm in mittlerer Auflösung, schaltet für die Darstellung von Bildern aber in niedrige Auflösung um

• Verwaltung von bis zu 9999 Bildern solange der Speicher reicht

durch Packen der Bilder sind bei 4 MByte Speicher bis zu mehreren hundert Bildern (in Screen-Größe) möglich

• drei Bildgrößen

• Berechnung von Bildfolgen, bei denen man nur Start- und Endwerte angibt

• Verwaltung von (beliebigen) Bildserien als Film

• umfangreiche Hardcopyfunktion für 24Nadel Matrixdrucker

• Erweiterbarkeit um eigene, externe Berechnungsroutinen

• Berechnungsroutinen für

– Fractale (einschließlich Mandelbrot- und Juliamengen)

∗ Schwarzweiß- und Graustufenbilder (in der SW-Version)

∗ eine schnelle Berechnung der Bilder (es gibt zugegebenermaßen auch noch etwas schnellere Apfelmännchenprogramme, aber CHAOSultd braucht sich auch in dieser Hinsicht nicht zu verstecken)

– (pseudo) dreidimensionale Fractale

– Fractale mit frei definierter Berechnungsformel (Pickovermengen)

– Hüpfer (nach Barry Martin)

– Feigenbaum-Diagramme

Bei der Implementierung der Berechnungsroutinen wurde insbesondere auf möglichst flexible Parametereingaben geachtet. Dadurch hat der Anwender bei der Bilderzeugung mehr Möglichkeiten als in anderen Programmen. Andererseits in CHAOSultd dadurch sicher nicht das einfachste Programm zur Erzeugung von fraktalen und chaotischen Bildern; an vielen Stellen ist es von Vorteil, wenn man eine Vorstellung von der Arbeitsweise des hinter den Bildern stehenden Algorithmus’ hat. Insofern richtet sich CHAOSultd auch nicht in erster Linie an Anfänger in Sachen Fraktale. Die Algorithmen werden zwar in der Anleitung kurz beschrieben, dabei werden aber teilweise mathematische Grundkenntnisse (z.B. komplexe Zahlen) vorausgesetzt. Trotz dieser Warnung ist natürlich jeder herzlich eingeladen, selbst festzustellen, ob er etwas mit dem Programm anfangen kann. Insbesondere sei hier noch auf die Beispiel-Bilder hingewiesen, von denen man ja bei eigenen Experimenten mit den vielen Parametern ausgehen kann.

2 Copyright

CHAOSultd V5.0 (c) 1992 by TMMW Th. Morus Walter! Th. Morus Walter Schulstr. 22 W-8401 Pentling Tel. 0941 949802 Dieses Programm ist Public Domain! Das Programm darf frei kopiert und weitergegeben werden, wobei aber alle in Abschnitt 3.2 genannten Dateien kopiert werden müssen. Komerzielle Nutzung ist ausgeschlossen, mit Ausnahme der für den Vertrieb von PD-Disketten üblichen Kopiergebüren.

Hinweis

Die Benutzung des Programmes geschieht auf eigene Gefahr. Der Autor garantiert weder für irgendwelche Schäden (am Rechner oder auch am Benutzer) noch für die korrekte Funktionsweise des Programmes. Insbesondere wird nicht garantiert, daß den erzeugten Bildern auch wirklich die beschriebenen Algorithmen zugrundeliegen, auch wenn ich natürlich davon ausgehe.

noch ein Hinweis

Nie wieder Krieg! Nie wieder Faschismus!

3 Installation

3.1 benötigte Hardware

CHAOSultd V5.0 sollte auf jedem Atari ST mit mindestens 1 MByte laufen (je mehr Speicher desto besser)^{1}. Das Programm greift direkt auf den Bildschirmspeicher zu und läuft deshalb nur in den Standartauflösungen, dabei ist CHS ULTD.PRG im Monochrombetrieb und CHS ULTC.PRG in der mittleren Auflösung zu verwenden (die Farbversion CHS ULTC schaltet dann allerdings zur Anzeige von Bildern in die geringe Auflösung). Grafikkarten irgendwelcher Art werden nicht unterstützt. Die Lauffähigkeit auf einem TT ist mir unbekannt (wenn mir einer einen TT schenkt, dann teste ich das ganze gerne), zumindest die Monochrom-Version sollte laufen (in der entsprechenden Auflösung). CHAOSultd V5.0 unterstützt beliebige Massenspeicher (ohne Festplatte dauert das Speichern natürlich länger) und 24-Nadel-Matrixdrucker. Andere Druckertypen werden (stark) eingeschränkt unterstützt.

1theoretisch läuft das Programm auch mit 512 kByte, sinnvoller Betrieb ist so aber kaum möglich

3.2 Lieferumfang

CHAOSultd umfasst die folgenden Dateien und Ordner:

CHS ULTD.PRG  das Programm für die hohe Auflösung
CHS ULTC.PRG  das Programm für die mittlere/geringe Auflösung

READ ME.TXT
CHS ULTD\

CHS ULTD.RSC die Resourcedatei für die hohe Auflösung
CHS ULTD.SET die Einstellungen für die hohe Auflösung
CHS ULTC.RSC die Resourcedatei für die mittlere Auflösung
CHS ULTC.SET die Einstellungen für die mittlere Auflösung
FEIGBAUM.XCH die (externen) Routinen für Feigenbaum-Diagramme

(nur hohe Auflösung)

FEIGBAUM.RSC deren Resource-Datei

ANLEITNG\

CHS ULTD.DVI die Anleitung im TEX Format
CHS ULTD.TXT und als ASCII-Text
CHS EXT.DVI die Programmieranleitung der Schnittstelle im TEX Format
CHS EXT.TXT  und als ASCII-Text
CHS ULTD.TOS die Anleitungen als Postscript-Datei

(selbstentpackendes Archiv)

BEISPIEL\  Ordner mit Beispielen (unberechnet)

SOURCEN\

FEIGBAUM.C  der Quelltext der Feigenbaum-Routinen
FEIGBAUM.RSC Resource-Datei
FEIGBAUM.DFN Definitions-Datei der Resourcen
FEIGBAUM.H  Header-Datei zu den Resourcen
XCOMMON.H  Header-Datei für die externen Routinen
GEM.H  Header-Datei mit GEM-Macros

3.3 Installation

Installieren im eigentlichen Sinne braucht man CHAOSultd nicht. Man kopiert einfach die Programm-Dateien CHS ULTD.PRG, CHS ULTC.PRG, sowie die Dateien im Ordner CHS UTLD auf eine Diskette bzw. in irgendeinen Ordner auf der Festplatte. Möchte man ausschließlich die sw-Version oder ausschließlich die Farb-Version verwenden, so kann man sich natürlich auf die entsprechenden Dateien beschränken. Wesentlich bei der Installation ist nur, daß sich die Resource-Dateien, die Parameterdateien (*.SET) und alle externen Berechnungsroutinen (bisher nur FEIGBAUM.XCH) relativ zu den Programmdateien in einem Ordner CHS ULTD befinden, da das Programm sie sonst nicht findet.

4 Danksagung

CHAOSultd V5.0 wurde im wesentlichen mit Hilfe folgender Programme entwickelt: • Pure C 1.0, PureDebugger

• Devpac Assembler

• Interface Resource Construction Set

• Tempus Editor

• Gemini (als Grundlage für alles andere)

• Lindner-TEX (für diese Anleitung)

besonderen Dank an

• Michael G.

für die Fließkommaroutinen der freidef. Fractale

und einige gefundene Fehler

5 zur Geschichte von CHAOSultd V5.0

Vorbemerkung: einige der folgenden Abschnitte sind sicher nur von begrenzten allgemeinem Interesse. Ich nehme mir aber die Freiheit sie trotzdem zu schreiben. Zumindest den Abschnitt 5.2 sollte man auch lesen.

5.1 Vorgeschichte

• CHAOSultd V5.0 ist der Nachfolger von FRACTAL 4.30

• FRACTAL 4.30 ist eine erweiterte Version von FRACTAL 4.10

• FRACTAL 4.10 ist der Nachfolger von FRACTALS 3.00

• FRACTALS 3.00 ist eine erweiterte Version von FRACTALS 2.20

• FRACTALS 2.20 ist der Nachfolger von APFELMÄNNCHEN 1.10

• APFELMÄNNCHEN 1.10 ist der Nachfolger von APFELMÄNNCHEN 1.00

• APFELMÄNNCHEN 1.00 ist das erste Apfelmännchenprogramm das ich für den ST geschrieben habe. Das Programm entstand im Herbst 1986, es hatte keine GEM-Umgebung aber GEM-Dialogboxen, die ich damals (in Ermangelung eines Resource-Construction-Sets) von Hand erstellt haben. Die Berechnung erfolgte in C und war ätzend langsam.

• APFELMÄNNCHEN 1.10 vom 13.1.87 erhielt dann eine GEM-Oberfläche mit Menü und Fenstern.

• Der nächste Schritt bestand in der Ersetzung der C-Routinen zur Berechnung durch schnelle Assembler-Routinen sowie in der Farbanpassung; außerdem wurden pseudodreidimensionale Fractale ermöglicht. Das Ergebnis war (mit verschollenen Zwischenschritten) FRACTALS 2.20 vom 8.2.88

• Für FRACTALS 3.00 vom 30.4.88 wurde die Berechnungsroutine und die anzugebenden Parameter verallgemeinert, um auch Julia-Mengen berechnen zu können.

• Der nächste große Schritt war dann FRACTAL 4.10 vom 25.8.90. Die Fenster zur Anzeige von Bildern wurden aufgegeben, das Programm kann dafür auf einem eigenen Desktop bis zu 88 Bildern verwalten. Zusätzlich wurde zur Erzeugung von Pickover-Mengen ein Formelcompiler eingebaut, so daß man Fractale mit frei definierter Berechnungsformel erzeugt werden können.

• Als nächster Schritt wurde für FRACTAL 4.30 vom 25.3.92 der Desktop sowie die Bild- und Speicherverwaltung für die Verwaltung von bis zu 9999 Bildern (soweit der Speicher dafür reicht) umgeschrieben

Soweit die Vorgänger von CHAOSultd V5.0 . Die Beschreibung der Features der einzelnen Programme ist natürlich rudimentär und soll lediglich den generellen Gang der Entwicklung bis hin zu CHAOSultd V5.0 beschreiben. Wie man sieht habe ich die Nummerierung der Versionen unabhängig von den variierenden Namen durchgezogen. Ein neuer Name wurde im Prinzip immer dann eingeführt, wenn sich die nächste ”Version“ wesentlich vom Vorgänger unterschied.

5.2 CHAOSultd V5.0

Wer FRACTAL 4.30 kennt und jetzt CHAOSultd V5.0 ausprobiert, wird sich vermutlich fragen, was denn in CHAOSultd V5.0 so neu ist, daß ich auch hier einen neuen Namen gewählt habe. Die Unterschiede sind nach außen und auf den ersten Blick in der Tat nicht sonderlich groß – mal abgesehen von den neuen Berechnungsroutinen für Hüpfer- und Feigenbaum-Diagramme. Der wesentliche Unterschied liegt im Inneren von CHAOSultd. In FRACTAL 4.30 waren die Routinen zur Parametereingabe, zur Berechnung und zur Anzeige von Bildparametern und Daten integraler Bestandteil des Programmes. Das Programm war als solche Einheit nur schwer durch neue Berechnugsroutinen zu erweitern, da ich dafür das Programm jedesmal komplett hätte umschreiben müssen. CHAOSultd zerfällt nun in zwei Bereiche: den Verwaltungsteil und die Berechnungsroutinen. Der Verwaltungsteil enthält alle Routinen zur Verwaltung der Bilder, zum Laden und Speichern, für Filme zum Anzeigen usw. Die Bildparameter werden zwar mitverwaltet, dieser Teil des Programmes kennt aber nur ihre Länge und kümmert sich nicht darum, was in den Bildparametern drinsteht. Zu den Berechnugsroutinen gehört neben der eigentlichen Bild-Berechnung die Eingabe und Anzeige von Bildparametern etc. Die beiden Bereiche sind weitgehend getrennt, der Verwaltungsteil kennt von den Berechnungsroutinen lediglich eine Daten-Struktur, in der einige Angaben wie Parameterlänge etc. festgelegt werden und in der die Adressen der verschiedenen Routinen stehen, über die sie der Verwaltungsteil, der ja auch die ganze Programmsteuerung über Menü, Tastatur und Desktop übernimmt, dann aufruft. Die Anzahl möglicher Berechnungsroutinen ist dabei variabel. Das ganze hat zweierlei Auswirkungen: zum einen kann ich als Autor neue Berechnungsroutinen ohne Änderungen am Verwaltungsprogramm aufnehmen, zum anderen ermöglicht diese Aufteilung eine Schnittstelle zu externen (von CHAOSultd nachgeladenen) Programmen, die dann ihrerseits zusätzliche Berechnungsroutinen und damit Bildtypen zur Verfügung stellen können. Für den Benutzer von CHAOSultd gibt es dabei keinen Unterschied zwischen internen (also von mir fest in das Programm eingebauten) und externen Routinen. Externe Berechnungsroutinen können im Prinzip von jedem Programmierer realisiert werden. Zu den Details der Schnittstelle siehe Teil VI dieser Anleitung.

5.3 Änderungen gegenüber FRACTAL 4.30

Neben einer Reihe eliminierter Fehler (vgl. 6.1) wurden – abgesehen von den immensen internen Änderungen und den neuen Routinen zur Berechnung von Bildern mit dem Hüpferund Feigenbaum-Algorithmus – einige Details geändert:

• CHAOSultd besitzt ein neues Dateiformat; ich hoffe es ist mir gelungen dieses so allgemein zu definieren, daß es für die Zukunft bestand hat. Bilder in FRACTAL-Formaten können weiter geladen werden – mit Ausnahme von nicht fertig berechneten 3d-Bildern.

• das Speicher-Info (via Klick auf die Info-Leiste) ist umfangreicher und informativer geworden

• die Einstellung der maximale Tiefe, die bei Punktinfos von Fractalen verwendet werden soll, ist der neuen Struktur zum Opfer gefallen. Statt dessen wird jetzt die maximale Tiefe des Bildes verwendet.

• Die Menüs haben sich geändert, die (scheinbar) weggefallenen Menüpunkte für das Voreinstellen der Parameter erreicht man durch SHIFT-Klick auf die Menüpunkte im Neu-Menü.

• für den Desktop sind einige neue Tastaturkommandos dazugekommen (vgl. I.1.3)

Die Liste ist vermutlich nicht vollständig, ich habe mal wieder nicht Buch geführt, was ich alles gemacht habe.

5.4 Ausblick

CHAOSultd ist entstanden, weil ich gewissermaßen den Ehrgeiz habe, das ultimative Fractal-Programm für den ST zu schreiben. Ich glaube nicht, daß ich das irgendwann schaffe, aber ich denke doch, daß CHAOSultd V5.0 einen Schritt in diese Richtung darstellt.

Wesentliche Einschränkungen in CHAOSultd V5.0 sind allerdings die fest vorgegebenen Bildgrößen und vor allem die Beschränkung auf ST-Standartauflösungen. Auch für künftiges Multitasking unter GEM ist CHAOSultd V5.0 durch den direkten Zugriff auf den Bildschirmspeicher natürlich nicht zu gebrauchen. Deshalb habe ich schon wieder gewisse Vorstellungen über einen Nachfolger für CHAOSultd V5.0 , der dann wohl CHAOSultd V6.x heißen wird und dann wieder voll in GEM eingebunden sein soll. Eine solche GEM-Einbindung hat allerdings, das muß man ganz klar sehen, auch ettliche Nachteile, insbesondere was die Anzeigegeschwindigkeit angeht. Auch ein Mischbetrieb MidRez/LowRez wie in der jetztigen Farbversion wäre nicht mehr möglich; da das Programm sicher nicht vollständig in LowRez laufen wird wäre auf einem Standart-ST nur noch Monochrom oder Vier-Farb-Betrieb möglich. Deshalb wird CHAOSultd V6.x die jetztige Version 5.0 sicher nicht ablösen, sondern neben deren Farb- und Monochrom-Version als Gem-Version koexistieren. Ob überhaupt und wenn, wann und wie es CHAOSultd V6.x geben wird ist aber in keiner Weise vorhersagbar! Ich werde deshalb auch keinerlei Anfragen nach CHAOSultd V6.x beantworten!

6 Fehler

”Programme laufen nicht“ lautet bekanntlich eine mögliche Formulierung von Murphy’s Gesetz für Programmierer. Nun am Ende der Programm-Entwicklung hat man es meist geschafft, diesen Satz im konkreten Einzelfall zu widerlegen (oder man hat kein Programm und braucht keine Anleitung zu schreiben) – jedenfalls mehr oder weniger. So ist es auch hier. Andererseits gibt es eine weitere, schwächere Folgerung aus Murphy’s Gesetz die besagt, daß jedes nicht-triviale Programm mindestens einen Fehler enthält. Mit an Sicherheit grenzender Wahrscheinlichkeit trifft dies auch hier zu. Für CHAOSultd V5.0 ergibt sich aus der langen Liste seiner Vorfahren ein weiteres Risko. Ich habe das Programm wie beschrieben mehrfach umgeschrieben, und dabei natürlich nicht jedesmal das ganze Programm neugeschrieben, sondern den vorhandenen Quelltext verwendet. Einerseits kann man auf diese Weise natürlich Fehler früherer Versionen eliminieren^{2}, was (siehe nächsten Abschnitt) durchaus auch passiert. Andererseits kann bei der Anpassung eines vorhanden Quelltextes besonders viel schiefgehen, womit wir bei Murphy’s Gesetz im Original wären: wo viel schiefgehen kann, geht auch viel schief. Bevor Sie jetzt entsetzt das Programm wegwerfen, sollten Sie sich überlegen, daß Sie das dann konsequenterweise mit allen anderen Programmen (einschließlich des Betriebssystems) auch tun müßten. Ich habe CHAOSultd V5.0 soweit möglich getestet und es läuft. Das Programm ist soweit möglich fehlertolerant, sollte also auch bei Fehlbedienung nicht gleich schlappmachen^{3}.

2wobei man allerdings mit der zu obigem Gesetz gehörenden Feststellung leben muß, daß das Entfernen eines Fehlers mindestens einen neuen Fehler nach sich zieht

3allerdings ist es bei Parametern von Berechnungsroutinen teilweise möglich ist, unsinnige Angaben zu machen, die nicht von der Eingaberoutine zurückgewiesen werden, dadurch aber auch nicht sinnvoll werden

6.1 eliminierte Fehler

Einige Fehler die sich noch in FRACTAL 4.3 befinden wurden von mir entdeckt und konnten in CHAOSultd V5.0 beseitigt werden (mit Ausnahme des ersten Fehlers sind sie ziemlich harmlos):

• verwendet man in der Abbruchbedingung (oder beim Punkte-Setzen) freier Fractale die Verknüpfung ’xor’, so stürzt FRACTAL 4.3 gnadenlos ab

• die Routine zum Speichern von GEM-Image-Dateien versagte, wenn man Bilder mit mehr als 255 gleichen Zeilen speicherte. Bei Fraktalen mit wenig berechneten Zeilen kann dies durchaus passieren, allerdings speichert man die gewöhnlich nicht als GEM-Image.

• kam es beim Laden von GEM-Image-Dateien zu Tos-Fehlern, so wurde dennoch ein Objekt erzeugt.

• ließ man sich in der Farb-Version die Fraktal-Parameter anzeigen und rief dann von den Parametern aus die Farb-Einstellung auf, so wurde nach Verlassen der Parameter-Dialogbox nicht mehr das Bild angezeigt, sondern die Farb-Einstellung, allerdings ohne Rasterzeilen-Interupt. Ließ man das nächste Bild anzeigen, so war wieder alles in Ordnung.

• rief man beim Anzeigen von Bildern bei eingeschalteter Farbanimation die Farb-Einstellung auf, so wurde die Animation nicht abgeschaltet. Da andererseits wegen des Rasterzeilen-Interupts zweimal pro Bildschirmfrequenz die Farbtabelle gesetzt wird, führte dies zu einem etwas lästigen Flackern.

• lädt man einen Film mit relativen Pfadangaben, so wurden Bilder die bereits im Speicher stehen nicht erkannt sondern nochmal geladen

6.2 bekannte Fehler

CHAOSultd V5.0 enthält gegenwärtig einen bekannten Fehler:^{4} Berechnet man freie Fractale und verwendet in der Abbruchbedingung die ’xor’- Verknüpfung (nein, Abstürzen tut CHAOSultd V5.0 nicht mehr dabei), so erhält man (total) unterschiedliche Ergebnisse, je nachdem ob man mit der schnellen oder der exakten Berechnung arbeitet. This is not a feature, this is a bug! Das Ganze hat vermutlich folgenden Hintergrund: die Routinen zur Berechnung freier Fractale ignorieren Fließkommafehler jeglicher Art, insbesondere auch Überläufe^{5}. Verwendet man nun die ’xor’-Verknüpfung, so wird die Berechnung nicht abgebrochen, falls beide Bedingungen erfüllt sind^{6}, so daß es leicht zu einem Überlauf kommen kann (das kann man sich im Debugger auch anschauen). Anscheinend reagieren die beiden verschiedenen Fließkomma-Routinen nun bei und nach dem Überlauf anders, so daß sich verschiedene Resultate ergeben. Dabei ist das Ergebnis der schnellen Berechnungsroutine dasjenige, das (logischen Überlegungen folgend, d.h. vielleicht) richtiger ist – richtiger insofern, als hier trotz der Fließkomma-Überläufe die Punkte als unendlich tief erscheinen.

4der Satz ist natürlich falsch formuliert; korrekt müßte man sagen:

von den Fehlern die CHAOSultd V5.0 enthält ist gegenwärtig einer bekannt

5als ich die Routinen geschrieben habe, bin ich davon ausgegangen, daß keine Fließkommafehler auftreten; eine aufwendige Behandlung der Fließkommafehler schien also überflüssig und würde nur Zeit kosten (beim Entwickeln der Routine wie beim Berechnen der Bilder); sie jetzt einzufügen ist mir im Moment zu viel Arbeit

6wenn man an dieser Stelle über den Sinn der Abbruchbedingung nachdenkt wird einem natürlich klar, daß ’xor’ hier a priori nicht besonders sinnvoll ist, aber der Vollständigkeit gehört es halt auch dazu

6.3 unbekannte Fehler

gibt es nach obigen allgemeinen Überlegungen sicherlich jede Menge. Ich hoffe, es treten wenigstens keine schwerwiegenden Fehler mehr auf. Kommt es bei der Benutzung von CHAOSultd zu irgendwelchen kritischen Situationen so empfehle ich die Bemerkung in der rechten oberen Bildschirmecke zu beherzigen. Sie wurde extra zu diesem Zweck dort installiert^{7}. Sollten Sie einen Fehler finden, so dürfen Sie ihn zunächst einmal behalten. Sollte der Fehler reproduzierbar sein, so wäre ich darüberhinaus für eine ausführliche Beschreibung des Fehlers und seiner Erzeugung dankbar (behalten dürfen Sie ihn natürlich trotzdem erst mal).

6.4 Fehler in der Anleitung

Die Anleitung soll das Programm beschreiben. Tut sie das an irgendeiner Stelle nicht, so irrt die Anleitung und nicht das Programm^{8}.

Für Druk-Feeler in Anleitung gilt die Devise: This is not a bug, this is a feature. Druckfehler in der Anleitung dienen der Auflockerung des Textes und sollen insbesondere denen, die sonst nichts verstehen, Gelegenheit zu Erfolgserlebnissen geben, wenn sie welche finden.

7 zu dieser Anleitung

Real programmers don’t read manuals heißt es, und ich mache das häufig genauso. Dennoch möchte ich an dieser Stelle jedem die Lektüre der Anleitung (auch wenn sie sehr lang geworden ist) nahelegen. Man sollte sie wenigstens mal überflogen haben, da das Programm zwar mehr oder weniger konsequent in GEM eingebunden ist, viele der Möglichkeiten und Details des Programmes aber nicht sofort ersichtlich sind. Die Anleitung ist – entsprechend der Modularität des Programmes – in mehrere Abschnitte aufgeteilt. Im ersten Abschnitt wird lediglich die allgemeine Benutzung des Verwaltungsteiles, im wesentlichen ohne konkreten Bezug auf irgendwelche Berechnungsroutinen, beschrieben. Die Beschreibung der Berechnungsroutinen für Fraktale, Hüpfer und Feigenbaumdiagramme folgt dann in den weiteren Abschnitten. Bei der Beschreibung von CHAOSultd V5.0 gehe ich im folgenden in etwa in der Reihenfolge vor, wie man sie auch bei der Benutzung des Programmes gebraucht. Da keine konkreten Bilderzeugungsroutinen beschrieben werden, sollte man eventuell parallel entsprechende Abschnitte der folgenden Teile lesen, wobei die Fractal-Routinen wohl am ausführlichsten beschrieben sind. Bei den anderen Routinen wird ihre Kenntnis teilweise vorausgesetzt. Auch ist es natürlich sinnvoll, die diversen Möglichkeiten gleich auszuprobieren; möglicherweise wird erst an Hand des Programmes selbst, klar, wie die eine oder andere Bemerkung in der Anleitung gemeint ist (sorry, aber noch ausführlicher kann ich das Programm wirklich nicht beschreiben).

7darüberhinaus soll diese Bemerkung natürlich zur Verbreitung von CHAOSultd beitragen, D. Adams zufolge ist sie dazu bestens geeignet

8an sich wäre es ja umgekehrt auch ganz nett, aber das Risiko ist mir zu groß, die Anleitung anzupassen ist in jedem Fall das kleinere Übel

Wird in der Anleitung auf Menüeinträge oder Texte von Button verwiesen, so sind diese in Sans Serif gesetzt. Tasten erscheinen in Typewriter. (Leser der ASCII-Version dieser Anleitung haben davon leider garnichts.)

Der letzte Teil dieser Anleitung beschreibt die Schnittstelle für externe Routinen. Da er somit nur für einen kleinen Teil der Anwender von CHAOSultd von Interesse ist (und doch etliche Seiten umfaßt) ist er in eine eigene Datei ausgelagert. Er erscheint allerdings vollständig im Inhaltsverzeichnis.

Die zugrundeliegenden Algorithmen und die sich daraus ergebenden Formen werden nur ansatzweise beschrieben. Ich möchte deshalb hier auf die einschlägige Literatur verweisen: die meisten Anregungen habe ich den Sonderheften Computerkurzweil I-IV der Zeitschrift Spektrum der Wissenschaft entnommen. Sie sind zwar soweit ich weiß einzeln nicht mehr erhältlich, dafür gemeinsam in Buchform. Dort finden sich auch weitere Literaturangaben. In einem Artikel in der ST-Computer (11/91) über Iterierte Funktionensysteme (eine Implementation für CHAOSultd ist in Arbeit wird aber noch etwas dauern) wird unter anderem noch auf die folgenden beiden Werke verwiesen: H.-O. Pleitgen, D. Saupe (Hrsg), The Science of Fractal Images, Springer Verlag 1988 Benoit B. Mandelbrot, Die fractale Geometrie der Natur, Birkhäuser 1987

Teil I

CHAOSultd

Das mit Abstand wichtigste an CHAOSultd ist die Bemerkung in der rechten oberen Bildschirm-Ecke. Man sollte sich beim Umgang mit diesem (und jedem anderen) Programm stets daran halten.

1 Verwaltung von Bildern – der Desktop

Zur Verwaltung von Bildern dient der Desktop von CHAOSultd. Er besteht aus der Infoleiste, vier Button zum Scrollen der Objekt-Icon und den Objekt-Icon selber.

1.1 Objekte

Mögliche Objekte sind

1. Fraktale

Unter Fraktalen verstehe ich alle Bilder, die durch irgendwelche Berechnugsroutinen in CHAOSultd erzeugt werden. Insofern ist die Bezeichnung Fraktale natürlich nicht ganz richtig, da solche Bilder nicht notwendig fraktal sein müssen^{9}.

Fraktale können drei verschiedene Bildgrößen haben: große Bilder haben Bildschirmgröße, mittlere Bilder sind etwa halb so groß (in der Fläche) und kleine Bilder entsprechen einem Viertel-Bildschirm.

2. Bilder

gemeint sind parameterlose Bilder, die entweder geladen oder nach Bildvergleich (siehe 3.3) erzeugt wurden

Bilder haben stets Bildschirmgröße

Bilder ohne Parameter sind hauptsächlich der Vollständigkeit halber integriert (etwa um sie in Filme als Titel aufnehmen zu können), sie spielen im folgenden kaum eine Rolle

3. Filme (siehe 4)

1.2 Objekt-Icon

Jedes im Speicher vorhandene Objekt wird auf dem Desktop durch ein Icon repräsentiert. Die verschiedenen Objekte werden durch verschiedene Icon dargestellt, verschiedene Fraktal-Typen besitzen ebenfalls verschiedene Icon. Neben dem Objekt-Typ kann man an den Icon noch eine Reihe weiterer Informationen über die von ihnen repräsentierten Objekte ablesen:

9Bisweilen ist in dieser Anleitung auch von Fractalen die Rede, gemeint sind dann speziell Bilder, die mit den eingebauten Routinen unter den Menüpunkten Fractal(e), freie Fract. und 3d Fractal(e) erzeugt wurden.

• noch nicht fertig berechnete Fraktale werden ohne Rahmen dargestellt, fertige Objekte mit (Bilder und Filme sind in diesem Sinne immer fertig, auch wenn dies bei Filmen nicht unbedingt logisch ist).

• die Bildgröße von Fraktalen wird durch einen Buchstaben (’K’, ’M’ und ’G’) angezeigt

• gespeicherte Objekte werden mit einem Haken markiert, neue oder geänderte Objekte haben keinen Haken

1.3 Selektieren von Objekten

Zum Selektieren (und Deselektieren) von Objekten stellt CHAOSultd eine Reihe von Möglichkeiten zur Verfügung:

• einfaches Anklicken eines Objektes ändert den Auswahlzustand (nicht selektierte Objekte werden selektiert, selektierte deselektiert)

• Doppelklick deselektiert alle Objekte; führt man den Doppelklick auf ein Objekt aus, so wird dieses anschließend selektiert (auf diese Weise kann man also genau ein Objekt selektieren)

• um mehrere, aufeinanderfolgende Objekte zu selektieren kann man das erste und das letzte Objekt der Folge mit gedrückter SHIFT-Taste anklicken (die Reihenfolge ist dabei egal)

• ein SHIFT-Klick auf einen Film führt zum Selektieren des Filmes und aller in ihm vorkommenden Bilder

Neben den Mauskommandos hat man noch eine Reihe von Tastaturkommandos zum Selektieren von Bilder: Mit den Tasten F1 bis F8 selektiert man eine Zeile (1 bis 8); wählt man dabei eine Zeile, die kein Objekt enthält, so wird die letzte nichtleerer Zeile eingestellt. Mit den Tasten 1 – 9, 0 und ß kann man dann die einzelnen Objekte dieser Zeile ansprechen, mit TAB die ganze Zeile; ESC wirkt auf alle Objekte (unabhängig der eingestellten Zeile). Die Taste BACKSPACE bezieht sich auf alle geänderten, aber nicht gespeicherten Objekte, DEL auf alle fertigen Bilder, ∼ auf alle nicht fertigen. Die Tasten . und - beziehen sich auf jedes zweite bzw. vierte Objekt^{10} Dabei wird das Objekt bzw. die Objekte bei normalem Tastendruck selektiert, mit SHIFT-Taste deselektiert, mit CONTROL geändert und mit ALT als einziges Objekt selektiert. Die Tastaturbefehle für das Desktop sind auch in einer Dialogbox zusammengefaßt, die man durch Drücken der HELP-Taste aufrufen kann.

1.4 Scrollen

Werden mehr als 88 Objekte erzeugt, so passen sie nicht mehr auf den Bildschirm. Man kann dann mit den Scrollbutton ’<’, ’<<’, ’>’ und ’>>’ das erste anzuzeigende Objekt bestimmen.

10damit kann man beispielsweise Bildfolgen teilweise berechnen lassen und so schon mal die Wirkung beurteilen

Dabei scrollt ’<’ und ’>’ je eine Zeile nach oben bzw. unten, ’<<’ und ’>>’ eine Seite; ein Doppelklick auf ’<’ bzw. ’<<’ oder ’>’ bzw. ’>>’ scrollt zur ersten oder letzten Zeile. Kann in eine der Richtungen nicht gescrollt werden, so sind die Button inaktiv und werden auch so dargestellt. Man kann die Icons auch via Tastatur verschieben. Dazu dienen die Tasten Cursor up und Cursor down, die ohne Sondertaste um eine Zeile, bei gleichzeitig gedrückter SHIFT-Taste um eine Seite verschieben, sowie bei gleichzeitig gedrückter CONTROL-Taste an den Anfang bzw. das Ende der Icons. Selektierte Objekte bleiben selektiert, auch wenn sie nicht mehr sichtbar sind. Es ist nicht möglich einzelne, nicht sichtbare Objekte zu selektieren oder deselektieren.

1.5 Infoleiste

In der Infoleiste werden einige mehr oder weniger interessante globale Informationen angezeigt:

• die Anzahl der Objekte im Speicher

• ihre Gesamt-Länge in Byte

• die Anzahl der selektierten Objekte

• der freie Speicher in Byte und in Prozent des Gesamt-Speichers

• die Nummer des ersten angezeigten Objektes

1.6 Speicher-Info

Klickt man die Infoleiste an, so erscheint eine Dialogbox mit Detailinformationen zur Speicherbelegung. In der ersten Zeile wird der Gesammtspeicher (für Objekte und Bilder) angezeigt. Es folgen Informationen über den belegten Speicher: zunächst dessen Größe in Byte und Prozent, sodann die Verteilung auf Objekt-Daten, Fraktal-Parameter, zusätzliche Fraktal-Parameter^{11} und Bilddaten. Angegeben werden zu jedem dieser Bereiche vier Werte (alle in Byte). Der erste Wert bezieht sich auf alle Objekte, der zweite auf die selektierten Objekte. Die beiden Werte in Klammern geben zusätzlich den durchschnittlichen Speicher pro Objekt (bzw. pro selektiertem Objekt) an. Unter diesen vier Bereichen wird die Summe des belegten Speichers angegeben. Sollte die Summe für alle Objekte jemals von dem (oben angegebenen) Wert des belegten Speichers abweichen, so ist irgendwas in der Speicherverwaltung schief gegangen. Ich kann nur hoffen, daß das nie passiert. Sollte es doch vorkommen, so empfielt es sich, alle Bilder zu speichern und das Programm neu zu starten.^{12} Als nächstes wird in der Dialogbox der freie Speicher angezeigt, wie der belegte Speicher in Byte und Prozent.

11CHAOSultd verwaltet für jedes Objekt zunächst mal Parameter, deren Länge nur vom Objekt-Typ abhängt; dies sind bei Fraktalen die Fraktal-Parameter. Sollen zusätzlich irgendwelche Informationen zu einem Objekt gespeichert werden, die variable Länge besitzen, so können diese als zusätzliche Parameter verwaltet werden

12es kann auch sein, daß eine externe Routine dauerhaft Speicher belegt hat, das geht zwar, sollten externe Routinen aber nicht machen; in diesem Fall ist natürlich unter Umständen noch alles in Ordnung

Unter dieser Angabe findet sich noch eine Abschätzung, für wieviele Bilder dieser Speicher reicht. Diese hängt natürlich davon ab, wieviel Speicher ein Bild benötigt, und dies hängt wieder von der Parameterlänge, der Bildgröße und – falls die Bilder gepackt werden – dem Packverhältnis ab. CHAOSultd gibt deshalb eine Reihe verschiedener Werte an. Bei durchschnittliche Bilder wird der durchschnittliche Wert der bisher geladenen Objekte (alle/selektierte Objekte) verwendet. Bei große, mittlere und kleine Bilder verwendet CHAOSultd den Durchschnittswert der Summe aus Objekt-, Parameter- und ext. Parameter-Länge plus die Länge der ungepackten Bilddaten. Ok verläßt die Box ganz normal, mit dem Button GarbColl kann man eine Garbage-Collection erzwingen, also ein Sammeln unbelegter Speicherblöcke. CHAOSultd führt ein Garbage-Collection ansonsten immer dann durch, wenn es nötig ist, so daß diese Option an sich eher überflüssig ist^{13}. Die Durchführung einer Garbage-Collection dauert, je nach Speichergröße und Anzahl der Objekte ein paar Sekunden, sie wird nicht (wie etwa in Tempus) durch einen Dialog angezeigt; ist der Gong eingeschaltet (und der Lautstärkeregler des Monitors nicht auf Null) so werden vor der Garbage-Collection drei Gongs ausgegeben.

1.7 Bilder Packen

CHAOSultd ist beim Verwalten der Bilddaten recht sparsam: wurde ein Bild noch überhaupt nicht berechnet, so werden auch keine Bilddaten verwaltet; bei teilweise berechneten Bildern, bei denen dies möglich ist, wird nur für den berechneten Bildteil Speicher belegt (Vorraussetzung ist, daß die Bilder wie normale Fractale rasterartig von oben nach unten berechnet werden). Darüberhinaus kann CHAOSultd die Bilddaten packen (nach dem gleichen Algorithmus, der auch beim Speichern verwendet wird, vgl. V.1). Die Speicherplatzersparnis hängt natürlich vom Bildinhalt ab, kann aber leicht 2/3 und mehr erreichen. Das Packen von Bildern führt allerdings auch dazu, daß die Bilder nicht mehr mit der gleichen Geschwindigkeit angezeigt werden können wie nicht gepackte Bilder. Ein- und ausschalten kann man dieses Packen durch den Menüpunkt Bilder packen im Datei-Menü. Klickt man ihn mit gedrückter SHIFT-Taste an, so wird zwischen Packen und Nicht-packen der neu anzulegenden Bilder (bestehende werden nicht verändert) gewechselt. Sollen die neuen Bilder gepackt werden, so wird dies durch einen Haken im Menüpunkt angezeigt. Klickt man den Menüpunkt normal (also ohne SHIFT-Taste) an, so wird eine Dialogbox aufgerufen, in der erstens angezeigt wird, wieviele Bilder gepackt oder nicht gepackt sind, wie lang deren Bilddaten sind und wie lang die gepackten Bilder entpackt wären. Angegeben werden nur die Bilddaten, diese sind kürzer als die Gesamtdaten des Objektes, da für das Objekt ja auch noch Parameter verwaltet werden^{14}. Außerdem wird die sich daraus ergebende Packrate (die Länge der gepackten Bilder bezogen auf die Länge der ungepackten Daten in Prozent) sowie der freie Speicher angezeigt. Zweitens kann man in dieser Dialogbox zwischen packen und nicht-packen der neuen Bilder (wie mit SHIFT-Klick auf den Menüpunkt) wechseln.

13ich brauche sie aber zum Testen ob die Speicherverwaltung nach einer Garbage-Collection kollabiert oder nicht

14daß sie auch kürzer sind als bei Speicher-Info angegeben liegt daran, daß Speicher-Info die 8 Byte die für die Speicherverwaltung gebraucht werden mitzählt, Packen nicht

Drittens ermöglicht diese Dialogbox das Packen oder Entpacken bereits bestehender Bilder. Dazu stellt man mit den Button in den beiden mit ändern bezeichneten Zeilen ein, ob die Bilder ge- oder entpackt werden sollen, sowie ob sich die Operation auf alle oder nur auf die selektierten Bilder beziehen soll, und verläßt dann die Dialogbox mit dem Button ändern (dabei wird gleichzeitig die Einstellung für neue Bilder übernommen).

1.8 Objekte löschen

Möchte man Objekte löschen, so selektiert man diese und klickt anschließend den Menüpunkt Objekte löschen im Datei-Menü an. Nach einer eventuellen Warnung (vgl. Einstellungen, 6.1) werden die Objekte gelöscht. Es ist nicht möglich, ein Bild, das in einem Film vorkommt zu löschen, ohne auch den Film zu löschen. Sollte man dies versuchen, so weist eine Dialogbox, in der der Name des betroffenen Filmes angezeigt wird, darauf hin, und man kann wählen, ob man das Löschen ganz abbrechen will, ob der Film mitgelöscht werden soll, oder ob man den Film erhalten will, im letzten Fall werden alle Bilder, die in dem Film vorkommen vom Löschen ausgenommen.

2 Bilder erzeugen

2.1 neue Bilder

Zur Erzeugung neuer Bildern dienen die Menüpunkte des Menüs Neu. Dieses Menü ist variabel, seine Einträge und deren Zahl hängen von den zur Verfügung stehenden internen (zur Zeit vier) und externen Berechnungsroutinen ab. Klickt man einen Menüpunkt (ohne gleichzeitig gedrückte SHIFT- oder CONTROL-Taste, vgl. 6.3) an, so kann man in einer Dialogbox die Parameter für den gewählten Bildtyp eingeben. Anschließend wird das oder die Bilder erzeugt. Erzeugt man Bildfolgen, so werden die Bild-Namen durch Anhängen einer Nummer (mit der nötigen Anzahl von Stellen) erzeugt. Dabei kann der in den Paramtern angegebene Name unter Umständen gekürzt werden. Die Erzeugung von Bildern läßt sich durch Drücken der ESC-Taste unterbrechen^{15}. Werden mehrere Bilder (Bildfolgen) berechnet, so beendet ESC nur die gerade aktulle Berechnung. Drückt man zusätzlich SHIFT, so wird die Berechnung auch für alle folgenden Bilder abgebrochen, für diese Bilder wird aber noch ein Bildobjekt erzeugt, so daß die Berechnung später erfolgen kann. Drückt man zusätzlich zu ESC die ALTERNATE-Taste, so wird die Berechnung ganz abgebrochen und keine Bildobjekte mehr erzeugt.

2.2 Weiterberechnen von Bildern

Bilder, die noch nicht fertig berechnet wurden, können durch Anklicken von Weiter bzw. Alles Weiter im Menü Weiter weiterberechnet werden. Bei Weiter werden nur selektierte Bilder erfaßt, bei Alles Weiter alle Bilder. Die Berechnung kann wie bei Neu abgebrochen werden.

15an dieser und vielen anderen Stellen wird immer vorrausgesetzt, daß sich der Programmierer der Berechnungsroutinen an die vorgesehenen Programmier-Richtlinien gehalten hat

Ist ein Algorithmus nicht in der Lage ein Bild nach Berechnungsabbruch weiterzuberechnen, so kann er bei Berechnungsabbruch das Bild für fertig erklären; Weiter läßt sich in diesem Fall natürlich nicht mehr verwenden.

2.3 Vier Bilder

Zu jedem selektierten Bild werden vier Bilder erzeugt, die aneinandergesetzt dem ursprünglichen Bild mit doppelter Auflösung entsprechen^{16}. Die Bilder können dann mit der Hardcopyroutine (in der sw-Version) aneinander-gedruckt werden (vgl. 5.3).

2.4 Neu berechnen

Dieser Menüpunkt dient dazu, Bilder mit teilweise geänderten Parametern neu zu berechnen. Beispielsweise wenn man eine Serie von Apfelmännchen mit Graustufen berechnet hat, und sie jetzt Schwarz-Weiß haben möchte. Nach Aufruf der Funktion muß man zunächst angeben, ob die Bilder überschrieben werden oder ob neue Bilder angelegt werden sollen. Dann wird für alle Bildtypen der selektierten Bilder, die die Funktion unterstützen^{17}, eine Dialogbox angezeigt, in der die zu ändernden Parameter und ihre neuen Werte eingeben werden können. Verläßt man eine solche Dialogbox mit Abbruch, so werden die Bilder dieses Types nicht neu berechnet, die Funktion wird aber nicht insgesamt abgebrochen. Nach Eingabe der zu ändernden Parameter werden die Bilder mit den geänderten Parametern (soweit nötig) neu berechnet. Werden die Bilder neu erzeugt und nicht überschrieben, so wird der neue Name aus dem Alten durch Anhängen von N (unter Verlängerung des Namens auf 8 Zeichen) gebildet, falls der alte Name kürzer als 8 Zeichen ist. Ansonsten wird der letzte Buchstabe hochgezählt (also aus A wird B, aus B C usw.; Z wird zu 0 und 9 zu A). Damit sollte der Fall, daß sich der neue Name nicht vom Alten unterscheidet nicht mehr auftreten (bei Bildfolgen kann er natürlich mit dem Namen des nächsten Bildes in der Folge übereinstimmen). Auch daß der neue Name unter anderen geladenen Objekten oder auf Diskette schon existiert, kann natürlich nicht ausgeschlossen werden.

3 Anzeigen

3.1 Bilder anzeigen

Mit den Menüpunkten Bilder anzeigen und alle Bilder im Menü Zeigen kann man sich die selektierten bzw. alle vorhandenen Bilder anzeigen lassen.

Anzeige-Modi und Optionen

CHAOSultd besitzt im großen und ganzen zwei Anzeigemodi: im einen wird nach jedem Bild auf einen Tastendruck gewartet, bevor das nächste Bild angezeigt wird, im anderen wartet CHAOSultd eine bestimmte (natürlich einstellbare) Zeitspanne, und stellt dann das nächste Bild dar.

16diese Routine ist wie viele andere, bei denen ich dies nicht mehr unbedingt angeben werde, optional, d.h. eine Berechnungsroutine muß diese Möglichkeit nicht zur Verfügung stellen

17möglicherweise auch – wie bei Fractalen, s.u. – für mehrere Bildtypen gemeinsam

Einstellen lassen sich diese Anzeigemodi zusammen mit weiteren Parametern unter dem Menüpunkt Optionen. Dort kann man zunächst den Anzeigemodus mit Warten auf Taste und Kontinuierlich einstellen. Darunter kann man die Wartezeiten für ein Bild und am Ende der angezeigten Bilder einstellen, wobei man die Zeiten sowohl numerisch (in ms)^{18} wie auch mit Hilfe eines Sliders wählen kann (dabei dient das Anklicken des grauen Balkens nicht zum Verschieben des Sliders, sondern der Slider wird entsprechend des als Text angezeigten Wertes gesetzt). Anmerkung: zusätzlich zu dieser Wartezeit kommt noch die Zeit die benötigt wird, um das nächste Bild darzustellen. Bei ungepackten Bilder spielt sie kaum eine Rolle, bei gepackten schon, da das Entpacken eben länger dauert. Die Wartezeit selber kann aus technischen Gründen leider nicht zum Entpacken genutzt werden. Die Wartezeit muß mindestens auf 20 ms gesetzt werden, da es sonst zu Bildschirmflackern kommt, gibt man kleinere Zeiten an, so wird die Wartezeit automatisch auf diesen Wert gesetzt. Desweiteren kann man noch einstellen, ob die Bilder nur einmal oder wiederholt angezeigt werden sollen (nur dann findet die Wartezeit am Anzeigeende Verwendung), und ob im zweiten Fall dann wieder mit dem ersten Bild angefangen werden soll (’− > − >’) oder ob die Bilder abwechselnd vor- und rückwärts durchgegangen werden sollen (’− > < −’).

Bilder anzeigen

Auch wärend des Anzeigens von Bildern gibt es eine Reihe von Möglichkeiten; diese werden alle über die Tastatur aufgerufen. Allerdings arbeiten diese Tastaturkommandos mit zwei Ausnahmen nur im ’warte’-Modus. Deshalb (und das ist die erste Ausnahme) kann aus dem kontinuierlichem Anzeigen mit der SPACE-Taste in den ’warte’-Modus umgeschaltet werden. Ebenfalls mit der SPACE-Taste kommt man auch wieder zurück zum kontinuierlichem Anzeigen. Die zweite Ausnahme ist die ESC-Taste, mit ihr wird das Anzeigen beendet. Ansonsten stehen die folgenden Tastaturkommandos zur Verfügung: Mit der SPACE-Taste (im ’warte’-Modus) wird das nächste Bild angezeigt (oder vgl. oben in den kontinuierlichen Modus zurückgeschaltet), die gleiche Wirkung haben die Tasten RETURN und ENTER – allerdings ohne daß hier zurückgeschaltet wird wenn man den kontinuierlichen Modus via SPACE unterbrochen hat. Mit der BACKSPACE-Taste kann man das vorige Bild anzeigen lassen. Die Taste O (es ist jeweils auch der entsprechende Kleinbuchstabe möglich) ruft die Anzeige-Optionen auf, so daß man die Anzeigeparameter verändern kann. Anmerkung: befindet man sich eigentlich im kontinuierlichem Modus, der dann auch in der Optionsbox eingestellt ist, oder stellt man diesen ein, so wird er nach dem Verlassen der Box sofort, und nicht erst nach Drücken der SPACE-Taste aktiviert. Mit der Taste F kann man die Farben des Bildes einstellen:

• in der sw-Version wird einfach zwischen normal und invers gewechselt. Die Einstellung wird nicht in die Bildparameter übernommen, d.h. wenn man ein Bild weiterschaltet und dann zurück wird wieder die ursprüngliche Farbeinstellung gesetzt. Um die Farbe auch in den Parametern umzuschalten kann man mit P die Bildparameter aufrufen und die Farbe dort ändern (sofern die Berechnungsroutinen dies unterstüzten).

18aus technischen Gründen nur in 5 ms Schritten, ist der Wert nicht durch 5 teilbar wird er abgerundet

• in der Farb-Version wird die Einstellung der Farben aufgefrufen; hier werden die Farben in die Bildparameter übernommen (Eigentlich nicht ganz konsistent, Farb- und sw-Version sollten sich natürlich soweit möglich gleich verhalten, aber was solls).

• In der Farb-Version hat man zusätzlich die Möglichkeit mit den Tasten 1 – 0, ß und ' die zwölf voreinstellbaren Farbtabellen aufzurufen. Diese werden nicht in die Parameter übernommen.

Ebenfalls nur in der Farb-Version verfügbar ist die Farbanimation, die mit der Taste A aufgerufen wird. Dabei kann man die Richtung, die betroffenen Farben (kleinste und größte Farbnummer) sowie die Geschwindigkeit angeben. Letztere wird durch die Anzahl der VBLs (50 oder 60 pro Sekunde) festgelegt, die zwischen zwei Animationsschritten gewartet werden soll. CHAOSultd wechselt dann zyklisch die Farben, bis die Animation beendet wird (durch erneuten Aufruf und Verlassen der Dialogbox mit Ende oder Beenden des Bilder anzeigen). Die Animation wird unterbrochen, wenn eine Dialogbox oder eine Koordinatenanzeige aufgerufen wird, sie wird anschließend fortgesetzt. Mit der UNDO-Taste kann man veränderte, nicht in die Parameter übernommene Farbtabellen zurücksetzen. Die Verfügbarkeit der folgenden Optionen ist – wie ja fast alles in CHAOSultd – immer von den Berechnungsroutinen abhängig; das gleiche gilt, falls es sie gibt, für die Details ihrer Realisierung. Mit der Taste P kann man sich die Bildparameter (vgl. 3.4) und mit I das Bildinfo (vgl. 3.5) anzeigen lassen. Mit der Taste S kann man sich eine Information über einen bestimmten Punkt anzeigen lassen. Dazu klickt man mit der Maus den gewünschten Punkt an und es erscheint dann eine Dialogbox, in der Informationen zu diesem Punkt angezeigt werden. Mit der Taste C kann man sich die Koordinaten einer Konstanten der Bildparameter durch ein Fadenkreuz anzeigen lassen, natürlich nur wenn die Konstante im Bildausschnitt liegt. Was das für eine Konstante ist hängt natürlich vom Bildtyp und den Berechnungsroutinen ab. Die Taste K schaltet eine Anzeige der Bildschirm- und Bildkoordinaten der aktuellen Mausposition links oben im Bild ein. Als weitere Tastaturfunktion kann man sich mit der Taste D oder H (D wie Drucker oder H wie Hardcopy) eine Hardcopy des angezeigten Bildes ausdrucken lassen. Einzelheiten siehe 5.3. Zu guter Letzt kann man sich mit der Taste HELP eine Kurzübersicht der Tastaturbefehle anzeigen lassen, damit man sich nicht alle Befehle merken muß. Dabei werden für das momentan angezeigte Bild nicht unterstützte Möglichkeiten grau dargestellt.

3.2 Block zeigen

Mit der Funktion Block zeigen kann man sich anzeigen lassen, welchen Ausschnitt eines Bildes ein anderes darstellt. Dabei gibt es allerdings einige Einschränkungen zu beachten: Block zeigen bezieht sich immer auf zwei Bilder. Dabei muß das eine Bild vollständig im anderen enthalten sein, teilweise Überlappung wird nicht angezeigt. Außerdem können nicht bei allen Bildtypen Blöcke angezeigt werden, wie etwa bei 3d Fraktalen.

Stellt CHAOSultd nach Anklicken von Block zeigen fest, daß ein Bild im anderen enthalten ist, so zeigt es das ’Mutter’-Bild an und markiert den Ausschnitt, den das andere Bild darstellt, durch einen Rahmen. Andernfalls erscheint eine Dialogbox, die auf die Unmöglichkeit einen Block anzuzeigen hinweist. Anmerkung: Auch wenn ein Bild als Ausschnitt eines anderen angezeigt wird, muß es sich dabei nicht um eine Vergrößerung des angezeigten Ausschnittes handlen, bei den beiden Bildern können ja andere Parameter unterschiedlich eingestellt sein, es können auch um ganz verschiedene Bildtypen sein.

3.3 Bildvergleich

Die Funktion Bildvergleich dient vor allem dem exakten Test zweier (oder mehrerer Bilder) auf Gleichheit, ist jedoch allgemeiner gehalten. Mit dieser Funktion lassen sich mehrere Bilder logisch miteinander Verknüpfen. Dabei hat man die Wahl zwischen or, and und xor (eXclusive OR). Die gewünschte Verknüpfung kann in einer Dialogbox ausgewählt werden, die nach Anklicken von Bildvergleich zunächst erscheint. Anschließend wird das Resultat der entsprechenden Verknüpfung aller selektierten Bilder angezeigt. Diese Anzeige kann man wie üblich mit ESC verlassen, oder aber mit M, wobei dann das angezeigte Bild in ein Bildobjekt, also ohne Parameterdaten, übernommen wird. Wie kann man nun mit dieser Funktion zwei Bilder vergleichen? Ganz einfach: man wählt als Verknüpfung xor, dann werden nur die Punkte gesetzt, in denen sich Bild 1 von Bild 2 unterscheidet. Dadurch kann man alle Unterschiede zwischen den Bildern sehr schnell erkennen, etwa um zu Überprüfen, wieweit die schnelle von der genauen Berechnungsroutine abweicht oder welchen Einfluß eine geringfügige Änderung eines Parameters auf das Gesammtbild hat. Anmerkung: In Farbe werden weiterhin die Bits des Bildschirmspeichers miteinander verknüpft. Da hier die Farbe eines Punktes aber nicht von einem einzelnen Bit sondern von vieren bestimmt wird, ist das Ergebnis unter Umständen etwas verwirrend; es gilt aber immer noch: bei Verknüpfung mit xor sind nur solche Punkte gesetzt, die sich in beiden Bildern unterscheiden (wobei die Farbtabelle aber keine Rolle spielt, als Farbtabelle wird die des ersten Bildes verwendet).

3.4 Parameter anzeigen

Mit der Funktion Parameter anzeigen lassen sich die Parameter eines Fraktals, eines Bildes oder eines Filmes anzeigen. Diese Funktion läßt sich nur aufrufen wenn genau ein Object selektiert ist. Welche Parameter bei Fraktalen angezeigt werden ist Sache der Berechnungsroutinen. Bei Bildern werden nur Bildname und Pfad sowie in der sw-Version die Darstellungsweise (normal oder invers), bei Filmen zusätzlich zu Pfad und Namen die Anzahl der Bilder angezeigt. Nähere Erläuterungen zu den Datei- und Pfadnamen siehe bei den IO Funktionen (vgl. 5).

3.5 Bildinfo

Um sich über Berechnungszeiten, Berechnungsaufwand und Bildgrößen zu informieren ist die Funktion Bildinfo anzeigen gedacht (allerdings erst nach der Berechnung, vorher ist das im allgemeinen nicht möglich).

Die Funktion bezieht sich prinzipiell nur auf Fraktale und nur auf selektierte Bilder. Ist genau ein Fraktal selektiert, so kann die Berechnungsroutine für das Bild eine detaillierte Info-Box ausgeben, die dann natürlich von der Berechnugsroutine abhängt. Stellt die Berechnungsroutine eine solche Funktion nicht zur Verfügung unterstützt aber die Ausgabe von Bildinfos^{19} oder sind mehrere Bilder selektiert, so wird eine Info-Box angezeigt, in der die Anzahl der Bildpunkte, die Zahl der berechneten Iterationen^{20} sowie die benötigte Rechenzeit – insgesamt und pro Punkt bzw. Iteration – ausgegeben wird.

4 Filme

Filme in CHAOSultd sind einfach eine Liste von Bildern. Sie können zum Beispiel zur Verknüpfung mehrerer Bilderfolgen oder zum Festlegen der Reihenfolge, in der diverse Bilder angezeigt werden sollen, dienen. Filme können maximal 9999 Bilder enthalten, im Allgemeinen sollte das reichen.

4.1 Filme erzeugen

Mit dem Menüpunkt Film erzeugen im Menü Weiter^{21} kann man neue Filme erzeugen, was allerdings nur möglich ist, wenn wenigstens ein Bild vorhanden ist. Es erscheint zunächst eine Dialogbox, in der der (nichtleere) Name des Films eingegeben werden muß. Anschließend landet man im Filmeditor. Im oberen Teil des Bildschirms wird das aktuelle Bild angezeigt, unten befinden sich eine Infozeile und zwei Zeilen mit Kommandobutton, die man mit der Maus anklicken kann. In der Infozeile stehen (von links nach rechts) der Filmname, die Anzahl der Bilder im Film, die Nummer und der Name des Bildes, das gerade angezeigt wird (gemeint ist die Nummer im Film, nicht die auf dem Desktop) sowie der restliche freie Speicher. In der oberen Kommandozeile gibt es die folgenden Kommandos: Zeigen enspricht der Funktion Film zeigen im Pulldownmenü, der Film wird angezeigt (vgl. 4.3). Die Button < − und − > dienen zum Blättern im Film. Ein Einfachklick schaltet ein Bild weiter (− >) oder zurück (< −), Doppelklick schaltet an den Filmanfang oder an das Ende. Gewissermaßen vor dem Filmanfang mit Bild 1 wird noch ein (stets leeres) Bild Null verwaltet, beim Einfügen von Bildern werden diese nämlich nach dem aktuellen Bild eingefügt, um also ein neues Bild 1 einzufügen muß man auf Bild Null schalten. Womit wir beim nächsten Punkt wären, dem Einfügen von Bildern. Dazu dient der Button Einfügen. Klickt man ihn an, so wird der Desktop angezeigt, und man kann das oder die Bilder angeben, die eingefügt werden sollen. Einzelne Bilder klickt man einfach an, darüberhinaus kann man aber auch durch shift-Klick (wie beim Selektieren mehrerer Bilder) mehrere aufeinanderfolgende Bilder in den Film übernehmen, wobei die Reihenfolge der beiden Mausklicks berücksichtigt wird. Doppelklick neben ein Bild bricht die Funktion ab, ohne ein Bild in den Film aufzunehmen.

19indem sie dem Verwaltungsteil Informationen über Berechnungszeit sowie Iterations- und Punktanzahl zur Verfügung stellt

20was im einzelnen unter einer Iteration zu verstehen ist liegt bei der Berechnungsroutine; korrekter wäre vieleicht auch die Bezeichnung Berechnungsschritte – nicht alle Routinen sind iterativ

21das Weiter-Menü war mal Bestandteil des Neu-Menüs, was aber wegen der variablen Anzahl der Einträge im Neu-Menü nicht mehr möglich ist, der Name Weiter für diese Menü ist nicht sonderlich passend, mir fiel aber kein besserer ein

Achtung! Zum Scrollen auf dem Desktop stehen an dieser Stelle nur die Button, nicht aber die Tastatur-Kommandos zur Verfügung. Die gegenteilige Wirkung, nämlich das Löschen von Bildern übernimmt der Button Löschen. Mit ihm wird das aktuelle Bild aus dem Film gelöscht. Mit dem nächsten Button Optionen kann man die Anzeigeoptionen des Films einstellen. Sie entsprechen den Optionen beim Anzeigen von Bildern, jeder Film verwaltet allerdings eigene Optionen (die beim Erzeugen des Filmes mit den gerade eingestellten Anzeigeoptionen für Bilder vorbelegt werden). Der letzte Button in der oberen Zeile, Beenden dient (na was wohl) zum Verlassen des Filmeditors. In der unteren Kommandozeile befinden sich die Button für die Blockfunktionen. Mit Einfachklick auf Start und Ende kann man Blockanfang und -ende festlegen, wobei Start natürlich vor Ende liegen muß. Sind die Blockmarken gesetzt und die jeweiligen Bilder als aktuelles Bild eingestellt, so erscheinen diese Button invers; mit Doppelklick auf Start oder Ende kann man zu der entsprechenden Marke springen. Es folgen die Blockkommandos Copy, Move und Delete, die sich wohl selbst erklären. Das Kommando Reverse dreht die Reihenfolge der Bilder eines Blockes um.

4.2 Filme ändern

Selbstverständlich läßt sich ein einmal erzeugter Film jederzeit ändern. Dazu selektiert man den Film und wählt Film ändern. Es wird der Filmeditor aufgerufen und es weiter wie beim Erstellen eines Filmes.

4.3 Filme anzeigen

Mit dem Menüpunkt Film im Menü Zeigen kann man einen Film anzeigen, wenn genau ein Film selektiert ist. Beim Anzeigen eines Filmes gibt es die selben Möglichkeiten wie beim Anzeigen von Bildern. Zu Beachten ist höchstens, daß jeder Film seine eigenen Anzeigeoptionen verwaltet.

5 Input/Output

5.1 Speichern

Mit den Menüpunkten Speichern und Speichern ... kann man Objekte abspeichern. Für Fraktale und Filme gibt es eigene Dateiformate (vgl. Teil V), Bilder können im Screen-Format (Doodle), im (ungepackten) Degas-Format, im Stad-Format und im GEM-Image-Format (Snapshot-Format) gespeichert werden; das Stad-Format gibt es nur in der sw-Version (es gibt nun mal kein farbiges Stadformat). Fraktale lassen sich ebenfalls in diesen Bildformaten speichern, dabei werden aber die Bild-Parameter nicht mit abgespeichert, so daß als Bild gespeicherte Fraktale nicht als gespeichert betrachtet und gekennzeichnet werden. Speichern und Speichern ... beziehen sich natürlich auf alle gerade selektierten Objekte. Dabei werden Filme allerdings als letztes bearbeitet, da sich Filme nur speichern lassen, wenn alle in ihnen enthaltenen Bilder gespeichert wurden.

Speichern ... unterscheidet sich von Speichern dadurch, daß man zunächst in der Fileselectorbox ein Dateipfad und optional ein Extension angeben kann. Der Pfad wird dann zum Defaultpfad, der für alle Objekte vorgeschlagen wird; mit dem Extension kann der Bildtyp gewählt werden (PIC Screenformat, PI3 Degas, PAC Stad, IMG GEM-Image). Ist ein Extension angegeben, so werden auch Fraktale defaultmäßig in diesem Format gespeichert. Im Modus Speichern ist der Defaultpfad der in den Einstellungen angegebene, er wird aber nur verwendet, wenn der Pfad eines Bildes noch nicht gesetzt ist. Für jedes zu speichernde Objekt wird nun zunächst eine Dialogbox aufgebaut, in der die Nummer des Objektes, der Objekttyp (Fraktal, Bild oder Film) und der Objektstatus (geändert oder unverändert) angezeigt wird. Mit dem Button Show kann man bei Bildern einen Blick auf das Bild werfen. Unter diesen zur Information dienenden Angaben befindet sich der Bildname und der Dateipfad, außerdem wird das Dateiformat angezeigt. Dieses kann man durch Anklicken eines der Button ändern, es wird dann automatisch das entsprechende Extension in den Namen eingetragen. Mit dem Button Select können diese via Dateiselectorbox geändert werden, natürlich ist dies auch direkt mit der Tastatur möglich. Der Dateityp, unter dem ein Bild oder auch ein Fraktal abgespeichert wird, wird durch das hier eingestellte Dateiextension festgelegt. CH? ist nur bei Fraktalen möglich und bedeutet das Abspeichern als Fraktal; mit PIC, PI3 oder PAC wird das Fraktal oder das Bild im entsprechenden Dateityp gespeichert. Andere Extension sind nicht möglich (außer natürlich FF3 für Filme), versucht man mit einem anderen Extension zu speichern, so korrigiert CHAOSultd das Extension, gibt eine Meldung aus und verläßt die Dialogbox nicht. Zum Verlassen der Box stehen vier Button zur Verfügung: bei Speichern wird das Bild gespeichert und die Dialogbox für das nächste Bild angezeigt, weiter geht zum nächsten Bild über ohne das aktuelle Bild zu speichern, Abbruch bricht den ganzen Speicherprozess ab. Bleibt noch Info aus. Mit diesem Button kann man veranlassen, das für die noch folgenden zu speichernden Bilder keine Eingaben mehr gemacht werden können. CHAOSultd stellt dann nur noch die Parameter in der gleichen Weise wie bisher dar, geht aber anschließend sofort mit den Defaultparametern zum Speichern über (Dies läßt sich auch von Anfang an erreichen, indem man in den Einstellungen die Nachfrage bei save abstellt. Es ist aber zumindest Anfangs zu empfehlen, wenigstens beim ersten Bild zu überprüfen, ob die Speicherfunktion auch das tut, was man wollte.). In diesem Fall kann das Abspeichern durch Drücken der Alternate-Taste abgebrochen werden. Kommt es beim Speichern zu einem Namenskonflikt (eine Datei soll erzeugt werden, die schon besteht) so wird dies (abhängig von den Einstellungen des Programms) in einer der Dialogbox beim Speichern sehr ähnlichen Box angezeigt. Man kann hier den Namen nochmals ändern, und die Box wiederum auf viererlei Weise verlassen. Überschreiben speichert das Objekt mit dem eingestellten (eventuell geändertem) Namen ohne sich um eine eventuell bestehende Datei zu kümmern, Weiter und Speichern arbeiten wie oben beschrieben, Msg. aus schaltet analog zu Info aus die Warnung von Überschreiben ab. Gespeicherte Objekte werden auf dem Desktop abgehakt dargestellt, Fraktale, die als Bilder gespeichert wurden gelten wie gesagt nicht als gespeichert.

5.2 Laden

Mit dem Eintrag Laden im Menü Datei kann man Objekte wieder einladen.

Es erscheint die Dateiselectorbox, mit der einzelne oder auch mehrere Bilder ausgewählt werden können. Gibt man explizit einen Dateinamen an, so wird diese eine Datei geladen. Gibt man aber keinen Dateinamen an, so werden alle in der Dateiselectorbox gerade dargestellten Dateien, sofern sie CHAOSultd-Objekte sind (also alle Dateien mit den Extension CH?, FR3, PIC, PI3, PAC und FF3^{22}), geladen. Das Einladen läßt sich durch Drücken der Alternate-Taste abbrechen. Beim Laden von Filmen werden alle in dem Film enthaltenen Bilder geladen, sofern nicht Bilder gleichen Namens und Dateipfades bereits im Speicher vorhanden sind. (nähere Informationen zum Aufbau einer Filmdatei in V.2) Als Besonderheit können auch Bilder und Filme der jeweils anderen Auflösung ’geladen’ werden, also Farbfractale in die sw-Version und monochrome Bilder in die Farb-Version. Es wird dann allerdings nicht das ganze Bild, sondern nur die Bildparameter geladen und ein leeres Bild erzeugt. Dabei werden Parameter durch die Berechnungsroutinen an die andere Auflösung angepaßt und gegebenenfalls ergänzt. Mit weiter kann man dann die zugehörigen Bilder erzeugen.

5.3 Drucken

Zuerst die gute Nachricht: CHAOSultd besitzt eine sehr leistungsfähige Hardcopy-Routine. Die schlechte Nachricht: Die Hardcopy-Routine gibt es nur in der sw-Version und nur für 24Nadel-Drucker. Andere Drucker und das Drucken von Farbbildern wird von CHAOSultd nur insofern unterstützt, als man auf die TOS-Hardcopy-Routine (oder irgendeine ins System eingehängte alternative Routine) zugreifen kann. Zum Aufruf der Hardcopy-Routine dient der Menüpunkt Drucken im Zeigen-Menü. Außerdem kann die Funktion auch beim Anzeigen von Bildern angewählt werden (vgl. 3.1). Im letzteren Fall wird nur das gerade angezeigte Bild gedruckt, beim Aufruf vom Desktop aus alle selektierten Bilder. Es erscheint zunächst eine Dialogbox, in der man die Druckparameter einstellen kann, soweit man die interne Hardcopy-Routine verwendet. Druckt man über die TOS-Hardcopy so sind diese Parameter im wesentlichen bedeutungslos, so auch in der Farb-Version. CHAOSultd kann Bilder in drei Größen ausdrucken; klein und groß sind Normalformate (Bildschirmzeilen erscheinen als Zeilen auf dem Papier), quer ist ein Querformat (Bildschirmzeilen erscheinen als Spalten). Dabei füllt groß nicht ganz ein halbes DIN A4 Blatt, klein ist halb so breit und halb so hoch. quer ist am größten und füllt ein DIN A4 Blatt in etwa aus. Große und kleine Bilder erscheinen im Ausdruck gleich groß (kleine werden also doppelt so stark vergrößert), mittlere fallen etwas aus dem Rahmen. Als Besonderheit gibt es noch die Möglichkeit doppelt als Größe auszuwählen, in diesem Fall werden die Bilder in der Größe klein gedruckt, aber immer zwei nebeneinander. Dies geht natürlich nur, wenn mindestens zwei Bilder gedruckt werden sollen, und auch nur mit kleinen und großen Bildern. (mittlere sind wegen der unterschiedlichen Bildgröße nicht möglich).

22in Farbe muß man die 3 durch eine 1 ersetzen, FR3 sind Fraktale aus FRACTAL 4.30

Neben diesen Bildgrößen kann eingestellt werden, ob CHAOSultd die Bilder dicht aneinander drucken soll, oder ob es zwischen ihnen einen Abstand lassen soll. Ist Abstand ein gewählt, so wird zwischen den Bildern die in der Druckereinstellung (vgl. 6.2) definierte Steuersequenz für LF (Linefeed) gesendet, und im Modus doppelt zwischen den beiden Bildern ein Abstand von zwei Zeichen gelassen. Dicht, also ohne Abstand Drucken ermöglicht es vor allen größere Hardcopies aus mehreren Bilder zusammenzusetzen, oder auch die Auflösung einer Hardcopy der Größe groß zu vervierfachen, indem man vier entsprechende Bilder aneinanderdruckt, die Erzeugung von vier solchen Bildern wird durch die Funktion vier Bilder (vgl. 2.3) unterstützt. Als nächstes kann man wählen, ob die (wichtigsten) Bildparameter mitausgedruckt werden sollen oder nicht. Werden sie gedruckt, so ist es allerdings nicht möglich die Bilder dicht aneinander zu drucken. Im Modus doppelt können die Parameter nicht gedruckt werden, die Einstellung wird ignoriert. Dann kann man einstellen, ob leere (Graphik-) Zeilen gedruckt werden sollen oder nicht. Läßt man sie nicht drucken, so kann man bei nicht bildschirmfüllenden Bildern (etwa bei 3d-Fractalen) Papier sparen. Zu guter Letzt kann man wählen, ob und wenn nach wievielen Bildern ein Formfeed gesendet werden soll. Setzt man die Anzahl der Bilder auf Null, so wird kein Formfeed gesendet, sonst nach der angegebenen Anzahl von Bildern, wobei im Modus doppelt die nebeneinander gedruckten Bilder natürlich nur einfach gezählt werden. Unter den Button für diese Parameter finden sich drei Button, mit denen direkt Druckerkommandos gesendet werden können, nämlich LF (Linefeed), FF (Formfeed) und Init. Gesendet werden die ent- sprechenden, in der Druckereinstellung eingestellten Codes, so daß sich beliebige Wirkungen erzielen lassen. Gedacht ist es allerdings so, daß LF einen Papiervorschub bewirkt, FF einen Seitenvorschub und Init die Druckerinitialisierung. Zumindest LF und FF sollte man nicht zweckentfremden, da diese Kommandos auch von der Hardcopy-Routine im eben genannten Sinne verwendet werden. Aufgerufen wird die interne Hardcopy-Routine durch Verlassen der Box mit Ok. Die System-Hardcopy ruft man durch Verlassen der Box mit den Button ALT/HELP oder TOS auf, in der Farbversion ist dies die einzige Möglichkeit. Bei ALT/HELP wird das Drücken der Tastenkombination ALT/HELP intern simuliert, bei TOS erfolgt der Hardcopyaufruf durch die XBIOS-Funktion Scrdmp (Xbios(20)). Die Wirkung ist nur dann unterschiedlich, wenn eine alternative Hardcopy-Routine ins System eingehängt wurde (für 9Nadel-Drucker normalerweise nicht nötig), und diese nicht beide Aufrufe abfängt. Im Zweifelsfall hilft hier wie immer das Ausprobieren. Beim Aufruf der System-Hardcopy sind von den Parametern nur das Drucken oder Nichtdrucken der Bildparameter und die Einstellung des Formfeed nach jeweils einer bestimmten Anzahl von Bilder von Bedeutung.

6 Einstellungen

CHAOSultd erlaubt eine Reihe von Einstellungen vorzunehmen, die auch gespeichert werden können. Neben allgemeinen Einstellungen und den Druckercodes können die Parameter der einzelnen Bildtypen voreingestellt werden.

6.1 allgemeine Einstellung

Die allgemeinen Einstellungen erreicht man im Datei-Menü mit dem Menüpunkt Einstellungen. Hinter diesem verbirgt sich eine (wie Sie es ja inzwischen wohl gewöhnt sind) ziemlich große und volle Dialogbox, in der man einige Parameter einstellen kann, die das Verhalten des Programmes in bestimmten Situationen festlegen. Als da wären: Speicher frei lassen legt fest, wieviel Speicher CHAOSultd dem System (z.B. für die Dateiselectorbox (ab TOS 1.4) oder für Accessories) übrig lassen soll. CHAOSultd belegt beim Programmstart den größten freien Speicherblock (normalerweise ist das (zumindest fast) der ganze freie Speicher) abzüglich der hier angegebenen Speichermenge. Diese Einstellung wird erst bei einem Neustart von CHAOSultd aktiv (natürlich nur wenn sie auch abgespeichert wurde), sie ändert nichts an der momentanen Speicherbelegung. Gong bei Berechnungsende: Hier kann man einstellen, ob bei Berechnungsende ein Gong dieses anzeigen soll oder nicht. Der Button Test gibt den Gong versuchsweise aus, so daß man etwa die Lautstärkeeinstellung am Monitor überprüfen kann. Anmerkung: der Gong wird durch Ausgabe des Zeichens 7 (nicht die Ziffer 7, sondern der ASCII Code 7) via Gemdos erzeugt. Das ist der selbe Gong, der (ensprechende Einstellung im Kontrolfeld vorausgesetzt) auch ertönt, wenn man neben eine Dialogbox klickt. Dazu ist es nötig, daß in den Systemvariablen das entsprechende Flag gesetzt ist, das man eben auch löschen kann, beispielsweise mit dem Kontrolfeld. Deswegen setzt CHAOSultd diese Flag beim Programmstart und setzt es beim Verlassen wieder auf den alten Wert zurück. Ändert man nun während CHAOSultd läuft mit einem Accessory dieses Flag, so wird erstens (beim Löschen des Flags) der Gong beim Berechnungsende nicht funktionieren und zweitens diese Änderung beim Verlassen von CHAOSultd überschrieben. Das Ein- oder Ausschalten des Gongs schaltet auch die drei Gongs ein bzw. aus, mit denen auf eine Garbage Collection hingewiesen wird. Mit Cursor bei Block ... kann man die Art des Cursors für die Auswahl von Koordinaten aus Bildern (z.B. beim Festlegen eines Blockes) einstellen. Maus bedeutet einen normalen GEM-Cursor (in Kreuzform), Kreuz ein Fadenkreuz. Standartdateipfad legt den Defaultpfad für speichern und laden fest. Mittels Select kann dieser mit der Dateiselectorbox eingestellt werden. Standartdateityp Bilder bestimmt den Defaultdateityp für Bilder. Nachfrage bei Save erlaubt es die Dialogbox, in der die Dateinamen zu speichernder Objekte angezeigt werden und geändert werden können, von vorneherein abzuschalten, so daß nur noch ein Info ausgegeben wird (vgl. Speichern 5.1). Es folgen einige Einstellungen, mit denen Sicherheitsabfragen ein und ausgeschaltet werden können: Bei Datei überschreiben kann man die Warnung vor Namenskonflikten ein- und ausschalten. (Vor allem wenn man eine größere Zahl von Bilder zum Weiterberechnen geladen hat und sie dann wieder abspeichern will sollte man die Warnung ausschalten, man kann dies aber wie beschrieben auch in der Warnung selbst). Berechnung abbrechen bezieht sich auf eine Warnung die beim Abbrechen der Berechnung mehrerer Bilder mit ALTERNATE-ESC erscheint (bei anderen Berechungsabbrüchen kann man die Berechung normalerweise fortsetzen, so daß keine Warnung nötig ist). Bei Objekte löschen hat man die Möglichkeit eine Warnung bei neuen (also nicht abgespeicherten, erkenntlich am fehlenden Haken) Objekten, bei mehreren Objekten, nie oder immer zu erhalten, bei Programm verlassen fällt demgegenüber lediglich die Option mehrere weg. Verläßt man die Einstellungen mit Speichern, so werden die Einstellungen übernommen und in die Einstellungsdatei CHS ULTx.SET übernommen (zusammen mit den gerade eingestellten Druckercodes und Parametervoreinstellungen). Beim Verlassen mit Ok entfällt das Speichern.

6.2 Druckereinstellung

Die Einstellung der Druckercodes ist vor allem für Besitzer eines 24Nadel Druckers wichtig, allerdings sollten auch die anderen hier mal hineinschauen. Alle Druckercodesequenzen werden mit $FF aufgefüllt, das auch zur Code-Ende Erkennung dient. Steuersequenzen dürfen diese Byte deshalb nicht enthalten. Folgende Druckercodes werden benötigt: Graphik 180: 180dpi Graphikdruck. Die Anzahl der Spalten wird vom Programm selber angefügt, dies soll durch das xx am Ende der Zeile symbolisiert werden. CR: ein einfaches Carrige Return Abst. Gr: Zeilenvorschub xx 1/180 Zoll. Der Parameter xx am Ende wird wieder vom Programm angefügt. Abst. Text: Zeilenvorschub für Text linker Rand: Kommando zum Einstellen des linken Randes. Diese Kommando wird zum Zentrieren der Bilder verwendet, in den Zeilen darunter muß für die einzelnen Bild- und Hardcopygrößen die jeweilige Einstellung angegeben werden. Linefeed, Formfeed und Init Drucker sind die Steuercodes, die mittels der entsprechenden Button in der Hardcopy-Dialogbox direkt an den Drucker geschickt werden. Linefeed und Formfeed werden auch von der Hardcopy-Routine selbst verwendet. Bei Ausgabe durch läßt sich festlegen, ob die Druckerausgabe mit Hilfe der Tos-Routinen (genauer Bios) oder mittels eigener direkt auf die Centronics-Schnittstelle zugreifender Routinen erfolgen soll. Der direkte Zugriff auf die Centronics-Schnittstelle hat zwei Vorteile. Erstens entgeht man so dem (von wohl vielen ST Benutzern mit 24Nadel-Drucker verwendetem) FX-80 Emulator, der sonst in die Hardcopy-Routine eingreift und nur Schrott, nicht aber das gewünschte Bild auf dem Papier erscheinen läßt, zweitens ist der Ausdruck auf diese Weise deutlich schneller. Allerdings hat auch die Ausgabe via Tos ihre Vorteile. Sie erlaubt Ausdruck über die serielle Schnittstelle^{23} (was ich allerdings nie getestet habe, mangels Drucker) und sie ermöglicht den Betrieb von Druckerspoolern. Außerdem ist sie gewissermaßen die letzte Rettung, falls meine Ausgaberoutine mit dem einen oder anderen Drucker Probleme bereitet. Ich habe sie zwar mit meinem P6+ getestet, wo sie problemlos funktionierte, aber man kann ja nie wissen. Für das Verlassen der Dialogbox gilt daselbe wie bei den allgemeinen Einstellungen, bei Speichern werden auch diese (und die Voreinstellungen der Parameter) mit abgespeichert.

23dazu muß nur die Druckeranpassung richtig eingestellt sein. Ich verweise hier nur auf das CONTROL.ACC

6.3 Voreinstellung der Bildparameter

Die Voreinstellung für die Bildparameter der Berechnungsroutinen erreicht man – soweit vorhanden und vernünftig implementiert – via SHIFT-Klick auf den entsprechenden Menüpunkt im Neu-Menü. Die Parameter können von dort aus nicht gespeichert werden, dazu muß man eine der beiden anderern Einstellungen aufrufen und dort Speichern auswählen. Alle Parameter werden in der Datei CHS ULTx.SET gespeichert; es stört beim Starten des Programmes nicht, wenn sich in dieser Datei Parameter von Routinen befinden, die nicht geladen werden, diese gehen jedoch verloren, wenn man die Parameter abspeichert. Eine weitere Funktion der Berechnungsroutinen, die keine feste Bedeutung hat, erreicht man – soweit implementiert – mit CONTROL-Klick auf einen Menüpunkt im Neu-Menü. Die Funktion kann beispielsweise zur Eingabe weiterer Voreinstellungen dienen.

7 Besonderheiten der Farbversion

Die Farb- und sw-Version von CHAOSultd sind weitgehend gleich, insbesondere in der Bedienung. Abweichungen wurden an ein paar Stellen in dieser Anleitung bereits erwähnt. Zwei Punkte, den Auflösungswechsel und die Einstellung der Farbtabelle, möchte ich hier noch erläutern.

7.1 Auflösungswechsel

Die Farb-Version läuft prinzipiell in mittlerer Auflösung, sie muß so gestartet werden und alle Eingabefunktionen, auch der Desktop, arbeiten in mittlerer Auflösung. Alle Bilder werden dagegen in niedriger Auflösung berechnet und angezeigt. Dieser Auflösungswechsel ist nötig, da für den Desktop und eine ganze Reihe von Dialogboxen von CHAOSultd in niedriger Auflösung nicht genug Platz wäre, Bilder andererseits mit möglichst vielen Farben dargestellt werden sollten. Wird nun beim Anzeigen von Bilden eine Dialogbox aufgerufen, eine Mauseingabe verlangt uws., so wird das Bild in ein Bild mittlerer Auflösung mit 4 Graustufen umgerechnet. Diese Umrechnung erfolgt sehr schnell, dafür geht natürlich Farbinformation verloren, so wird zB. die erste, fünfe, neunte und dreizehnte Farbe auf die gleiche Graustufe abgebildet (entsprechend die 2.,6.,10. und 14., die 3.,7.,11.,15. sowie die 4.,8.,12.,16.). Hat man das Bild mit einer einigermaßen normalen Farbgestaltung erzeugt, so sollten die Strukturen weiterhin erkennbar bleiben.

7.2 Farbeinstellung

Die Dialogbox zur Einstellung der Farbtabelle ist Teil von CHAOSultd (und nicht der Berechnungsroutinen). Um gleichzeitig alle Farben anzeigen zu können und eine Dialogbox zur Eingabe zu verwenden wurde ein Rasterzeileninterupt verwendet, das heißt der obere Teil des Bildschirms wird in geringer, der untere Teil in mittlerer Auflösung angezeigt. Sollen die Farben eines zumindest teilweise existierenden Bildes geändert werden, so wird ganz oben der obere Teil des Bildes angezeigt, dann kommen 16 Balken mit den einzelnen Farben. Wird die Farbtabelle für ein neues Bild erstellt, so werden nur die Farbbalken angezeigt.

Unten wird eine Dialogbox angezeigt. Mit den 16 Button direkt unter den Farbbalken kann man die zu ändernde Farbe anwählen. Durch shift-Klick kann man mit gedrückter Maustaste eine Farbe an eine andere Stelle kopieren, mit control-Klick und gedrückter Maustaste erhält man einen Farbverlauf zwischen Anfangs- und Endfarbe. Unter diesen 16 Button befindet sich nochmal eine Leiste mit 16 Button, die selektiert werden können. Sie bestimmen, welche Farben beim Rotieren berücksichtigt werden. Zum Rotieren (also zyklischen Verschieben der Farben nach links oder rechts) dienen die Button ’->’ und ’<-’. Die Leisten 0-7 mit den Bezeichnungen rot, grün und blau dienen natürlich zum Einstellen der angewählten Farbe (vgl. Control.acc). Daneben gibt es die Möglichkeit die Farben nach dem HLS-Modell (Hue (Farbton), Lightness (Helligkeit) und Saturation (Sättigung)) einzugeben; dazu dienen die (quasikontinuierlichen) Schieber mit den Bezeichnungen Farbe, Hell. und Sättig.. Die Einstellungen im RGB- und HLS-Modell werden jeweils automatisch in das andere Modell übernommen. Die Button Tab 1 - Tab 12 enthalten voreingestellte Farbtabellen, die mit Einfachklick abgerufen und mit Doppelklick eingestellt werden können (die Einstellung gilt auch noch nach Verlassen der Dialogbox mit Abbruch). Gespeichert werden die Farbtabellen mit den anderen Parametern (vgl. 6.1). Zwei Anmerkungen zur Farbeinstellung: Mit der Maus kann man grundsätzlich auch in den oberen Teil fahren, dort wird sie aber wegen der falschen Auflösung nicht korrekt angezeigt und es sind keine Eingaben möglich. Als Hintergrundfarbe (Farbe 0) sollte man die gleiche Farbe verwenden, die auch in mittlerer Auflösung als Hintergrundfarbe eingestellt ist (i.a. weiß), da es sonst am oberen Bildschirmrand und zwischen niedriger und mittlerer Auflösung zu unschönem Flackern kommt.

8 Tastatur-Kommandos

Alle Menüpunkte können auch über Tastatur-Kommandos aufgerufen werden. Die Kommandos werden am Ende des Menüeintrages angezeigt, wobei einfache Buchstaben die Taste ohne Zusatztasten und ’ˆ ’-Buchstabe die Taste zusammen mit der Control-Taste bedeutet. Grundsätzlich wird der Tastatur-Code, nicht der Ascii-Code der Taste ausgewertet, so daß insbesondere der Ziffernblock separat behandelt wird. Die Tasten des Ziffernblockes werden für das Neu-Menü verwendet, zusätzlich sind die Tasten F, D und X wie in FRACTAL 4.30 für die ersten drei Einträge (Fractale) möglich. Zusätzlich zu den Tastatur-Kommandos zur Bedienung des Desktops und des Neu-Menüs hat man folgende Befehle:

Kommando Menü  Eintrag
CTRL I  CHAOSultd Fractal 4.1
CTRL L  Datei  Laden ...
CTRL S  Datei  Speichern
CTRL W  Datei  Speichern ...
CTRL X  Datei  Objekte löschen
CTRL E  Datei  Einstellungen
CTRL H  Datei  Druckparameter
CTRL Q  Datei  Prog. beenden
S  Zeigen  Bild(er)
A  Zeigen  alle Bilder
C  Zeigen  Film
O  Zeigen  Optionen
V  Zeigen  Bildvergleich
B  Zeigen  Block zeigen
P  Zeigen  Parameter
I  Zeigen  Info
H  Zeigen  Bilder drucken
W  Weiter  weiter
Q  Weiter  alle weiter
N  Weiter  neu berechnen
M  Weiter  Film
E  Weiter  Edit Film

9 Sonstiges

Nachdem am Anfang dieses Abschnittes auf den wichtigsten Teil von CHAOSultd verwiesen wurde, soll hier noch ein Hinweis auf den zweitwichtigsten Teil folgen, das Programm-Info. Schließlich habe ich das Programm nur geschrieben, um mich irgendwo verewigen zu können. Das Programminfo ist mehrteilig; nach einer Dialogbox, die Programm und Autor nennt und einer weiteren Dialogbox, die etwas detailiertere Angaben zum Programm bietet, folgen eine oder mehrere weitere Dialogboxen, die die Berechnungsroutinen und ihre Autoren nennen.

Teil II

die Fractal-Routinen

1 der Algorithmus

Fractale im Sinne dieser Routinen beruhen auf einer Verallgemeinerung von Mandelbrotund Julia-Mengen – erstere sind auch als Apfelmännchen bekannt. Apfelmännchen beruhen bekanntlich auf Folgen komplexer Zahlen, die durch die Rekursionsformel

z_{n+1} = z_{n}^{2} − z_{0}

definiert sind^{24}. Das Bild entsteht dann so, daß man einen Teil der komplexen Ebene auf den Bildschirm abbildet und für jeden Punkt z_{0} untersucht, ob und wenn wann die Glieder der zugehörigen Folge dem Betrage nach einen bestimmeten Wert (die Abbruchbedingung) überschreitet. Die Farbe des Punktes bestimmt sich dann aus der der Anzahl der nötigen Iterationen bis zum Erreichen der Abbruchbedingung. Julia-Mengen werden fast genauso berechnet, allerdings lautet die Rekursionsformel hier

z_{n+1} = z_{n}^{2} + c

wobei c eine für alle Bildpunkte gleiche, komplexe Konstante ist. In den Fractal-Routinen von CHAOSultd sind nun diese beiden Formeln zur folgenden zusammengefaßt:

z_{n+1} = z_{n}^{2} + αz_{0} + c

wobei α eine (reelle) Konstante ist. Apfelmännchen erhält man aus dieser Formel leicht durch α = ±1 und c = 0, Juliamengen durch α = 0 und c ≠ 0. Diese Berechnungsformel liegt den Bildern, die mit den Menüpunkten Fractal(e) und 3d Fractal(e) erzeugt werden, zugrunde. Bei pseudo-dreidimensionalen Bilder wird dabei die Berechnungstiefe eines Punktes nicht durch seien Farbe dargestellt, sondern direkt als Höheninformation verwendet. Für freie Fract. kann die Berechnungsformel explizit angegeben werden so daß man selbst experimentieren kann.

2 Parameter

2.1 benötigte Parameter

Wie gesagt, wird ein Ausschnitt der komplexen Zahlenebene auf den Bildschirm abgebildet. Dazu muß man natürlich diesen Ausschnitt, durch den minimalen und maximalen Real- und Imaginärteil festlegen. Des weiteren muß α, die Konstante c (Real- und Imaginärteil), die Abbruchbedingung^{25}, also die Zahl die der Betrag der komplexen Zahl aus der Rekursionsformel übersteigen soll, und die maximale ”Tiefe“, d.h. die maximale Anzahl von Rekursionsschritten, nach der die Berechnung spätestens abgebrochen wird, festgelegt werden. Die max. Tiefe kann bis 9999 groß werden, je größer sie ist, desto länger dauert allerdings auch die Berechnung des Bildes. (Bei einer Tiefe von 9999 kann die Berechnung eines einzigen Bildes durchaus mehrere Tage in Anspruch nehmen. Im allgemeinen verwendet man kaum Tiefen über 250). Die Abbruchbedingung kann aufgrund des für schnelle Berechnungen (s.u.) verwendeten Festkommazahlenformates nicht größer als 11 werden, aufgrund ihrer Definition ist sie stets positiv, also größer 0. Für die anderen Parameter wird lediglich geprüft, ob der minimale Real-/ Imaginärteil auch wirklich kleiner als der maximale ist, ebenfalls aufgrund des Zahlenformates dürfen diese Parameter dem Betrage nach nicht größer als ca. 127 sein. Da die Interessanten Strukturen aber ohnedies im Bereich von 3 real und 2 Imaginär liegen (zumindest in etwa) sollten sich damit trotz der an dieser Stelle fehlenden Sicherheitsabfragen keine Probleme ergeben^{26}. Weiterhin muß man natürlich festlegen, wie die Anzahl der Rekursionsschritte in Farben umgesetzt werden soll. Auch hier erlaubt CHAOSultd wesentlich mehr Einstellungsmöglichkeiten als andere Programme. In der SW-Version können können Bilder als reine Schwarzweißbilder oder als Graustufenbilder berechnet werden. Die Graustufen (fünf sind möglich) werden dabei durch Pixelmuster (2*2 Pixel für einen Punkt) erzeugt, so daß bei ihnen die Auflösung entsprechend geringer ist. Zum anderen ordnet man üblicherweise die Farben der Schrittanzahl so zu, daß sich die Farben immer wieder zyklisch wiederholen. In CHAOSultd sind dagegen maximal fünf unabhängige Bereiche möglich. Für jeden Bereich, der durch die maximale Schrittanzahl, für die er noch gelten soll, festgelegt wird, kann man entweder eine feste Farbe oder aber das zyklische Wiederholen einer bestimmten Anzahl von Farben festlegen. Im letzteren Fall muß man angeben, welche Farben (kleinste und größte Nummer), welche Farbe zuerst, und wieviele verschiedene Schrittanzahlen für eine Farbe man haben will. Zu guter letzt kann man noch wählen, in welcher Farbe Punkte erscheinen sollen, für die die maximale Tiefe erreicht wurde. Außer diesen Parametern, die den Bildinhalt beschreiben, kann man zum einen noch wählen, ob man ein großes, mittleres oder kleines Bild erzeugen will, was natürlich die Rechenzeit und den Speicherbedarf beeinflußt. Zum anderen kann man zwischen zwei Berechungsroutinen wählen: schnell und exakt, wobei schnell mit einem speziellen Festkommazahlenformat arbeitet, während exakt die Rechenroutinen von Turbo/Pure C verwendet^{27}. (exakt ist natürlich wesentlich langsamer, weshalb ich von der Benutzung im allgemeinen abrate).

24statt des ’-’ findet man teilweise auch ein ’+’

25viele Apfelmännchenprogramme verwenden 2 als Abbruchbedingung, allerdings finde ich die Bilder, die mit der Abbruchbedingung 10 entstehen, schöner

26im Berechnungsmodus exakt (s.u.) lassen sich theoretisch auch größere Bereiche realisieren, aber wie gesagt, finden kann man da an sich nichts

27das heißt es wird mit 80 Bit Fließkommazahlen und einer entsprechenden Genauigkeit von 19 signifikanten Ziffern gearbeitet. Außerdem wird ein eventuell vorhandener Fließkommacoprozessor automatisch genutzt.

2.2 Eingabe der Parameter

Wie Sie sehen ist für jedes Bild also eine ziemlich Anzahl an Parametern einzustellen. Dazu kommt noch, daß die meisten Parameter doppelt vorhanden sind, um Bildfolgen, bei denen nur das erste und letzte Bild angegeben werden, zu ermögliche – die Parameter der übrigen Bilder werden dann durch Interpolation berechnet. Für gewöhnliche Bilder, wie man sie mit anderen Fraktalprogrammen auch erzeugen kann, gibt es aber einige Funktionen, die das Einstellen der Parameter erleichtern. Um Fractale zu erzeugen klickt man in der Menüleiste den Menüpunkt Fractal(s) im Menü Neu an. Es erscheint dann die (ziemlich umfangreiche, also nicht erschrecken) Dialogbox zum Eingeben der Parameter, in der (sofern die Einstellungsdatei CHS ULT?.SET korrekt geladen wurden) bereits Parameter voreingestellt sein sollten (diese Voreinstellung ist jedesmal dieselbe, sie kann geändert werden, wenn man den Menüpunkt Fractal(s) mit gedrückter SHIFT-Taste aufruft; bei einem erneuten Aufruf findet man also nicht wieder die Parameter vor, die man zuletzt eingestellt hatte). Im folgenden die Parameter von oben nach unten, als da wären, der Name des Bildes (der später auf dem Desktop von CHAOSultd angezeigt wird und auch als Dateiname verwendet wird), die Anzahl der Bilder (für Einzelbilder natürlich 1) sowie die gewünschte Bildgröße. Anschließend kommen zweispaltig die einzelnen numerischen Bildparameter, wie in 2.1 erläutert. Dabei interessiert für Einzelbilder nur die linke Spalte, die rechte bleibt unbenutzt. Unterhalb der Parameter befinden sich einige Button, die das Leben erleichtern. Alle diese Button können mit Einfach- und mit Doppelklick aufgerufen werden, wobei bei Einfachklicks nur die numerischen Parameter, bei Doppelklicks auch Bildgröße, Farben und Berechnungsmodus verändert werden. apf ermöglicht das Aufrufen einer Voreinstellung für das Urapfelmännchen, dies ist die einfachste Möglichkeit ein Bild zu erhalten; mit dem Button clr kann man alle Einträge löschen. Mit dem Button − > kann man die Parameter von links nach rechts kopieren. Einen clr-Button gibt es auch je für die linke und rechte Parameterhälfte. Die anderen beiden Button (für die Parameterhälften) funktionieren nur, wenn schon Bilder berechnet wurden: Mit get übernimmt man die Parameter eines bestehenden Bildes, indem man das Bild auf dem Desktop anklickt. Die Übernahme aller Parameter (beim Aufruf mit Doppelklick) ist nur für gleiche Bildtypen (normale oder 3d Bilder) möglich, um die Funktion abzubrechen genügt ein Doppelklick auf den Hintergrund. Mit CONTROL-get (Einfach- oder Doppelklick) kann man die Konstante c durch Anklicken einer Position in einem (normalen) Fractal setzen. Mit block kann man Ausschnitte aus berechneten Bildern auswählen, allerdings nicht aus 3d Bildern. Man klickt das entsprechende Bild auf dem Desktop an, es wird angezeigt, und man kann den Ausschnitt festlegen, indem man erst durch einen Mausklick die eine Ecke, und dann durch einen weitere Klick die zweite Ecke festlegt. Mausklick rechts führt zum Abbruch; drückt man beim ersten Mausklick zusätzlich die SHIFT-Taste, so ist der Ausschnitt in seinen Proportionen beliebig, ansonsten entspricht er dem Bildschirmformat. Nun folgt noch die Einstellung des Berechnungsmodus, schnell oder exakt. Die Einstellung der Farben wird aus Platzgründen lediglich angezeigt (im kleinsten Systemzeichensatz), eingestellt wird sie in einer eigenen Dialogbox, in die man mit dem Button Farben gelangt. In dieser Dialogbox kann man - in der SW-Version - zunächst mit den beiden Button s/w und grau oben in der Box wählen, ob man Schwarzweiß- oder Graustufen-Bilder haben möchte. Dabei bewirkt ein Einfachlick das Umschalten, ohne daß die anderen Einträge in der Dialogbox geändert werden, während ein Doppelklick gleichzeitig die Farbparameter auf zyklisches Durchscrollen aller Farben einstellt. Unter diesen Button sind die in den beiden Modi jeweils möglichen Farben und ihren Farbnummern angezeigt. Mit den folgenden Button normal und invers wählt man, ob die Farben wie üblich (Hintergrund weiß, gesetzte Pixel schwarz) oder invertiert (Hintergrund schwarz, gesetzte Pixel weiß) dargestellt werden sollen. Übrigens läßt sich diese Einstellung (im Gegensatz zu den anderen) jederzeit verändern, also auch wenn das Bild schon ganz oder teilweise berechnet wurde. In der Farbversion kann man mit dem Button zykl. ebenfalls zyklisches Durchscrollen einstellen. Mit dem Button Farben einstellen kommt man in die Dialogbox zum Ändern der Farbtabelle, die sich auch aus der Dialogbox für die Parameter mit dem Button ändern direkt aufrufen läßt. Nun folgen in der Dialogbox die Angaben für die fünf Farbbereiche, die aber nicht alle genutzt werden müssen. Zunächst kommt die Angabe, bis zu welcher Tiefe der Bereich gelten soll. Der erste Bereich beginnt mit der Tiefe 0, der zweite direkt nach dem ersten usw. Der letzte verwendete Bereich muß durch die Angabe von 9999 als Endtiefe gekennzeichnet werden, folgende Bereiche werden, auch falls vorhanden nicht mehr beachtet. Bei den Bereichen wird nicht darauf geachtet ob sie sinnvoll mit der max. Berechnungstiefe zusammenpassen, d.h. man könnte auch bei einer max. Berechnungstiefe von meinetwegen 50 einen Bereich von 75-100 definieren, obwohl ein solcher Bereich nie genutzt würde. Als nächstes muß man festlegen, ob in dem Bereich die Farben zyklisch durchgewechselt werden sollen oder nicht. Dazu dient der Button zykl.; ist er aktiviert, so werden die Farben durchgewechselt, ansonsten nicht. Im letzteren Fall muß nur noch festgelegt werden, welche Farbe dem Bereich zugeordnet werden soll. Dies geschieht durch den Eintrag Farbe. Dabei gibt es eine Besonderheit, gibt man als Farbe -1 an, so wird die auf die zuletzt verwendete Farbe folgende Farbe hergenommen, handelt es sich um den ersten Farbbereich, so wird die Farbe 1 verwendet (auf diese Weise kann man nach zyklischen Bereichen im Farbverlauf fortfahren ohne sich erst die letzte Farbe des Bereiches überlegen zu müssen). Bei zyklischen Bereichen legt der Eintrag Farbe die erste verwendete Farbe fest. In den Einträgen ... bis ... gibt man an, welche Farben hergenommen werden sollen (dabei muß der erste Eintrag kleiner sein als der zweite) und mit Step erklärt man, wieviele Tiefenstufen in der gleichen Farbe dargestellt werden sollen. Als letzter Farbparameter muß schließlich noch eingestellt werden, in welcher Farbe Punkte dargestellt werden sollen, die ”tiefer“ als die max. Tiefe liegen, auch hier ist -1 als Joker verwendbar. Soweit zu den Parametern für die Erzeugung eines Bildes. Ich kann gut verstehen, daß Ihnen das ganz schön kompliziert vorkommt. Es ist wohl auch nicht ganz einfach, aber zum einen muß man ja nicht jedes Detail ausnutzen und zum anderen muß man einfach ein bißchen herumprobieren, dann findet man sich mit der Zeit schon zurecht. Wer allerdings geglaubt hat, schlimmeres könnte ihm nicht wiederfahren, der hat sich geirrt, es kommt noch schlimmer:

2.3 Fractalbildfolgen

Wie bereits erwähnt gehört es zu den Fähigkeiten von FRACTAL, nicht nur Einzelbilder, sondern auch Bildfolgen berechnen zu können. Dabei müssen die Bildparameter für das erste und das letzte Bild sowie die Bildzahl angegeben werden, FRACTAL interpoliert dann die Werte für die dazwischen liegenden Bilder. Die Parameter werden in der selben Dialogbox eingegeben, wie die Parameter von Einzelbildern^{28}. Dabei dient die linke Spalte für die Parameter des ersten, und die rechte Spalte für die Parameter des letzten Bildes. Alle Einstellungen die nur einfach vorhanden sind gelten für alle Bilder der Bildfolge, dies sind Bildgröße, Berechnungsmodus sowie die Farben. Bei den anderen Parametern kann schließlich noch die Art der Interpolation gewählt werden. Dazu dienen die Button rechts von den Parameterangaben. Gewählt werden kann lineare (0), progressive (+) und degressive (-) Interpolation. Bei linearer Interpolation sind die Unterschiede zwischen den Parametern zweier aufeinanderfolgender Bilder stets gleich groß, bei progressiver Interpolation nehmen sie zu und bei degressiver ab. Noch eine Bemerkung zu den Bildnamen bei Bildfolgen: der in der Dialogbox angegebene Name kann höchstens sechs Zeichen lang sein (andernfalls werden die letzten Zeichen überschrieben), ist er kürzer, so wird er mit ’ ’ erweitert, und in den Zeichen 7 und 8 die Nummer des jeweiligen Bildes (beginnend mit 00) eingetragen.

2.4 3d Fractale

Im Vergleich zu den normalen Fractalen mit ihrer komplizierten Farbgestaltung sind 3d Fractale fast schon einfach. Bei 3d Fractale wird die Berechnungstiefe durch die Tiefe oder Höhe der gezeichneten Punkte dargestellt. Die Parameter entsprechen weitgehend denen von normalen Fractalen. Allerdings ist die maximale Tiefe bei 3d Fractalen auf 115, 160 bzw. 240 bei kleinen, mittleren oder großen Bilder beschränkt (in der sw-Version, für die Farb-Version muß man die Werte noch mal etwa halbieren) Es kann auch nicht zwischen schneller und genauer Berechnungsroutine unterschieden werden (verwendet wird stets die schnelle Berechnugsroutine), und die Farbeinstellung fällt ganz weg. Eingestellt werden muß statt dessen, ob das Fractal hoch oder tief gezeichnet werden soll, und mit welchem Raster das Fractal dargestellt werden soll. Hier hilft Ausprobieren der Möglichkeiten und Anschauen der Ergebnisse glaube ich besser als langatmige Erklärungen.

2.5 freie Fractale

Für freie Fractale, d.h. Bilder mit frei definierter Rekursionsformel, kommen zu den Parametern für 2d-Fractale noch einige hinzu, die in einer eigenen Dialogbox vor den anderen Parametern eingegeben werden müssen.

28Wer also die Parametereingabe für ein Bild verstanden hat, der wird auch mit Bildfolgen keine großen Probleme haben, insofern stimmt die oben gemachte Bemerkung, es käme noch schlimmer, vielleicht doch nicht so ganz.

Berechnungsformel

Zunächst einmal muß man natürlich die Berechnungsformel angeben. Diese ist ein beliebiger Funktionsstring, der (komplexe) Konstante, Variable, Operatoren und Funktionen enthalten kann. Konstante müssen die Form Realteil + i Imaginärteil besitzen und vorsichtshalber geklammert werden (normalerweise brauch man eh keine). An Variablen kann man zn, d.h. den momentanen Wert der Rekursionsfolge, z0 den Startwert, d.h. die komplexen Koordinaten der Bildschirmpunktes, die reelle Zahl a und die komplexe Zahl c (wie in den weiteren Parametern eingegeben) verwenden. An Operationen kann die üblichen binären Operationen +, -, *, / und ˆ (Potenz) verwenden; außerdem Klammern ( und ) und Vorzeichen -. An (komplexen) Funktionen werden unterstützt:

Re  Realteil einer komplexen Zahl
Im  Imaginärteil einer komplexen Zahl
konj komplex konjugieren
abs  Absolutquadrat einer komplexen Zahl (abs(x + iy) = x^{2} + y^{2})

(der Name ist eigentlich falsch!)

quad Quadrat
kubik dritte Potenz
sin  Sinus
cos  Cosinus
exp  Exponentialfunktion
log  Logarithmus

Anmerkung: möchte man die n-te Potenz einer Zahl zn verwenden (n ganz), so sollte man nicht znˆ n benutzen, sondern die Funktionen quad, kubik, und Produkte aus zn und ihnen – z.B. znˆ 4=quad(quad(zn)) – was wesentlich schneller berechnet wird. Beispiele für eine Berechnungsformel: Apfelmännchen: quad(zn)-z0 Juliamengen: quad(zn)+c Die Berechnungsformel wird zur Auswertung übrigens compiliert, d.h. in Maschinencode übersetzt, wenn auch nicht allzu guten. Tritt dabei ein Fehler auf, so wird dieser in einer Alertbox angezeigt, die Dialogbox kann nicht mit Ok verlassen werden.

weitere Parameter für freie Fractale

Neben der Berechnungsformel kann man auch die Abbruchbedingung und die Art des Punkte-Setzens beeinflussen. Bei der Abbruchbedingung hat man die Möglichkeit eine oder zwei relevante Größen zu bestimmen, wobei der Betrag, der Real- sowie der Imaginärteil der Folgenglieder zur Wahl stehen (die Abbruchbedingung lautet immer: Größe > Abbruch, wobei Abbruch der in den Parametern wie bei normalen Fractalen angegebene Wert ist). Wählt man zwei Größen und damit eigentlich zwei Bedingungen, so kann man noch die logische Verknüpfung (and, or oder xor) zwischen diesen wählen. Ähnlich legt man die Bedingung zum Punkte-Setzen fest. Entweder man läßt die Punkte entsprechend den Berechnungsschritten setzen – nur dann kann man bei den übrigen Parametern auch die Farbeinstellung wie bei normalen Fractalen vornehmen – oder man definiert eine Bedingung die erfüllt sein muß, damit ein Punkt gesetzt wird. Diese Bedingung entspricht der Abbruchbedingung und wird genauso festgelegt (man kann hier natürlich andere Kombinatinen wählen), allerdings werden hier Bedingungen Größe < Abbruch verwendet^{29}. Nach Verlassen der Dialogbox für frei definierte Fractale mit Ok muß man in der ganz normalen Parameterdialogbox (wie für normale Fractale) noch die übrigen Parameter angeben.

Und was soll das alles?

Falls sie sich dies fragen, weil sie kaum noch verstehen, was denn nu bei welcher Einstellung wie berechnet und gezeichnet wird, soll hier noch kurz erklärt werden, woher frei definierte Fractale kommen. Sie kommen von Pickover-Mengen, die im Spektrum der Wissenschaft Sonderheft Computerkurzweil IV unter dem Stichwort Biomorphe beschrieben wurden. Dabei verwendet man Berechnungsformeln z.B. vom Typ znˆ n + c (n=3,4,5…) und als Abbruch- wie als Punktsetz-Bedingung Re or Im.

3 unterstützte Optionen

Da die Fractal-Routinen gewissermaßen das Maß aller Dinge bei der Entwicklung von CHAOSultd waren^{30}, jedenfalls haben sie die möglichen Optionen vorgegeben, werden im Prinzip alle möglichen Optionen von den Fractal-Routinen auch in irgendeiner Weise unterstüzt.

3.1 Parameter anzeigen

Alle Parameter werden angezeigt. Bei freidefinierten Fractalen muß man zur Anzeige der Berechnungsformel und Abbruch- sowie Punktsetz-Bedingung in eine zweite Dialogbox (über den Button − >frPar) verzweigen. Das gleiche gilt für die Farbtabelle in der Farb-Version. Ändern kann man Bildnamen und Dateipfad (auch mittels Dateiselector über den Button select) sowie die Farbeinstellung. Die Angaben werden nur übernommen, wenn man die Dialogbox mit Ok verläßt.

3.2 Bild-Info anzeigen

Für die Fractal-Routinen steht ein umfangreiches Bild-Info für Einzelbilder zur Verfügung, die CHAOSultd-Routine zur Anzeige von Infos über mehrere Bilder wird unterstützt. In Einzelbild-Infos wird angezeigt: die Anzahl der Bildpunkte (nicht Pixel!) – insgesammt und als Höhe mal Breite; die Berechnungszeit in Stunden, Minuten und Sekunden, sowie die Zeit pro Zeile in Sekunden und pro Punkt in Millisekunden; die mittlere Tiefe (Zahl der Iterationen geteilt durch Anzahl der Bildpunkte) und zum Vergleich die maximale Tiefe; die Anzahl der Iterationen und die Zeit pro Iteration (in Mikrosekunden); die Anzahl der nötigen Multiplikationen, die mittlere Zeit pro Multiplikation^{31} und die sich daraus ergebende Zahl von Multiplikationen pro Sekunde. Die Angaben über Multiplikationen sind bei freie definierter Berechnungsformel nicht möglich. Für Infos über mehrere Bilder entsprechen die Angaben über Iterationen, Bildpunkte und Berechnungszeit denen der Einzelinfos.

29natürlich sind nicht alle Kombinationen von Abbruch- und Punktsetz-Bedingung auch sinnvoll, das sollte man sich vorher überlegen

30was nicht heißt, daß das so bleiben muß

3.3 Bilder anzeigen

Beim Bilder anzeigen werden die Optionen weitgehend unterstüzt. Die Anzeige von Koordinaten und Konstanten in bei 3d-Bildern natürlich unmöglich, bei den anderen Bildern wird die Konstante c als Konstante angezeigt. Ein Punktinfo ist nur bei normalen Fractalen möglich, wobei neben Koordinaten auch die Tiefe angezeigt wird; ist sie größer als die maximale Tiefe des Bildes, so wird dies durch das unendlich-Symbol markiert.

3.4 Block zeigen

Block-Auschnitte enthalten können nur zweidimensionale Bilder. 3d Bilder können lediglich aus Ausschnitt in einem zweidimensionalen Bild angezeigt werden.

3.5 neu berechnen

Beim neu berechnen von Fractalen können Bildgröße, Abbruchbedingung, maximale Tiefe, Genauigkeit, Darstellung bzw. Farbtabelle, die Farbkodierung von 2d-Bildern, das Raster und der Modus von 3d-Bildern sowie für frei definierte Fractale die Berechnungsformel, die Abbruchbedingung und die Punktsetz-Bedingung neu vereinbart werden. In der Dialogbox muß dazu einerseits der gewünschte neue Wert einer Größe angegeben werden, der dann für alle zu neu berechnenden Bilder Verwendung findet, andererseits muß das Neu-setzen dieses Wertes durch selektieren des zugehörigen Button aktiviert werden. Die Einstellungen für frei definierte Fractale finden sich in einer eigenen Dialogbox, in die man mit dem Button fr. Param. gelangt; auch die Farbtabelle wird natürlich in der üblichen Weise eingegeben. Bilder werden grundsätzlich nur neu berechnet, wenn sich ihre Parameter geändert haben; hat man nur die Farbetabelle (bzw. Darstellung) geändert, so wird das Bild einfach kopiert (soweit es bereits berechnet ist).

3.6 Vier Bilder

Die Option vier Bilder wird nicht für 3d Bilder unterstützt.

3.7 Hardcopy

Das Ausdrucken der Parameter unter eine Hardcopy wird voll unterstützt.

31d.h. die Berechnungszeit geteilt durch die Zahl der Multiplikationen, tatsächlich dauert eine Multiplikation an sich weniger lang, wobei auch noch zwischen Quadratur einer Zahl und Multiplikation zweier Zahlen unterschieden werden müßte

Teil III

Hüpfer

1 der Algorithmus

Hüpfer basiert auf einem Algorithmus von Barry Martin, der im Computer-Kurzweil der Zeitschrift Spektrum der Wissenschaft vorgestellt wurde. Dabei betrachtet man eine Folge von Zahlenpaaren x_{n} und y_{n} mit der folgenden Iterationsvorschrift:

x_{n+1} = y_{n} − sign(x_{n}) · \sqrt{abs (b · x_{n} − c)}
y_{n+1} = a − x_{n}

wobei a, b und c frei wählbare Parameter sind. Die Punkte (x_{n}, y_{n}) werden in einem Koordinatensystem aufgetragen, woraus sich mehr oder weniger interessante Figuren ergeben. Anders als bei Fractalen (siehe Teil II) erhält man hier eine Vielfalt von Formen nicht so sehr aus der Wahl des Koordinatenausschnittes sondern aus der Wahl der Parameter a, b und c. Das Ergebnis hängt außerdem – ebenfalls im Unterschied zu Fractalen – recht stark von der Anzahl der Iterationen ab: einerseits können ganze Bildteile unter Umständen erst nach sehr vielen Iterationen zum Vorschein kommen, andererseits können auch Strukturen bei zu vielen Iterationen durch die vielen gezeichneten Punkte wieder überdeckt werden. Man beachte, daß aufgrund des Algorithmus die Rechenzeit nicht von der Bildgröße abhängt^{32}. Berechnet man kleine Bilder, so führt das lediglich zu einer Speicherplatz- nicht aber zu einer Rechenzeitersparnis^{33}.

2 Parameter

An Parametern für die Berechnung von Hüpfer-Bildern sind zunächst einmal – wie üblich – Bildname, Anzahl der Bilder, die Bildgröße und in der sw-Version die Darstellung (normal oder invers) bzw. in der Farb-Version die Farbtabelle anzugeben. Die folgenden Parameter sind wie üblich doppelt anzugeben – für das erste und für das letzte Bild einer Bilderfolge; berechnet man nur ein Bild, so braucht man natürlich nur die linke Spalte auszufüllen. Auch die Button für den Interpolationsmodus sind ja bekannt. Zunächst einmal muß man die drei Parameter a, b und c der Iterationsvorschrift angeben; es folgen die Startwerte für x und y sowie die Festlegung des Bildausschnittes. Aus traditionellen Gründen geschieht dies im allgemeinen nicht durch minimalen und maximalen Wert für x und y sondern durch einen Vergrößerungsfaktor (scale und einen Offset, der die Position der Bildmitte angibt (jeweils für x und y getrennt). Man kann in der Dialogbox auch durch Anklicken des Button auf die Eingabe der Minimal- und Maximal-Werte umschalten, dabei ist aber zu beachten, daß für die Interpolation bei Bildfolgen stets mit den Vergrößerungsfaktoren und Offset’s gerechnet wird (d.h. bei Verlassen der Box werden die Werte in diesen Modus umgerechnet). Schließlich ist noch die Iterationsanzahl anzugeben und die Schrittweite, d.h. die Zahl der Iterationen nach der jeweil ein Punkt gesetzt werden soll (normalerweise setzt man nach jedem Schritt einen Punkt, d.h. Schrittweite 1). Die Eingabe der Parameter wird wie bei Fractalen durch eine Reihe von Möglichkeiten unterstützt. Es gibt die üblichen Button Def für eine Defaulteinstellung, Clr zum Löschen aller Eingaben, − > zum Kopieren von links nach rechts, sowie je für die linke und rechte Parameterhälfte get, blk und clr. Zusätzlich gibt es rnd. Bei get und blk werden stets alle Parameter kopiert (mit Ausnahme des Namens) man kann dabei ausschließlich Hüpfer-Bilder auswählen. rnd ermöglicht die Vorbelegung der Parameter a, b und c mit Zufallszahlen. Den Bereich für diese Zufallszahlen kann man durch Aufruf des Hüpfer-Menüeintrages zusammen mit der CONTROL-Taste einstellen, wobei man links den minimalen und rechts den maximalen Wert angibt. Ebenfalls Zufallszahlen für die Bildparameter a, b und c erreicht man durch den zusätzlichen (zu den von den Fractal-Routinen bekannten) Interpolationstyp r wie random. Wählt man r als Interpolationstyp, so wird nicht interpoliert sondern ein Zufallswert zwischen den zwei angegebenen Werten ermittelt (in diesem Fall ist auch bei der Berechnung eines einzigen Bildes die rechte Parameterhälfte (wenigstens teilweise) relevant). Die Vorbelegung der Parameter kann man wie üblich durch SHIFT-Klick auf den Hüpfer-Menüeintrag erreichen.

32die Rechenzeit hängt hier lediglich von der Zahl der Iterationen ab, weshalb sie auch vorher abgeschätzt werden kann

33das Berechnen von vier Bildern dauert allerdings trotzdem viermal so lang, da dabei die vier Bilder unabhängig von einander berechnet werden

3 unterstützte Routinen

Die meisten Möglichkeiten von CHAOSultd werden unterstützt. Berechnungsabbruch ist alle 256 Berechnungsschritte möglich – wie üblich durch Drücken der ESC-Taste. Man kann dabei durch gleichzeitiges Drücken von CONTROL (an dieser Stelle nur gleichzeitig mit dem Drücken von ESC, nicht mehr danach) erreichen, daß das Bild – soweit bisher berechnet – für fertig erklärt wird, die Angabe für die Iterationsanzahl wird dann entsprechend herabgesetzt (ohne Auswirkung auf weitere Bilder etwa in einer Bilderfolge). Beim Parameter anzeigen kann man umgekehrt die Iterationsanzahl wieder erhöhen, die entsprechende Angabe in der Dialogbox ist edierbar. Man kann also die gewünschte neu Iterationsanzahl eingeben, die aber größer sein muß, als die Anzahl der bisher berechneten Iterationen (andernfalls wird die Angabe schlicht ignoriert); ein bereits fertiges Bild kann auf diese Weise wieder unfertig werden. Weiter kann man Bilderinfos anzeigen lassen, wobei es aber kein ausführlicheres Info für Einzelbilder gibt. Blockroutinen (Block zeigen, Koordinaten anzeigen beim Anzeigen der Bilder) werden ebenso unterstützt wie das Ausdrucken der Parameter bei Hardcopies. Beim ebenfalls möglichen Konstante anzeigen wird der letzte berechnete Punkt angezeigt, ein Punkt-Info ist aber nicht möglich. Das Neu-Berechnen von Hüpferbildern ist möglich, wobei alle Parameter (einschließlich Bildausschnitt) verändert werden können.

Teil IV

Feigenbaum-Diagramme

Feigenbaum-Diagramme wurden als Beispiel für externe Berechnungsroutinen aufgenommen. Sie können also nur erzeugt (geladen und verwaltet) werden, wenn sich die Datei FEIGBAUM.XCH im Ordner CHS ULTD befindet und so beim Starten des Programmes nachgeladen wird. Ist dies der Fall, so verhalten sich die Routinen für den Anwender allerdings genauso als wären sie fest im Programm installiert. Feigenbaum-Diagramme können nur bei Monochrombetrieb verwendet werden.

1 Algorithmus

Der Algorithmus von Feigenbaum-Diagrammen ist noch einfacher als der für Hüpfer. Dabei wird eine Folge von Zahlen nach der Rekursionsformel

x_{n+1} = r · x_{n} · (1 − x_{n})

gebildet (mit x_{0} ≠ 0, z.B. x_{0} = 0.5). Aufgetragen werden die Werte, die x_{n} annimmt, gegen den Parameter r, wobei man allerdings die ersten N1 Folgenglieder wegläßt. Als Ergebnis erhält man das Feigenbaumdiagramm. Warum das so aussieht wie es aussieht kann man z.B. im Spektrum der Wissenschaft Sonderheft Computerkurzweil III nachlesen.

2 Parameter

Nötige Parameter zum Plotten von Feigenbaumdiagrammen sind minimaler und maximaler Wert der Parameters r (üblicherweise zwischen 0 und 4) sowie der Folgenglieder x (natürlich nur für die Ausgabe, die Werte liegen zwischen 0 und 1), der Startwert x_{0} (ebenfalls zwischen 0 und 1), der Zeichenmodus (hoch oder quer), die Zahl der Iterationen vor dem Plotten der Punkte (z.B. 200) und die Zahl der Iterationen beim Plotten der Punkte (z.B. ebenfalls 200), wobei hier noch eine Schrittweite angegeben werden kann, d.h. die Zahl an Iterationen zwischen zwei Plots (normalerweise 1, d.h. man läßt jeden Folgenwert zeichnen). Alle diese Parameter können zusammen mit den üblichen Parametern wie Bildname, Bilderzahl, Bildgröße und Farbe (normal/invers) in der Parameterdialogbox eingegeben werden. Es gibt die üblichen Interpolationstypen falls man mehrere Bilder berechnet. Ebenso stehen die üblichen Hilfsfunktionen zum übernehmen von Parametern aus Objekten usw. zur Verfügung (allerdings ohne Unterscheidung von Doppel- und Einfachklick, es können auch nur Feigenbaumdiagramme ausgewählt werden), der Button FGBM stellt das Standart-Feigenbaum-Diagramm ein.

3 unterstützte Routinen

Die Feigenbaumroutinen unterstützen nicht alle Möglichkeiten von CHAOSultd. Unterstützt werden die Anzeige der Parameter, die Anzeige von Bilderinfos (aber ohne eigenen Dialog für Einzelbilder), Blockroutinen und das Ausdrucken der Parameter.

Nicht unterstützt wird die Funktion neu berechnen und das Vergrößern in vier Bilder, Feigenbaum-Diagramme sind einfach nicht abwechslungsreich genug um diese Routinen auch noch zu implementieren, die Routinen sollen ja insgesamt vor allem als Beispiel für exteren Routinen und deren Realisierung dienen.