Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03464.jsonl.gz/797

Fractals and Landscape
Lucas Schmid, Raphael Zimmermann, Julian Dominguez
Fraktale in der theoretischen Physik
Mandelbrot war der erste Physiker welche sich mit der Geometrie von Objekten beschäftig hat.
Landschaftsgenerator
Das Ziel unseres Seminars war einen Algorithmus zu entwickeln, der eine fraktale Landschaft generiert und dazu ein Programm zu schreiben, welches diese Landschaft visualisiert. Wir haben zwei Algorithmen gefunden. Der erste erzeugt ein Non-Random, der zweite ein Random Fraktal.
Aufbau der Landschaft
Wir legen eine quadratische Grundfläche von 128 x 128 Punkten fest und weisen jedem Punkt einen X und Y Koordinate zu. Die Höhe, die der Z Koordinate entspricht, soll durch den Algorithmus berechnet werden.
Non-Random Algorithmus
Die vier Eckpunkte der Grundfläche haben eine zufällig gewählte Höhe, jene ist aber während einer Generierphase nicht veränderbar. Der Algorithmus errechnet die Z-Koordinate für die Seitenmittelpunkte und den Diagonalenschnittpunkt des Quadrates. Die Höhenwerte der angrenzenden Eckpunkte ergeben arithmetisch gemittelt die Höhe des Seitenmittelpunktes. Diese vier neu errechneten Werte summieren wir und teilen durch die Zahl 3.75 . Das Resultat weisen wir als Höhe dem Quadratmittelpunkt zu. Den Betrag des Teilers auf 3.75 zu setzen ist zufällig. Jedoch erwies sich dieser Wert aus der Erfahrung mit dem Programm als interessantester.
Random Algorithmus
Wir legen ein quadratisch angelegtes Raster über die Landschaft, dessen Auflösung innerhalb eines vorgegebenen Bereiches wählbar ist. Jedem Rasterpunkt wird eine zufällig generierte Zahl aus einem festgelegtem Intervall als Höhe zugeordnet. Der Algorithmus errechnet die fehlenden Z-Koordinaten durch Verfeinerung des Rasters. Dem Mittelpunkt zweier Rasterpunkte wird das arithmetische Mittel aus den angrenzenden Höhen zugewiesen, zusätzlich verändern wir den Wert um eine Random-Zahl, die in einem wählbaren Prozentbereich des Wertes liegt.
Die Darstellung der Landschaft
Um die Landschaft darzustellen, schrieben wir ein kleines C++-Programm, welches die OpenGL-Library benutzt. Alle errechneten Punkte der Landschaft sind Eckpunkte von kleinen Dreiecken, so dass ein ganzes Netz solcher Dreiecke entsteht, welches das Programm dreidimensional abbildet.
Damit man sich die Landschaft besser vorstellen kann, programmierten wir sechs verschiedene Farbschemas. Dadurch bekommt man den Eindruck, dass man sich in einer Gebirgslandschaft, Unterwasserwelt, Wüste, oder auf einem Gletscher befindet. Diesen Effekt erreichten wir, indem wir die Farbe einer Dreiecksfläche als Funktion der Höhe berechneten. Man kann vom einen zum anderen Farbschema über das Kontextmenu oder direkt über die Tastatur wechseln.
Einen speziellen Effekt programmierten wir für die Gebirgslandschaft: Mit der Taste 'l' kann man den Seespiegel ansteigen lassen. Über die Taste 'n' variiert man die Schneegrenze, so dass man eine Sommer- oder eine Winterlandschaft erhält.
Die Feinheit des Rasters im Random-Algorithmus kann mit der Taste 'p' verändert werden. Über die Taste 'r' variiert man die Randomzahl.
Navigation
Das Navigieren durch die Landschaft erfolgt über die Tastatur und die Maus:
vorwärts: w
rückwärts: s
links: a
rechts: d
hinauf: mittlere Maustaste gedrückt, Mausbewegung nach unten
hinab: mittlere Maustaste gedrückt, Mausbewegung nach oben
Die Blickrichtung ändert man mit gedrückter linker Maustaste und einer Mausbewegung in die gewünschte Richtung.
Download Software
Back to the main page of the seminar