Ich entwickle ein Spiel im Zusammenhang mit der Weltraumsimulation und habe einige Probleme, die Bewegung von Doppelsternen wie folgt zu implementieren:
Die beiden Sterne umkreisen ihren Schwerpunkt und ihre Flugbahnen sind Ellipsen.
Ich weiß im Grunde, wie man die Winkelgeschwindigkeit an jeder Position bestimmt, aber nicht die Winkelgeschwindigkeit über die Zeit. Für einen bestimmten Winkel kann ich die Position der Sterne sehr einfach berechnen (vgl. Http://en.wikipedia.org/wiki/Orbit_equation ).
Ich möchte die Position der Sterne im Laufe der Zeit erreichen. Die parametrischen Gleichungen der Ellipse funktionieren, geben aber nicht die richtige Geschwindigkeit an :
{ X(t) = a×cos(t) ; Y(t) = b×sin(t) }
.
Ist es möglich und wie geht das?
mathematics
physics
Artefakt2
quelle
quelle
Antworten:
Wenn Sie ein paar Links von der Wikipedia-Seite folgen, auf die Sie verweisen, führt dies zu Position als Funktion der Zeit .
quelle
Sie scheinen genug Daten gehabt zu haben, um die handliche Animation oben zu erstellen. Ihre Simulation benötigt möglicherweise mehr Genauigkeit als von meiner Lösung bereitgestellt:
Notieren Sie für jedes Bild Ihrer obigen Animation die Pixelpositionen der Zentren jedes Sterns. Geben Sie diese Werte in zwei Arrays in Ihrem Programm ein. Suchen Sie für eine gegebene Zeit t die entsprechenden vier aufeinanderfolgenden Einträge in jedem Array und führen Sie einen bikubischen Filter durch, um die Position jedes Sterns zu ermitteln.
quelle
Ich habe festgestellt, dass die numerische Integration der einfachste Weg ist. Das inverse Quadratgesetz (F = GM / r ^ 2) funktioniert ziemlich gut. Und Runge Kutta Order 4, oft RK4 genannt, ist einfach zu implementieren und funktioniert sehr gut. Sie beginnen mit dem Schreiben einer Routine, die eine Zeitableitung erster Ordnung benötigt, beispielsweise für ein einzelnes Objekt im 2D-Raum, Sie haben X- und Y-Koordinaten sowie X- und Y-Geschwindigkeiten. Die Ausgabe ist die Zeitableitung, die Zeitableitung der Position ist einfach Geschwindigkeit, also kopiert die Hälfte nur Werte, dann ist die Beschleunigung nur die Anziehungskraft. Dann folgen Sie dem Runge Kutta Rezept. Der Fehler eines einzelnen Zeitschritts ist proportional zum Zeitschritt zur fünften Potenz. Sie passen den Zeitschritt an, um das Ergebnis genau genug zu machen. Ein Vorteil der numerischen Integration besteht darin, dass Sie mit dem System spielen möchten, um es interessanter zu machen.
quelle