Forum: Projekte & Code schneller Mandelbrot-Explorer für Windows


von Helmut S. (cheops)


Angehängte Dateien:

Lesenswert?

Hallo,

weil mir die gängigen Fraktal-Generatoren nicht gefielen, habe ich 
selbst ein solches Programm geschrieben ("yet another ...", in Free 
Pascal, für Windows). Ganz oben auf der Wunschliste standen einfache 
Bedienbarkeit, Schnelligkeit und Vollbild-Anzeige, etwa so, wie bei 
einem Bildbetrachter. Für alle, die noch nie in eine fraktale Welt 
hineingetaucht sind, ist dieser Mandelbrot-Explorer bestimmt ein guter 
Einstieg.

Im Archiv MBEx.zip stehen die ausführbaren Dateien samt Dokumentation 
und Quellcode. Wer selber compilieren will, sollte evtl. den FPC 3.0.4 
verwenden. Andere Versionen gehen auch, ausgiebig getestet wurde MBEx 
aber nur als 3.0.4-Übersetzung. Den Compiler gibt's hier:
https://sourceforge.net/projects/freepascal/files/Win32/3.0.4/

Einfach den 32-Bit-FPC standardmäßig installieren, dann im 
Home-Directory von MBEx.pas "fpc mbex" aufrufen. MBEx.pas und alle 
notwendigen Header-Files stehen in MBEx.zip im Ordner "src". Den 
64-Bit-Crosscompiler kann man ebenso standardmäßig wie den 32-Bit-FPC 
installieren. Hinterher "ppcrossx64 mbex" aufrufen, um MBEx in seine 
64-Bit-Variante zu übersetzen.

Beim Codieren von MBEx fiel mir ein merkwürdiges Phänomen auf: Threads, 
die für Windows 32 compiliert wurden, konnten auf Windows 64 nicht mehr 
mit "extended"-Genauigkeit rechnen; wohlgemerkt nur die Threads, nicht 
das Hauptprogramm. Irgendeine Instanz (Pascal-RTL oder Windows-API) 
initialisiert die Thread-FPUs auf "double" (über das FPU-Control-Word 
$027F), obwohl eigentlich "extended" notwendig wäre ($037F). Das ist 
vermutlich kein "Bug", ich befürchte, daß Intel plant, die 
x64-FPU-Genauigkeit an SSE/AVX anzugleichen. Aber egal, solange der 
Prozessor x87-Befehle ausführen kann, kommt MBEx32 auch mit verringerter 
FPU-Genauigkeit zurecht.

Viel Spaß!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.