Umwandlung von Äquatorialkoordinaten in Horizontkoordinaten

Ich entwickle meine eigene Planetarium-Software mit C++ nach dem Buch Practical Astronomy with your Calculator or Spreadsheet 4th Edition .

Ich weiß nicht, ob meine Formeln korrekt sind oder nicht, aber wenn ich meine Ergebnisse (Azimut und Höhe) mit Stellarium überprüfe, sind sie unterschiedlich.

Ich habe auch meine Werte mit dieser Seite überprüft , aber sie sind unterschiedlich. Übrigens unterscheiden sich auch Azimut und Höhe auf dieser Seite von den in Stellarium angegebenen Werten.

Wissen Sie, wo ich die Formeln finden kann, um Himmelskoordinaten in horizontale Koordinaten umzuwandeln?

Einige unmittelbare Gedanken (z. B. verwenden Sie Bogenmaß bei der Berechnung trigonometrischer Funktionen), aber die offensichtlichste Frage: Können wir Ihren Quellcode sehen?
Ja, ich verwende Radiant. Und nein, Sie können meinen Quellcode nicht sehen. Es gibt viele Klassen.
Haben Sie Ihre Ergebnisse mit anderen Quellen verifiziert und diese auch für Stellarium abgeglichen? Vielleicht ist Ihr Referenzrahmen anders.
Wie wäre es nur mit dem Teil Ihres Quellcodes, der die Berechnung durchführt? Der Versuch, eine "Black Box" zu debuggen, ist ziemlich schwierig.

Antworten (1)

Es hängt davon ab, von welchen Himmelskoordinaten Sie konvertieren. Ich nehme an, Sie arbeiten in äquatorialen Koordinaten. Dann kannst du wie folgt umrechnen:

bräunen EIN = Sünde h cos h Sünde ϕ Ö bräunen δ cos ϕ Ö
{ cos a Sünde EIN = cos δ Sünde h cos a cos EIN = cos δ cos h Sünde ϕ Ö Sünde δ cos ϕ Ö
Sünde a = Sünde ϕ Ö Sünde δ + cos ϕ Ö cos δ cos h

Woher EIN ist Azimut, a Höhe, a Rektaszension, δ Deklination, h Stundenwinkel u ϕ 0 Breitengrad des Beobachters.

Quelle: Wikipedia

Ja, das ist die Formel, die ich verwende.