lmandel ist ein Bildgenerator, mit dem Fraktale (auch Apfelmännchen oder Mandelbrot genannt) erzeugt
werden können. lmandel ist ein Kommandozeilenprogramm das im Hintergrund seine Berechnungen durchführt.
Die erzeugten Bilder werden als ppm-Bilddateien gespeichert und können mit jedem Viewer betrachtet werden.
Hauptaugenmerk liegt auf der Möglichkeit, Fraktalzooms mit sehr hohen Vergrößerungen zu berechnen.
Dafür kommt eine spezielle Langzahlarithmetik zum Einsatz, die auch mit 1000stelligen Zahlen zurecht kommt.
lmandel bietet wenig Komfort und ist teilweise schwierig zu konfigurieren, da es für den
Eigengebrauch konzipiert ist. Der Vollständigkeit halber habe ich es aber mit in die Projektseite
aufgenommen.
Aktuelle Version : 0.22 (19.10.2002)
Download : lmandel-0.22.tgz
Voraussetzungen
Bevor das Programm installiert werden kann, sollten folgende Bedingungen
erfüllt sein:
- GMP-Lib, Download hier
Die GMP ist bei vielden Distributionen
schon enthalten, das sollte man erst einmal überprüfen.
Installation
Um das Programm zu installieren, ist folgendermaßen vorzugehen:
Entpacken der Archivdatei | tar xvzf lmandel-0.22.tgz |
Kompilierung starten | gcc lmandel.cpp -lm -lgmp -olmandel |
Nach erfolgreicher Kompilierung wurde eine Programmdatei lmandel im aktuellen Verzeichnis angelegt.
In dem aktuellen Arbeitsverzeichnis kann man optional eine Datei lmandel.cfg anlegen,
in der globale Einstellungen vorgegeben werden können. Ist die Datei nicht vorhanden,
werden Standardwerte verwendet, in der nachfolgenden Beschreibung unter Default angegeben.
Folgende Einstellungen sind möglich:
- outputmask= gibt einen Formattierstring an, nach dem die Bildnamen mit einer laufenden
Nummer versehen werden. Die Syntax folgt dabei dem Format-String der c-printf-Anweisung (siehe auch
man 3 printf).
Beispielsweise formattiert %d ohne Leerstellen oder führenden Nullen, die Ausgabe für
Bild Nr. 1234 wäre dann 1234.ppm. %0.5d formattiert minimal 5 Stellen mit führenden Nullen,
Ausgabe für Bild Nr. 1234 wäre dann 01234.ppm.
Default: %d (einfache Ausgabe ohne spezielle Formattierungen)
Beispiel: outputmask=%0.5d
- paramsinpic= 0 oder 1. Dieser Schalter gibt an, ob die Berechnungsparameter in der Bilddatei
(ppm-File) mitgespeichert werden sollen.
Default: 0 (keine Parameterspeicherung)
Beispiel: paramsinpic=1
- progresssteps= gibt die Anzahl der zu berechneten Bildpunkte an, bevor eine Fortschrittsanzeige
(%-done Ausgabe auf der Konsole) erfolgt.
Default: 300
Beispiel: progresssteps=5000
- progressprec= gibt die Anzahl der Dezimalstellen an, mit denen die Fortschrittsanzeige
ausgegeben wird. 0 bedeutet keine Dezimalstellen, 1 eine Dezimalstelle usw ...
Default: 1 (eine Dezimalstelle)
Beispiel: progresspres=1
Beispiel für eine mandel.cfg:
outputmask=%0.5d
paramsinpic=1
progresssteps=1966
progressprec=1
Progresssteps=1966 ergibt bei einer Bildgröße von 512x384 Punkten 5%-Schritte.
Parameterdatei
Die Parameterdatei definiert den Bereich des Fraktales, der berechnet werden soll.
Die Parameterdatei muß 5 Zeilen enthalten die eine genau vorgegebene Bedeutung haben:
- Zeile1
- gibt den Zoomfaktor an. Je höher der Wert ist, desto stärker ist die Vergrößerung.
-
- Zeile2+3
- geben den Mittelpunkt des Fraktalbereiches an.
-
- Zeile4
- enthält die Iterationstiefe. Je stärker vergrößert wird, umso höher muß dieser Wert sein.
-
- Zeile5
- gibt die Größe des Bildes in Pixeln an. Damit das Bild nicht verzerrt wird, sollte
das Seitenverhältnis 4:3 betragen (zB. 512 384).
-
Beispiel:
3.022901E+48
-0.17577465702193441051738874310776238778060838803214382943484e0
0.1071284543139064143328909140918102884957829044309999611342e1
30000
512 384
Die Befehlszeile
Ein Aufruf von lmandel ohne weitere Parameter zeigt eine Hilfeseite über die möglichen Angaben.
Grundsätzlich erwartet lmandel ein Kommando und eine Eingabe-Parameterdatei. Abhängig von dem Kommando
müssen bis zu 5 weitere Parameter folgen. Das Kommando selber ist ein einzelner Buchstabe,
Parameter- und Bilddateien werden ohne Erweierung angegeben (also das .par weglassen). Folgende
Kommandos und parameter sind möglich:
lmandel c paramfile: Neuberechnung des Bildes aus der Parameterdatei paramfile.
Achtung: eine bereits begonnene Berechnung wird damit überschrieben.
Beispiel: lmandel c zoom03576
lmandel C paramfile savefile: Weiterberechnung des angefangenen Bildes aus der Parameterdatei
paramfile. savefile ist eine Sicherungsdatei mit Rohdaten, von der die Berechnung forgesetzt
wird. Wird diese Datei nicht angegeben oder gefunden, wird neu berechnet.
Beispiel: lmandel C zoom03576 zoom03576
lmandel z in_paramfile zoomfactor out_paramfile: Rein- oder Rauszoomen des Fraktalesin_paramfile
ist das Ausgangsbild. zoomfactor gibt die Stärke der Vergrößerung an. 1 bedeutet keine Änderung, ein
Wert größer als 1 bedeutet reinzoomen, zB. ist 10 ein 10fach-Zoom. Ein Wert kleiner als 1 und größer als 0 ist
ein Zoomout; 0.1 bedeutet rauszoomen um den Faktor 10. 0 oder ein negativer Wert darf nicht angegeben werden.
out_paramfile gibt den Dateinamen für die Parameterdatei an, in der die gezoomten Werte gespeichert
werden.
Beispiel: lmandel z pre0010 10 pre0011
lmandel p in_paramfile zoomfactor out_paramfile px py: Zoomin mit Verschiebung der Bildmitte.
in_paramfile, zoomfactor und out_paramfile haben dieselbe Bedeutung wie bei dem Kommando z.
px und py geben die Pixel-Koordinaten des Ausgangsbildes an, der nach dem Zoom in der Mitte
sein soll. Da px und py Pixelkoordinaten sind, ist die Bildgröße von Bedeutung.
Beispiel: lmandel p pre0010 10 pre0011 78 56
lmandel Z in_paramfile zoomfactor outparamfileprefix Start Stop: Erstellung der Parameter- und
Batchdateien für eine Zoomberechnung. in_parameterfile und zoomfactor sind schon bei dem
Kommando z beschriben. outparamfileprefix sind die ersten Zeichen der erzeugten Parameterdateien.
Start und Stop geben den Bild(-nummern-)bereich an, für den die Parameterdateien und das
Batch generiert werden. Für die Namensvergabe wird hier der Kondifugationsparameter outputmask aus der
Konfigurationsdatei verwendet.
Die .run-Datei muß noch mit chmod u+x <datei> ausführbar gemacht werden. Diese Datei
enthält eine Reihe von lmandel-Aufrufen, die mit dem C-Kommando die einzelnen Bilder berechnen.
Beispiel: lmandel Z Z50 1.03 zoom 501 600
Dateien
lmandel.cfg Konfigurationsdatei für das aktuelle Verzeichnis
*.par Parameterdateien - enthalten die Parameter für das zu berechnende Fraktal
*.out Sicherungsdateien - Diese Dateien sind ebenfalls im ppm-Bildformat gespeichert, enthalten
aber die Rohbilddaten mit den Iterationstiefen für jeden Bildpunkt. Diese Dateien werden für die
Weiterberechnung eines Bildes gebraucht.
*ppm Bilddatei - ist ein fertig berechnetes Fraktal
*.run Batchdatei - wird von dem Z-Kommando angelegt, um einen Zoom zu berechnen.
Hinweise
Abbrechen der Berechnung
Eine laufende Berechnung kann jederzeit mit Strg+C, kill <pid> oder
killall lmandel abgebrochen werden. Es wird dann auf jeden Fall eine .out-Datei angelegt, von der aus
mit dem Kommando C weitergerechnet werden kann. Anhängig von den Parametern kann es einige Sekunden
dauern, bis das Programm beendet wird.
Iterationstiefe nachträglich ändern
Stellt sich bei einem Bild nachträglich heraus, daß die maximale Iterationsfiefe zu niedrig war, kann diese
nachträglich erhöht werden wobei nur die davon betroffenen Bildbereiche neu gerechnet werden. Dazu muß aber
die .out-Datei vorhanden sein. In der Parameterdatei (.par) wird die neue Iterationstiefe eingestellt.
Dann wird mit dem C-Kommando das Bild berechnet als wenn man eine Fortsetzung der Berechnung durchführen
möchte. Hinweis: Es kann zu Problemen kommen, wenn der Konfiguationsparameter paramsinpic ausgeschaltet
ist, da die in der Bilddatei gespeicherten Parameterinformationen ausgewertet werden.
Zoomberechnung
Um bei einer Zoomberechnung immer den gewünschten Bildbereich mittig zu halten, empfielt es sich, einen
Preview zu berechnen, der etwa um den Zoomfaktor 100 'vor' dem aktuellen Bild liegt. Hier sieht man
frühzeitig, ob das Bild aus der Mitte läuft und kann das mit dem p-Kommando korrigieren. Die neuen
Mittelpunktkoordinaten kopiert man in die aktuelle Parameterdatei und erzeugt dann von dieser Datei ausgehend
mit dem Z-Kommando eine Animation. Als Zoomfaktor ist 1.03 ein guter Wert. Es sollten 100 Bilder
berechnet werden, dann überprüft man erneut die Bildmitte mit einem Preview.
Jürgen Hochwald
email:jh@cfjh.de
homepage:www.cfjh.de
Zurück zur Linuxseite
Letzte Änderung 8.11.2002