Was ist lmandel ?

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.

Download

Aktuelle Version : 0.22 (19.10.2002)
Download : lmandel-0.22.tgz

Installation

Voraussetzungen

Bevor das Programm installiert werden kann, sollten folgende Bedingungen erfüllt sein:

Installation

Um das Programm zu installieren, ist folgendermaßen vorzugehen:
Entpacken der Archivdateitar xvzf lmandel-0.22.tgz
Kompilierung startengcc lmandel.cpp -lm -lgmp -olmandel
Nach erfolgreicher Kompilierung wurde eine Programmdatei lmandel im aktuellen Verzeichnis angelegt.

Konfigurationdadtei

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

Kontakt

Jürgen Hochwald
email:jh@cfjh.de
homepage:www.cfjh.de


Zurück zur Linuxseite
Letzte Änderung 8.11.2002