Dieses Projekt hat das Ziel, die Bewegungen von Körpern unter Berücksichtigung von Gravitationskräften zwischen ihnen möglichst realitätsnah zu simulieren.
Wir haben uns entschieden, das User Interface in Python zu schreiben, welches mehr Programmierkomfort bietet. Da die Berechnungen sehr rechenaufwändig sind, führen wir diese mithilfe des schnelleren C++ durch. Um den Austausch von Daten zwischen beiden Teilen zu ermöglichen, verwenden wir Cython.
Der Startpunkt für das gesamte Programm ist Main.py. Einen ersten Überblick über den weiteren Programmverlauf kann man dem folgenden UML-Diagramm entnehmen:
durchgezogene Pfeile: [Pfeilende] importiert bzw. inkludiert [Pfeilspitze]
gestrichelte Pfeile: [Pfeilende] greift auf [Pfeilspitze] zu
Zuerst wird das GUI erzeugt. In diesem kann der Benutzer Objekte erstellen und Parameter für die Berechnung eingeben. Die Ergebnisse der Berechnung werden aktuell in eine Textdatei geschrieben. Nachdem diese abgeschlossen ist, ruft die Main.py den Visualizer auf. Dieser initialisiert ein VPython-Fenster, in dem die Ergebnisse angezeigt werden.
Der C++-Teil enthält keine main-Funktion. Er wird vor dem Programmstart von Cython zu einer .so-Datei kompiliert und gelinkt, die wie jedes andere Modul in Python importiert werden kann. Welche Funktionen Python nutzen kann, wird im PyCInterface.pyx festgelegt.
Eine gegliederte Auflistung aller Komponenten zusammen mit einer Beschreibung ihrer Funktionen und Quellcodes befindet sich hier.
Einblicke in den Verlauf unserer Projektarbeit kann man hier erhalten.
ausstehend:
Wer dieses Programm selbst nutzen möchte, sollte folgenden Schritten nachgehen:
Wer sich nur mal ein Ergebnisbeispiel ansehen möchte, der:
In Zukunft soll Folgendes noch getan werden: