Doku zum Wirbelweltbild - Fraktale-Programme
Download Qt TwinFractals 1.5
vom 05.12.2024 (nur Windows):
www.vitaloop.de/TwinFractals/TwinFractals1.5.zip (42 MB)
Die Viruswarnung bitte ignorieren, die Übertragung von ganzen dll-Ordnern ist nur unüblich.
Notfalls an mich wenden, wenn der Browser den Download löschen sollte.
(Hier alternativ als neue Benoit1.5.exe einzeln,
der Rest von 1.2 bis 1.4 braucht dann nicht gelöscht bzw. überschrieben werden (ist unverändert)).
Statt Installieren nur auspacken und die exe-Datei starten, da, wo sie liegt. Es ist auch der ganze Plugin-Ordner drin (muss eine Ebene tiefer sein, angeordnet wie in der Zip-Datei), deshalb etwas mehr als nötig, aber ich weiß noch nicht, wie es anders geht. Die enthaltene exe-Datei ist 8,4 MB groß.
Auf der Fraktale-Startseite oben stehen weitere Anleitungen als Video, Audio und pdf.
Und hier für interessierte Programmierer, bin für jeden guten Tip dankbar:
qt-Quellcode Stand 05.12.24 (Qt6.7.2).
Was ist neu in Version 1.5?
Es wurden hauptsätzlich am Orbit-Modus Ergänzungen gemacht.
- Es gibt jetzt den Mittelpunkt-Modus. Der Mittelpunkt des Bildes, den man beim Zoomen mit der Maus immer einstellt, oder mit Linien/Mittelkreuz sichtbar macht, wird in voller Zahlenlänge übertragen auf den Startpunkt des Orbit, unabhängig von der Bildgröße. Per Zoom geht man erst nah heran, stellt auf
Linien/(Orbit-Start vom Bild-Mittelpunkt) um, und kann dann die Bildbreite (ohne Maus!) vervielfachen, im Textfeld BreiteX (und Start!) oder per Menü Zahlen ohne dass der vorher genau ermittelte Mittel-Punkt verloren geht. Dann kann man den ganzen Orbit wieder sehen. Zunächst stellt sich der Orbit in der Größe um, und wenn er gut ins Bild passt, wird mit Groesse/(Bild Aktualisieren) das nun verkleinerte Fraktal in den Hintergrund gerechnet.
- Standardmäßig beginnt der Orbit-Modus jetzt mit dünnen Linien.
- Linien/(Orbit erst ab Iterat.(=ZOOM) EIN) ist auch eine neue Einstellung. Damit verkürzt man die Orbit-Liste, wenn man die Einschwingzeit nicht sehen will. In der Grafik ist dann allerdings ein falscher Strich zum Startpunkt, der so als Sprung nicht stattgefunden hat. Wenn man hohe Iterationszahlen hat, etwa maxIter=10000, kann man trotzdem die letzten 256 ausgeben, etwa mit der Zahl 9744, die erst in Zoom eingetragen werden muss, bevor man auf (Orbit erst ab Iterat..) klickt. Anschließend bleibt es drin (bis zur Abschaltung - Menüzeile danach), da ZOOM sowieso intern zurück auf 1 gesetzt wird, wenn der Orbit-Modus läuft. Theoretisch lassen sich so alle 10000 Iterationen in 256-iger Stücken auflisten. Mir geht es momentan um Speicherfragen, nicht jeder hat einen superneuen Rechner. Auf Wunsch lässt sich die Liste auch beliebig verlängern in einem Stück. Es können auch die letzten 5 Iterationen (oder andere) vor der 10000-sten sein, die in die Liste kommen, wenn gleichzeitig Linien/(maximal 5 Iterationen) eingestellt werden.
- Am besten alle drei Einstellungen kombinieren: Orbit-Start vom Bild-Mittelpunkt (für die grafische Anzeige eines Detail-Punktes), Orbit erst ab Iterat (zum Überspringen uninteressanter Einschwingzeiten) und für spezielle Abschnitte, etwa die Stellen kurz vor Divergenz. Natürlich sollte man wissen, ab welcher Iteration der Punkt eventuell divergiert, dazu müssten erst andere Testläufe gemacht werden, weil die Berechnung vielleicht bei Iteration 9744 schon längst abgebrochen ist. Und ZahlAbbr. sollte sicherheitshalber riesig gewählt werden, um künstliche Abbrüche wegen dieser Maximalröße zu vermeiden.
Was ist neu in Version 1.4?
- In der Orbitanzeige war ein Fehler, alle bisherigen Orbit-Bilder müssen erneuert werden. Die y-Werte hatten das umgekehrte Vorzeichen (auße dem Startpunkt). Der Fehler ist behoben. Die Orbit-Listen waren richtig.
- Alle Teilbilder haben jetzt Umrandungen.
- Weil ich nicht das Canceln der Rechnung hinbekomme, ohne das Programm zu schließen, habe ich ganz kleine Vorschaubilder eingefügt, die automatisch starten, wenn man etwas Rechenbares startet. Das ist nützlich für langsame Bilder. Oft erkennt man schon am kleinen Bild, was noch zu ändern ist Mit einem weiteren Klick auf den grünen Button sollte das Berechnen des größeren Bildes beginnen, entweder als Viertelbild oder als Vollbild. Der blaue Button startet das kleine Vorschaubild bei Änderungen in den Textfeldern, oder aus dem Großbild heraus, sofern man ihn benutzt.
- Das jeweils letzte Vorschaubild lässt sich gezielt in den Viertelbildern verschieben, sodaß dort leichter Verschiebungen der Daten untereinander gemacht weden können, wenn man erst das Vorschaubild verschiebt und dann mit dem grünen Button vergrößert. Die kleinen Vorschaubilder werden nicht datenmäßig automatisch gespeichert, im Gegensatz zu den Viertelbildern oder dem Vollbild. Das gerade angezeigte Bild kann immer als Stream in eine Datei geschrieben werden, die auch als Stream lesbar ist. Das Format wurde ergänzt (letztmalig), spätere Ergänzungen werden nur angehängt, somit weiterhin lesbar in späteren Versionen (Version 1.3 ist jetzt nicht lesbar mit 1.4 (die alte Datei ist noch herunterzuladen an gleicher Stelle, als vitaloop.de/TwinFractals/Benoit1p3.exe)).
- Die vier Bild-Ecken können gezielt besetzt werden mit dem Vorschaubild, werden aber ins Vollbild vergrößert. Dadurch kann man die Platzierung mehr wählen, falls man es für eine Demonstration (vergleichend) braucht, allerdings muss das größere Bild vorher gerechnet werden, weil es sonst das Vorschaubild überschreibt.
- Alles im Menü Groesse/Size. Dort können die Vorschaubilder auch ganz abgestellt werden oder frei in der Größe geändert, wieder mit dem Textfeld Zoom.
- Da das Vorschaubild zwar auch sehr groß gewählt werden kann, aber keine Zoom-Funktion hat und auch keine Orbit-Funktion, kann man seine eingestellte Größe für das Vollbild übernehmen (und das Vorschaubild hinterher mit einem Klick wieder verkleinern). Das Rechenformat in Pixeln bleibt dann ganz konstant, auch beim Ziehen am Window. Nur ein Reset schaltet es aus. Diese Festformat-Einstellung wird im Daten-Stream mitgespeichert, und wird wieder geladen. Das PNG speichert aber momentan keine Ausschnitte, was später nötig wird für Filme.
- Bei sehr großen Bildern treten Speicherprobleme auf. Bei noch größeren Arrays stürzt mein Laptop ab (1200 Pixel als Breite gehen, aber 1300 kann ich nicht voreinstellen ohne Absturz).
Was ist neu in Version 1.3?
- Der maximale Zyklenzahl-Parameter für NrAbbr=5 ist einstellbar bis 24 (Standard ist 7, war früher fest), wie man in Bilder01c sehen kann. Wo? Im Menü NrAbbruch ganz unten.
- Der letzte Orbit ist als Zahlenliste speicherbar, zusammen mit anderen wichtigen Bildparametern, die man bei Bedarf eintippen müsste. Es wird eine HTML-Datei, die man nur anklicken muss, um sie zu öffnen. Tag und Uhrzeit sind schon im Dateinamen enthalten. Das Liste-Ausgeben Wo Starten? Erstes Menü (Datei/File) ganz unten.
- Das Speichern des PNG-Bildes und das Speichern der Bilddaten (auch Menü Datei/File) hat jetzt auch einen voreingestellten Namen mit aktuellem Datum und Uhrzeit auf die Sekunde, da kann man später an der Uhrzeit gut herausfinden, was zusammen gehört, falls man beides ohne große Namensänderung gespeichert hatte. Diese Bilddaten sind vom Programm wieder einlesbar und das Bildrechnen startet sofort. Es wird jetzt sogar eine alte Orbitposition mitgespeichert und sofort nachgestellt. Bedingung ist die gleiche Bildgröße. Man kann ja am Fenster ziehen, aber da passen dann die Orbitdaten nicht mehr, weil zum Speichern das Orbit-Startpixel genommen wird. Deswegen ist es wichtig, vor solchen Orbitbilder-Speicherungen nicht am Fenster zu ziehen, sondern den Standard oder ein Pixel-Reset vom Menü Groesse/Size zu machen (VOR dem Bild, weil Reset alles auf Anfang setzt). Bei anderen Bildern ist es egal.
In Mandelbrot.cpp findet man alle Iterate-Programme, die mit "double Iterate" anfangen, ab Zeile 2183. Und hier in PDF 2 (gerade veraltet für Menü Groesse) lassen sich jetzt alle Menues und die Erklärungen von About schon vor dem Download in Bildform ansehen.
Jede verbesserte Version wird mit dem aktuellen Datum hier hingestellt.
Die alten bleiben unter ihrem Namen/Nummer noch an gleicher Stelle verfügbar.
Und ja, ich weiß, Vieles ist noch umständlich und verbraucht Rechenzeit. Aber ich habe meine vielen if() erstmal für die Ordnung gebraucht. Normalerweise gehört eine einzige rekursive Gleichung in den Ablauf, und nicht 98 (so viele sind es tatsächlich). Falls es doch mal eine Version für Filme gibt, muss dann alles für den geplanten Film zusammengeschoben werden, ohne Unterprogramm-Verteiler. Genau dafür gebe ich den Code frei, damit sich das auch ohne mich weiterentwickeln kann. Es ist ein Programm für wissenschaftliche Ziele.
Und ja, ich weiß, globale Variablen sind in Qt verpönt (oder verboten?), aber für so viele Operationen am Bild, oft tausende am Pixel, kann man nicht unbedingt denselben Maßstab anlegen, als wäre es ein Formular. Ich habe das Qt und auch C++ erst seit 4 Monaten (Juni 2024) gelernt, weil ich nie das Geld für ein eigenes C++ -Studio hatte. Qt ist kostenlos, wenn man das Produkt nicht vermarktet, sondern offenlegt.
zurück zu doku/Fraktale
|