Fraktal zum Selberbauen

vorhergehende Artikel in: Numerik
09.02.2020

Es ist zwar schon zu spät für Weihnachten, aber da das Experiment Weihnachtsbaumkugeln benötigt ist es vllt. besser, es zu einer zeit durchzuführen, wenn die Kugeln nicht am Baum gebraucht werden...

Fraktale sind eine faszinierende Sache - manche finden bildliche Darstellungen davon sogar so hübsch, dass sie ihre Wohnungen damit ausgestalten. Im Zuge der Recherchen für neue Ideen im Bereich Chaotische Systeme stieß ich auf einen Artikel, in dem ein weihnachtliches Fraktal beschrieben wird, das ganz ohne Computer auskommt: Man nehme vier stark reflektierende Kugeln (Weihnachtsbaumkugeln) - idealerweise sind sie identisch. Dann halte und fixiere man sie so, dass sie ein Tetraeder bilden und jede Kugel die drei anderen berührt. Nun verdunkle man das Zimmer und benutze eine Lichtquelle um den Mittelpunkt des Tetraeders anzuleuchten. Anschließend ergötze man sich am Resultat.

Man kann dieses Experiment natürlich auch am Computer simulieren. Dazu benötigt man lediglich eine Software, die den Prozess des Raytracing beherrscht; Beispiele dafür sind Persistence of Vision oder Blender.

Allerdings existiert eine Einschränkung bei der Simulation dieses Prozesses im Computer (tatsächlich ist es eine weitere gemeinsamkeit mit Fraktalen): Raytracing folgt imaginären Strahlen von der Kamera aus in die Szene. Beim Auftreffen auf Hindernisse werden diese Strahlen entsprechend realer physikalischer Gesetze abgelenkt, gebrochen, reflektiert,... Dies geschieht so lange bis die strahlen auf eine Lichtquelle in der Szene treffen oder die maximale Anzahl bon Interaktionen mit Objekten in der Szene erreicht ist. In unserem Experiment entspricht diese Maximalzahl (die auch die für die Berechnung des resultierenden Bildes benötigte Rechenzeit beeinflusst) den vorgegebenen maximalen Iterationen zum Beispiel bei der Berechung des Mandelbrot-Fraktals oder Apfelmännchens.

Beim Raytracing kann man den Einfluss dieses Parameters bei unserem Experiment sehr gut erkennen: die folgenden Bilder setzen die maximale Grenze auf die Werte von 1 bis 5 (Wir schauen hier durch eine der Lücken zwischen jeweils drei der Kugeln auf den Mittelpunkt zwischen ihnen, die Szene enthält genau eine weiße Lichtquelle, die genau hinter der Kamera sitzt):

Screenshot Weihnachtsbaumkugelfraktal berechnet mit PovRay, max_trace_level=1

Screenshot Weihnachtsbaumkugelfraktal berechnet mit PovRay, max_trace_level=2

Screenshot Weihnachtsbaumkugelfraktal berechnet mit PovRay, max_trace_level=3

Screenshot Weihnachtsbaumkugelfraktal berechnet mit PovRay, max_trace_level=4

Screenshot Weihnachtsbaumkugelfraktal berechnet mit PovRay, max_trace_level=5

Wer sich auf die reflektionen der Kugeln konzentriert, kann sogar herausfinden, dass man mittels Abzählen der Reflektionen diesen Wert aus dem jeweiligen Bild bestimmen kann...

Zum Abschluss noch ein Bild, bei dem ich maximal 100 Interaktionen mit Szenenobjekten zugelassen habe und drei Lichtquellen benutze, von denen eine blau leuchtet, eine rot und eine grün - sie sind so angeordnet, dass sie jeweils durch eine andere Lücke strahlen. Die Dateien zum Nachstellen und selbst Experimentieren habe ich unten angehängt - benutzt werden sie ganz einfach per

povray wada.ini

Screenshot Weihnachtsbaumkugelfraktal beleuchtet mit mehreren unterschiedlich farbigen Lichtquellen, berechnet mit PovRay, max_trace_level=100

Lizenz
PovRay Ini-Datei
PovRay Szenenbeschreibung

Artikel, die hierher verlinken

Magnetisches Pendel

22.03.2020

da seit meinem letzten Artikel zum Thema Chaos und - im weiteren Sinne Fraktale - bereits einige Zeit vergangen ist hier noch ein Nachtrag aus den Untiefen meines Massenspeichers (Festplatte darf man ja heute nicht mehr sagen...)

Alle Artikel rss Wochenübersicht Monatsübersicht Github Repositories Gitlab Repositories Mastodon Über mich home xmpp


Vor 5 Jahren hier im Blog

  • Certstream, InfluxDB, Grafana und Netflix

    16.04.2019

    Nachdem ich vor kurzem über mein erstes Spielen mit dem certstream berichtete, habe ich weitere Experimente gemacht und die Daten zur besseren Auswertung in eine InfluxDB gepackt, um sie mit Grafana untersuchen zu können.

    Weiterlesen...

Neueste Artikel

  • Die sQLshell ist nun cloudnative!

    Die sQLshell hat eine weitere Integration erfahren - obwohl ich eigentlich selber nicht viel dazu tun musste: Es existiert ein Projekt/Produkt namens steampipe, dessen Slogan ist select * from cloud; - Im Prinzip eine Wrapperschicht um diverse (laut Eigenwerbung mehr als 140) (cloud) data sources.

    Weiterlesen...
  • LinkCollections 2024 III

    Nach der letzten losen Zusammenstellung (für mich) interessanter Links aus den Tiefen des Internet von 2024 folgt hier gleich die nächste:

    Weiterlesen...
  • Funktionen mit mehreren Rückgabewerten in Java

    Da ich seit nunmehr einem Jahr bei meinem neeun Arbeitgeber beschäftigt und damit seit ungefähr derselben Zeit für Geld mit Python arbeite, haben sich gewisse Antipathien gegenüber Python vertieft (ich kann mit typlosen Sprachen einfach nicht umgehen) - aber auch einige meiner Gründe, Python zu lieben sind ebenso stärker geworden. Einer davon ist der Fakt, dass eine Methode in Python mehr als einen Wert zurückgeben kann.

    Weiterlesen...

Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.

Wer daran teilhaben und eventuell sogar davon profitieren möchte, muß damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.

Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...

PS: Meine öffentlichen GitHub-Repositories findet man hier - meine öffentlichen GitLab-Repositories finden sich dagegen hier.