projekt  
  einleitung
  applet
  quellcode
über  
  info
  team
einleitung




Dieses OOP-Projekt simuliert ein Planetensystem.


Die Position aller Massen und somit der Zustand des Systems wird in einem vorbestimmten Zeitabstand deltaT berechnet. Dabei werden die Gravitationseinflüsse aller Himmelskörper aufeinander berücksichtigt. Somit wird ein physikalisch korrektes Modell simuliert.

Nach dem Laden des Applets werden die Körper an beliebige Postionen gesetzt und ihre Eigenschaften eingegeben. Zusätzlich kann ein Anfangsvektor festgelegt werden - die Geschwindigkeit und Richtung des jeweiligen Planeten.

Ein Raumschiff kann durch den Button Orbit auf eine kreisförmige Umlaufbahn eines Planeten gesetzt werden. Dazu gibt man den Umlaufradius in Metern an, selektiert das Zentralgestirn und anschliesend mit dem Button Orbit das Raumschiff bzw. Satellitengestirn.

Durch bestätigen von running wird die Simulation gestartet.

Mit tracking wird die ausgewählte, sich bewegende Masse verfolgt, so dass sie immer sichtbar ist.

Sollte die Simulation zu langsam verlaufen - z.B. bei grossen Massen und Entfernungen - kann man den Wert t-Factor höher setzen. Er gibt die Zeitbeschleunigung an. Bei t-Factor=1 verläuft die Simulation in Echtzeit.
Vorsicht bei hoher Zeitbeschleunigung: Das Raumschiff wird sich schwer steuern lassen...

Sind die Geschwindigkeitsvektoren oder die roten Schubrichtungsvektoren der Raumschiffe zu kurz und damit nicht richtig erkennbar, können diese über v-Factor länger gezeichnet werden.

Mit X oder Y kann der Ansichtsbereich verändert werden: Die Breite bzw. Höhe in Pixel enspricht dabei dem eingegebenen Wert in Metern.


Zur numerischen Berechnung der Bewegung der Massen aufgrund der gegenseitigen Gravitationseinflüsse wird folgende Physik verwendet.
Die Berechnung basiert auf dem Gravitationsgesetz von Newton und geradliniger Bewegung mit konstanter Geschwindigkeit.
Unten wird gezeigt, wie der Verschiebungsvektor (xv,yv) einer Masse mit den Koordinaten (x,y) in Richtung einer beeinflussenden Masse 'm' (x2,y2) berechnet wird.
xd = x - x2
yd = y - y2


x,y ist die Position der Masse
x2,y2 ist die Position der beeinflussenden Masse
d wird aus obigen Werten berechnet als die Länge des oben festgelegten Vektors

s = G * m * deltaT² / (2 * d²)


G ist die Gravitationskonstante
m ist die beeinflussende Masse

Der neue Richtungsvektor ergibt sich damit wie folgt:

xv = xv + s * xd / d
yv = yv + s * yd / d


Die neue Position bekommt man durch Addieren des neuen Richtungsvektors.
Im Programm müssen natürlich alle anderen Massen miteinbezogen werden. D.h. obige Berechnung läuft in einer Schleife ab, wobei die jeweiligen Richtungsvektoren addiert werden und der resultierende Vektor zum Schluss in einer eigenen Schleife zum Ortsvektor der entsprechenden Masse addiert wird um die neuen Positionen zu erhalten.



Kollidieren zwei Himmelskörper miteinander, so verschmelzen sie zu einer Masse. Die neue Richtung und Geschwindigkeit dafür wird mit Hilfe der Formel für den vollkommen unelastischen Stoss bestimmt.