Kurs berechnen mit NMEA Daten

Gast #530390
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
(Firma: Ucore Fotografie www.ucore.de) Persönliche Seite #530395
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.
Gast #530415
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.
Gast #530419
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.