![]() |
AW: Wie mathematisch einer gewünschten Lösung nähern?
Ich glaube, es wäre ganz gut, wenn du mehr zu dem Problem erzählen würdest.
Ansonsten kann hier noch lange herumgeraten werden :mrgreen: |
AW: Wie mathematisch einer gewünschten Lösung nähern?
Lass mich raten, du bist Geocacher? :D
|
AW: Wie mathematisch einer gewünschten Lösung nähern?
Näherungsweise (die Erde ist eher eliptisch) kann man den Abstand zwischen zwei Punkten auf der Erde so berechnen:
Delphi-Quellcode:
Manfred
const
RErde=6366.71; //Radius Erde in km torad:extended=pi/180; { Umwandlung ° in radiant } Lat1:=la1*torad; // Latitude Punkt 1 Lon1:=lo1*torad; // Longitude Punkt 1 lat2:=la2*torad; // Latitude Punkt 1 lon2:=lo2*torad; // Longitude Punkt 1 Distanz:=ArcCOS(SIN(Lat1)*SIN(Lat2)+COS(Lat1)*COS(Lat2)*COS(Lon1-Lon2))*RErde; //Entfernung in km Richtung in ° if(SIN(Lat2-Lon2)<=0) then Richtung:=ARCCOS((SIN(Lon1)-SIN(Lat1)*COS(Distance))/(1E-28+(SIN(Distance)*COS(Lat1)))) else Richtung:=2*pi-ARCCOS((SIN(Lon1)-SIN(Lat1)*COS(Distance))/(1E-28+(SIN(Distance)*COS(Lat1)))); Reichtung:=Direction/torad; // Richtung in ° |
AW: Wie mathematisch einer gewünschten Lösung nähern?
Oder:
Delphi-Quellcode:
"Richtig"?!?
function GetDistanceBetween(lat1,Long1,lat2,Long2 : Double) : Double;
var F,G,L : Double; SF, SG, SL, CF, CG, CL : Double; W1, W2 : Double; S, C : Double; O,R,D : Double; H1, H2 : Double; ff : Double; begin ff := 1 / 298.257; F := (lat1 + lat2) / 2; G := (lat1 - lat2) / 2; L := (long1 - long2) / 2; SF := Sin(F*Pi/180); SG := Sin(G*Pi/180); SL := Sin(L*Pi/180); CF := Cos(F*Pi/180); CG := Cos(G*Pi/180); CL := Cos(L*Pi/180); W1 := sqr(SG * CL); W2 := sqr(CF * SL); S := W1 + W2; W1 := sqr(CG * CL); W2 := sqr(SF * SL); C := W1 + W2; O := ArcTan(Sqrt(S/C)); R := Sqrt(S*C) / O; D := 2 * O * 6378.14; H1 := (3*R-1) / (2*C); H2 := (3*R+1) / (2*S); W1 := sqr(SF * CG) * H1 * ff + 1; W2 := sqr(CF * SG) * H2 * ff; result := D * (W1 - W2); end; Mavarik PS.: Gefunden... Nicht getippt... ;-) |
AW: Wie mathematisch einer gewünschten Lösung nähern?
Jein. Oder "nur zum Teil"
Denn der TE möchte wohl gerade die Umkehrung: Von einer gegebenen Koordinate diejenige errechnen, die sich ergibt wenn man X km in eine Richtung geht. Dafür gibt es afaik keine direkt Funktion, deshalb muss man sich iterativ nähern. Die Distanzberechnung wurde ja jetzt schon zum dritten Mal gepostet ( :roll: ) ist aber wohl nicht die Lösung des eigentlichen Problems. Welche Entfernungsnorm man verwendet ist ja für die iterative Näherung eigentlich von niederer Bedeutung. Aber ohne eine Antwort des Thread-Erstellers hier herum zu raten ist imho nicht zielführend. |
AW: Wie mathematisch einer gewünschten Lösung nähern?
Zitat:
Wenn ich von Kordinate Lat/Log z.b. 60NM in Richtung Osten gehe, kann ich ganz genau ausrechnen welche Koordinaten ich dann habe... Mavarik |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:07 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