Skip to content

momefilo/mandelbrodt

Repository files navigation

Fraktalgenerator nach Mandelbrodt

Edit: Das PDF hat mehr Anhang
Das Programm enthält eine, hier nicht weiter dokumentierte Serienaufnahme-Funktion die alle Apfelmännchen mit einem Depth-Wert bei 1 beginnend, bis zu im Programm bereits berechneten Depth-Wert und der anderer Parameter berechnet und deren BMP-Bilddateien im Ordner „bmp" speichert. Der Button „Seq" startet die recht zeitaufwendige Prozedur. Doch danach können mittels „ffmpeg" interessante Videos der Änderung der Mandelbrodtmenge über die Iterationstiefe erstellt werden.

Wichtig: Zum Start der Anwendung muss das „start.sh"-Script mit sudo-rechten aufgerufen werden

Fraktale nach Mandelbrodt sind Selbstähnliche Strukturen welche mit diesem Programm, in Abhängigkeit der Iterationstiefe gefärbt und als BMP-Bilddatei gespeichert werden können. Zur Bedienung des Programms werden Begriffe gebraucht die im Folgendem erörtert sind.


Bild oben: Wichtig Die Zahlenwerte haben eine Überschrift und können mit je vier Buttons darüber in Schritten erhöht, und vier Buttons darunter gesenkt werden. Änderungen müssen mit Klick auf „Calc" neu berechnet/abgebildet werden.

Zoomen
Wir „zoomen in das Apfelmännchen in dem wir den kleinen magentafrbenen „Maus-Quader" des Programms, durch Drücken und Halten der linken Maustaste den Startpunkt und durch bewegen der Maus zum Endpunkt, diese Punkte mit einem zusätzlichen rechten Mausklick festlegen. Das Programm beginnt unmittelbar mit der Neuberechnung\

X-Res und Y-Res
Diese Parameter legen die Auflösung des zu berechnenden Apfelmännchen fest in der es auch als Bild gespeichert wird, aber nicht unbedingt die im Programm dargestellte. Das Programm skaliert das Apfelmännchen so das es vollständig zu sehen ist. Beim Start des Programms sind diese immer gleich der Monitorauflösung. Um eine eventuell gewünschte mathematisch genaue Abbildung des Apfelmännchens zu erreichen ist hier ein 3 zu 2 Format zu wählen.

r-Min/Max und i-Min/Max
Diese Parameter sind zur Bedienung des Programms nicht nötig und überspringbar
Die Abbildungen der Apfelmännchen-Struktur errechnen sich durch Zahlenpaare zwischen den r/i-min/max Werten welche den X/Y-Achse des Apfelmännchen zugeordnet werden. Der Symmetrie des Apfelmännchen und des Algorithmus wegen, geben die Startwerte dieser Parameter nur Sinn wenn r zwischen einschließlich -1 und +2 sowie i zwischen -1 und +1 liegen. Wenn wir diese Werte ändern verschieben wir tatsächlich den Ursprung der Koordinaten innerhalb des Apfelmännchen, und ändern diese Parameter besser durch das Zoomen. Wer experimentieren will kann die Asymmetrie durch ändern der i/r-min/max Werte von Hand, am besten direkt nach dem Start des Programms berechnen und abbilden lassen

Depth
Das im oberen Bild zu sehende SW-Apfelmännchen entsteht durch Grauabstufung in Abhängigkeit davon, wie oft ein Algorithmus auf den Bildpunkt angewendet werden muss bis dessen Ergebnis eine Abbruchbedingung erfüllt. Diese Anzahl an Wiederholungen bezeichnen wir hier als Iterationstiefe. Der Algorithmus ist im Anhang detailliert beschrieben und hier Überflüssiges, denn zum Verständnis genügt es zu wissen das jedem Bildpunkt eine Iterationstiefe zugeordnet ist, welche die Farbe oder Intensität des Bildpunktes bestimmt. Den Depth-Wert den wir im Programm vorgeben, legt den Maximalwert an Iterationen/Wiederholungen des Algorithmus fest der über die Bildpunkte ausgeführt wird, und die Farbe der Bildpunkte legen wir anschließend anhand deren Iterationstiefen fest. Erhöhen wir den Startwert Depth von 100 auf 500 und klicken auf „Calc", haben wir in weniger als einer Sekunde einen Eindruck der graphischen Wirkung in Schwarzweiß.

