Hallo,
ich habe gerade ein mathematisches Problem. Genauer gesagt möchte ich mit folgenden Informationen: Latitude, Longitude des Betrachters + Azimut und Elevation eine Art Augmented Reality erstellen. Genauer gesagt wollte ich anhand der GPS Daten die mir mein Telefon liefert die Position des Sternenhimmels auf die Kamera zeichnen. Ich hab das ganze vor Jahren mal in 2D auf den Monitor gerendert, aber ehrlich gesagt wenn man die mathematischen Hintergründe seit Jahrzehnten nicht mehr gebraucht hat, fällt einem das ganz schön schwer.
Delphi-Quellcode:
procedure findPosition(const Latitude, Longitude, Azimuth, Elevation: single; out x, y: single);
var lat2, lon2: single;
distance: single;
begin
distance := CalulateDistance(Elevation);
lat2 := arcsin(sin(Latitude) * cos(distance) + cos(Latitude) * sin(distance) * cos(azimuth));
if cos(Latitude) = 0 then
lon2 := Longitude
else
lon2 := Longitude-(arcsin(sin(azimuth) * sin(distance) / cos(Latitude)));
x := XFromLat(lat2);
y := YFromLong(lon2);
end;
Aus meinen alten Aufzeichnungen habe ich im Ansatz obigen Code zusammengestellt, aber wie gesagt ich komme damit nicht wirklich weiter
mm, wie sieht die Formel auf dem Papier aus ?
was verbirgt sich denn hinter folgenden variablen: Azimuth, Elevation:
Genauso wie hier distance := CalulateDistance(Elevation);