Forum: Mikrocontroller und Digitale Elektronik Kurs berechnen mit NMEA Daten


von Michael (Gast)


Lesenswert?

Hallo,

hat mir jemand ne Formel um den Kurs zwischen 2 Punkten zu berechnen?
Gegeben lat1, lat2, lon1, lon2. Gesucht Winkel.
Die Formel sollte so einfach als möglich sein, kleine Fehler sind 
zulässig.
Ich habe die Aviation Formula gefunden, aber die Berechnung ist sehr 
aufwendig, gibts ne einfachere Berechnung?

Gruß Michael

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

Ist das nicht die gleiche Fragestellung, wie diese hier:
Aufgabe 4 (Aufgabentyp: Programmierung)
a) Schreiben Sie ein C-Programm, welches die kürzeste Flugstrecke F 
zwischen zwei Flughäfen
berechnet. Die beiden Flughäfen entsprechen zwei Punkten P1 bzw. P2 auf 
der Erdoberfläche, deren
Positionen durch die Längengrade a1 bzw. a2 und die Breitengrade j1 bzw. 
j2 gegeben sind.
Die kürzeste Flugstrecke kann in zwei Schritten berechnet werden. Zu 
einem Punkt P auf der Erdkugel
sei p
r
= (x,y,z) der auf die Einheitskugel projizierte Punkt bzw. Ortsvektor 
mit den kartesischen
Koordinaten x, y und z. Diese lassen sich aus dem Längengrad a und dem 
Breitengrad j wie folgt
berechnen:
x = cos(a) cos(j), y = sin(a) cos(j), z = sin(j)
Für die zwei Punkte P1 bzw. P2 sind natürlich entsprechende Indizes 1 
und 2 zu verwenden. Mit Hilfe
des Skalarproduktes der Einheitsvektoren 1 p
r
und 2 p
r
und der Arcuscosinus-Funktion erhält man den
Winkel (im Bogenmaß) zwischen 1 p
r
und 2 p
r
. Unter Berücksichtigung des Erdradius R = 6371 km erhält
man schließlich die kürzeste Flugstrecke F:
F = R . arccos( x1 x2 + y1 y2 + z1 z2 ) Für das Programm ist nur diese 
Formel und nicht ihre Herleitung wichtig !
Das Programm soll folgenden Spezifikationen genügen:
· Die Längengrade a1 bzw. a2 und die Breitengrade j1 bzw. j2 beider 
Punkte sind in der Funktion main()
sinnvoll kommentiert einzulesen. Alle Winkel sollen im Gradmaß 
eingegeben werden.
· Die Berechnung der Flugstrecke F soll durch eine in der gleichen 
Programmquelle enthaltene Funktion
abstand() erfolgen, der als Parameter die Werte a1, a2, j1, j2 übergeben 
werden sollen. Das Ergebnis
soll als return-Wert geliefert werden.
· Die Funktion abstand() soll in der Programmquelle hinter der Funktion 
main() angeordnet sein.
· Die berechnete kürzeste Flugstrecke F ist in main() kommentiert 
auszugeben.
Hinweise:
· Beachten Sie, dass sich die Winkelfunktionen in C auf Argumente im 
Bogenmaß beziehen.
· Die Kreiszahl p kann hier mit dem Wert 3.14159 angenähert werden.
· Beachten Sie auch die genaue Bezeichnung der Arcuscosinus-Funktion, 
die als C-Standardfunktion
existiert.

von Zip (Gast)


Lesenswert?

Zur Herleitung (dann kann man abschaetzen was vernachlaessigt werden 
kann).
Der Startvektor (Erdmittelpunkts zu Startkoordinate) und der 
Endvektor(Erdmittelpunkt zu endkoodinate) werden gekreuzt. Dies ist die 
Drehachse, der kuerzeste Weg ist nun in dieser Ebene.

von Selmak (Gast)


Lesenswert?

>hat mir jemand ne Formel um den Kurs zwischen 2 Punkten zu berechnen?
>Gegeben lat1, lat2, lon1, lon2. Gesucht Winkel.

Sollte in jeder math. Formelsammlung stehen unter dem Kapitel sphärische 
Trigonometrie.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.