So berechnen Sie die aktuelle Entfernung zwischen zwei Planeten [Duplikat]

Ich möchte einer meiner Apps eine Funktion hinzufügen, die die aktuelle Entfernung zwischen der Erde und dem Mars (oder jedem anderen Planeten) berechnet. Meine Google-Suche hat mich zu Statistiken über durchschnittliche Entfernungen geführt (da die Umlaufbahn eines Planeten elliptisch ist und daher die Entfernung stark variieren kann), sowie zu Artikeln über Keplers Gesetze der Planetenbewegung und mehr. Ich habe auch einige Erwähnungen von HORIZONS gesehen , aber wenn ich es übersehe, sehe ich nichts, was meine Fragen beantworten könnte.

Ich habe keine Messwerte gefunden, die explizit beschreiben, wie die aktuelle Entfernung zwischen zwei Planeten berechnet wird. Also, wie wird das gemacht?

Bitte erläutern Sie Ihre Antwort und die erforderlichen Schritte, damit ich sie besser verstehe. Pseudocode ist willkommen.

Vielen Dank!

Antworten (1)

Es gibt viele verschiedene Möglichkeiten, dies zu tun.

Eine Möglichkeit besteht darin, die keplerschen Elemente und ihre Raten, die von der JPL Solar System Dynamics -Website abgerufen werden, zu verwenden, um die kartesischen Koordinaten der Planeten in der Ekliptikebene zu einem bestimmten Zeitpunkt zu bestimmen. Informationen und Daten, die eine Berechnung der ungefähren Positionen der Planeten ermöglichen, sind in dem Dokument „Keplerian Elements for Approximate Positions of the Major Planets“ von EM Standish enthalten.

Dann für jeden der Planeten, ich , haben wir die Positionskoordinaten im Formular

r ich = [ x ich j ich z ich ]
Da diese Koordinaten alle im gleichen Bezugsrahmen angegeben sind, ergibt sich der Verschiebungsvektor von Planet ich zum Planeten j erhalten Sie bei
r ich j = [ x ich j j ich j z ich j ] = [ x j x ich j j j ich z j z ich ]
und die Entfernung zwischen Planeten ich und j kann mit berechnet werden
r ich j = r ich j = x ich j 2 + j ich j 2 + z ich j 2
Das in dem Dokument beschriebene Verfahren zum Erhalten der Ekliptikkoordinaten ist sehr einfach in Software zu implementieren.