Farbgestaltung
Um die Farbgestaltung zu verstehen, stellen wir uns die Iterationstiefen als Zahlenstrahl von Null bis zu unserem vorgegeben Depth-Wert mit Lücken vor, dem wir die Menge aller Bildpunkte zuordnen. So sind der Zahlenstrahl und Iterationstiefe 1 alle Bildpunkte zugeordnet die nach einmaliger Ausführung die Abbruchbedingung erfüllten, und der zwei alle Bildpunkte die nach zweimaliger Ausführung die Abbruchbedingung erfüllten und so fort. Die Iterationstiefe 0 entspricht schwarz und je höher diese desto heller der Punkt nach dem Start des Programms. Schwarz bedeutet das der Bildpunkt bis zum Depth-Wert die Abbruchbedingung nicht erfüllt hat.

Farbgeber
Das Programm bietet für jede Iterationstiefe einen RGB-Farbgeber, mit dem die Farbe aller Bildpunkte welche der Iterationstiefe entsprechen vorgegeben werden kann. Wichtig zu wissen das die obere der beiden türkisfarben markierten Zahlen im Bild die Iterationstiefe, und die untere die Anzahl an Bildpunkten zeigt welcher dieser Iterationstiefe entsprechen.

Bild: Drei vollständig und ein teilweise zu sehender Farbgeber. Links im Bild die Navigations- und Befehlsbuttons der Farbgebung
Da die Menge an Farbgebern meist nicht in einem Satz sichtbar ist, zeigt die obere Zahl im gelb markierten Bereich den aktuell angezeigten Satz und die Untere die Anzahl an Farbgeber-Sätzen an. Mit einem Klick auf die Zahlen des Farbgebers werden die RGB-Werte dessen zu 0.
Die Pfeilbuttons dienen der Navigation innerhalb der Sätze. Die Farbe kann durch ziehen der Farbbalken im Farbgeber mit der Maus eingestellt werden und wird im waagerechten Balken unter der Anzahl an Bildpunkten dargestellt. Ein Klick auf diesen Querbalken färbt die Zahlen weis und zeigt somit an, das dieser Farbgeber einen Festen Wert innerhalb eines zu erstellenden Farbverlaufes zwischen mindestens zwei solcher markierten Farbgebern ist. Diesen können wir mit einem Klick auf den linken Button im magentafarben markierten Bereich des Bildes erstellen. Der rechte Button dient der Übertragung der in den Farbgebern eingestellten Farben auf das Apfelmännchen.

Im Anhang „Code-Einsprungpunkt" wird auf eine Zeile im Quelltext verwiesen, dessen Änderung eine Verschiebung des Schwarz-weißen Apfelmännchens innerhalb des Spektralbereich ermöglicht, und als Einsprungpunkt algorithmischen Farbgebungs-Codes dient, dessen Spezifikation(Parameter?,Ziel?) durch Umgang mit den Farbgebern des Programms erdacht werden kann.

Speichern der Apfelmännchen
Mit einem Klick auf „save" wird ein BMP-Bild des Männchens mit der Zeit als als Namen im Ordner „bmp" der Programmdatei abgelegt. Gleichzeitig wird das Apfelmännchen mit seinen Farbgebern in der Leiste wie sie im Bild links zu sehen ist, gespeichert und kann durch klicken auf das kleine Abbild aufgerufen werden. Ein Klick auf die rote Fläche neben dem Abbild löscht das gespeicherte Apfelmännchen.

Sortierergebnisse\

r und i
Wenn wir uns mit dem „Maus-Quader" über dem Apfelmännchen befinden, zeigen uns r und i das zum Bildpunkt gehörende Zahlenpaar des Algorithmus an

Fertig
Da Berechnungen mit großen Depth-Werten länger als gewohnt dauern und das Programm keinen Fortschritt darstellt und die Eingabe blockiert ist, erscheint während laufender Berechnung hier „Rechne" in rot

I-Werte
Ist die Anzahl der Iterationstiefen die über alle Bildpunkte gefunden wurde, einschließlich schwarz.

oneMembers
Ist die Anzahl der Iterationstiefen welche nur ein Bildpunkt entspricht

tenMembers
Anzahl der Iterationstiefen welche weniger als elf Bildpunkte entsprechen (inklusive oneMember).

Im Anhang „Sortierwerte" diesen Dokuments wird der Programmcode aufgezeigt ,welcher durch Zahlenänderung die Ergebnisse one/tenMember mit anderer Anzahl an Bildpunkten errechnen lässt.

Anhang

Sortierwerte
In den Codezeilen 133 und 135 der /include/_Apple.cpp können die Grenzwerte zur Ermittlung zugehöriger Bildpunkte direkt geändert und anschließend neu kompiliert werden.

133 if(iterMembers[i][1] < 2){
134 oneMembers.push_back(iterMembers[i][0]);} else if(iterMembers[i][1] < 11){ 135
135 tenMembers.push_back(iterMembers[i][0]);}

About

NON PICO

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages