![]() |
Kurswinkel Berechung
Hallo, ich bin gerade dabei mir eine Unit zusammenzubasteln wo einige Funktionen zu Koordinaten drin sind. Momentan versuche ich eine Funktion zu schreiben, die einem den Kurswinkel (N=0° O=90° S=180° W=270°) von einer Koordinate zu einer anderen Ausgibt.
Im Internet hab ![]() Es soll der Ankunftswinkel ausgerechnet werden. Das hier ist mein Bisheriger Ansatz
Delphi-Quellcode:
Ich hab das mit den Radiant (mit den Delphi arbeitet) und den Grad soweit berücksichtigt, indem ich am Anfang konvertiere und am Ende. Aber wie gesagt kommt immer das falsche Raus :gruebel:
function Direction(Lat1, Lat2, Lon1, Lon2: Extended): Single;
var Lt1: single; LT2: single; LG1: single; LG2: single; DLA: Extended; c: Extended; w: Extended; begin Lt1 := DegToRad(Lat1); Lt2 := DegToRad(Lat2); Lg1 := DegToRad(Lon1); Lg2 := DegToRad(Lon2); DLA := DegToRad(Lon1 - Lon2); C := Sin(Lt1) * Sin(Lt2) + Cos(Lt1) * Cos(Lt2) * Cos(DLA); W := (Sin(Lt1) - Sin(Lt2) * cos(C)) / (cos(Lt2) * sin(C)); Result := RadToDeg(W); end; Danke im Voraus Robin |
Re: Kurswinkel Berechung
hiho
hab mir das eben mal bei wikipedia angeschaut und so wie es aussieht, hast du für die Berechnung der Strecke einmal den ArcCosinus vergessen ;) ![]() MfG blink182 |
Re: Kurswinkel Berechung
Thx für den Hinweis. Jetzt funktioniert es.. zumindest wenn man sich von West nach Ost bewegt^^ Aber ich denk mal um das richtige Ergebniss zu bekommen wenn man sich von Ost nach Webst bewegt muss man einfach 180+W rechnen...
Delphi-Quellcode:
function StartDirection(Lat1, Lat2, Lon1, Lon2: Extended): Single;
var Lt1: single; LT2: single; LG1: single; LG2: single; DLA: Extended; c: Extended; w: Extended; begin Lt1 := DegToRad(Lat1); Lt2 := DegToRad(Lat2); Lg1 := DegToRad(Lon1); Lg2 := DegToRad(Lon2); DLA := DegToRad(Lon1 - Lon2); C := ArcCos(Sin(Lt1) * Sin(Lt2) + Cos(Lt1) * Cos(Lt2) * Cos(DLA)); W := ArcCos((Sin(Lt2) - Sin(Lt1) * cos(C)) / (cos(Lt1) * sin(C))); Result := RadToDeg(W); end; |
Re: Kurswinkel Berechung
ggf. musst du noch die Punkte weiter unten berücksichtigen siehe wikipedia ;) also ob man jetzt von A -> B oder von B -> A möchte ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz