Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1718:protokoll
Donnerstag, 30.11.2017

Zunächst wurde begonnen das mathematische Modell ohne Visualisierung zu realisieren, um zu zeigen das das Gesamtkonzept funktioniert ('Prove of concept'). Dies war Erfolgreich.
Weiter wurde auch die Ausgabe als Textdatei realisiert. Diese weißt aber noch Bugs in der Fächerverteilung auf. Die Kugeln scheinen in der Regel ein Fach zu überspringen, aber nicht immer.

Donnerstag, 07.12.2017

Das mathematische Modell konnte vollständig realisiert werden.
Es wird mit der Recherche verschiedener Visualisierungen begonnen. Als engere Kandidaten kommen 'graphics' und 'pygame' in Frage. Die Entscheidung fällt auf 'graphics' aufgrund beweglicher Objekte.
Außerdem wird überlegt zunächst die Trajektorien aller Objekte auszurechnen und diese anschließend mit einem beliebigen Programm zu realisieren. Diese wird später aber verworfen.
Als erstes Problem stellt sich heraus mehrere Objekte über eine Schleife zu erzeugen.

Donnerstag, 21.12.2017

Die dynamische Berechnung der Pin-Positionen, so wie die Fächer wurden visualisiert. Nun kann mit Hilfe des Strukturparameters $struc$ dynamisch die Anzahl der Fächer und so die Anzahl der Pins verstellt werden. Die Darstellung des Bretts ist damit abgeschlossen.
Es wird mit der Animation der Kugeln begonnen.

Donnerstag, 11.01.2018

Die anfangs gerade Bewegung der Kugel wird in eine Springende Bewegung umgewandelt, dazu wird der Kugel ein Impuls zugeordnet. Außerdem wird eine Kollision-Abfrage eingebaut, die zunächst den Abstand zu allen Pins berechnet und für einen Pin unterhalb einer Abstandsgrenze den Impuls der Kugel umkehrt. Dies leitet den beginn des physikalischen Modells ein.

Donnerstag, 18.01.2018

Die Erzeugung der Pin geschah bisher frei und führte jedoch zu dem Problem das nur noch der zuletzt erzeugte Pin ansprechbar war. Dies wird behoben indem die Pins so wie alle Kugeln nun in Listen gespeichert werden.

Donnerstag, 01.02.2018

Die Kugeln werden nun in Tupellisten aus Ort und Impuls gespeichert. Es treten Probleme mit der Visualisierung auf, 'graphics' scheint mit größerer Kugelanzahl nicht zurecht zu kommen. Um die Perfomance zu verbessern wird auf die 'move'-Operation von 'graphics' verzichtet und nur noch Kugeln vor und nach ihrer Bewegung gezeichnet. Dies führt aber nicht zu einer deutlichen Verbesserung. Daraufhin wird entschieden auf 'graphics' zu verzichten und auf 'pygame' zu wechseln.

Donnerstag, 08.02.2018

Das Fallbrett wird vollständig in 'pygame' implementiert. Auch dies liefert aber keine deutliche Verbesserung der Performance. Das problem ist die Kollisionsabfrage, die bisher noch nur die Pins berücksichtigt, aber in jeder Bewegung alle Pins für jede Kugel zu kontrollieren ist einfach zu viel.
Als alternative wird ein kd-Tree aus 'scipy' implementiert. Auch dies führt zu keiner akzeptablen Verbesserung. Möglicherweise ist die Simulation von 2000 Kugeln und mehr zu viel um sie live durchzuführen.

Donnerstag, 15.02.2018

Die Performance kann deutlich verbessert werden nach dem die Leafsize des kd-Tree's reduziert wird.
Die Kugel-Startposition wird über Zufallszahlen(RNG) leicht variiert. Dies erzeugt allerdings sehr symmetrische Muster beim Fallen der Kugeln.
Des weiteren wird die Auswertungsmethode und Dateiausgabe die bereits im mathematischen Modell benutzt wurde, auch in das physikalische Model implementiert.

Dienstag, 06.03.2018

Die Kugel-Kugel-Kollision wird mit einem weiteren kd-Tree hinzugefügt. Es wird eine Testbench gebaut um die Kugel-Kugel-Kollision genauer zu betrachten, da beim Fallen der Kugeln Probleme auffallen. Bisher sind alle Stöße Zentralstöße, die in manchen Situation zu seltsamen Verhalten der Kugeln führt.

Mittwoch, 07.03.2018

Um die Stöße realistische zu simulieren, werden nun auch dezentrale Stöße berücksichtigt. Die Kugeln werden bisher als Tupel in Listen geführt, dies wird nun durch eine Objektversion ersetzt. So wird auch ermöglicht Vektoroperationen aus 'scipy' zu benutzten, da nun Ort und Impuls als Vektorobjekte vorliegen. Allerdings gibt es hier Fehler bei der Berechnung die zu riesigen Impulsen der Kugeln führen.

Tages-Protokoll

ws1718/protokoll.txt · Zuletzt geändert: 2018/03/26 04:25 von m.hansemann