MSalters schreef op zondag 06 februari 2005 @ 17:10:
Helemaal geen bocht, zoals .oisyn uitlegt. Je blijft namelijk in één vlak, het vlak door A,B en het middelpunt van de aarde. Dat is per definitie een grootcirkel, net zoals de evenaar, en je wilt toch niet beweren dat de evenaar slingert?
Delphi rekent ongetwijfeld met radialen.
Sorry je hebt gelijk, je maakt een bocht, op een platte kaart, dus in een merkatorkaart, als je die koers op een gnomomische projectie wilt hebben dan krijg je een juiste rechte lijn.
Ik heb deze functie in delphi geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| var
LatA,LatB,LonA,LonB,Ver,Diff,Cgc,CgcA,CgcB:Single;
begin
LatA:=DegToRad(StrToFloat(LatAEdit.text));
LonA:=DegToRad(StrToFloat(LonAEdit.text));
LatB:=DegToRad(StrToFloat(LatBEdit.text));
LonB:=DegToRad(StrToFloat(LonBEdit.text));
Diff:=DegToRad(StrToFloat(LonBEdit.text)-StrToFloat(LonAEdit.Text));
Ver:=Sin(LatA)*Sin(LatB)+Cos(LatA)*Cos(LatB)*Cos(diff);
Ver:=ArcCos(Ver);
Ver:=RadToDeg(Ver);
Ver:=Ver*60*0.8684;
CgcA:=Sin(LatB)-Sin(LatA)*Cos(VeR);
CgcB:=Cos(LatA)*Sin(Ver);
Cgc:=CgcA/CgcB;
Cgc:=ArcCos(Cgc);
Cgc:=RadToDeg(Cgc);
Caption:=floattostr(ver)+' '+FloatToStr(Cgc); |
Hier komt uit 32,13 nm 62 graden.
Alleen volgens mijn rekenmachine moet het zijn, 25 mijl en 209 graden, met deze coordinaten:
LatA: 52,1759 LonA: 004,4559
LatB: 51,5700 LonB: 004,2700
Als ik dus de RadToDeg weglaat, dan komt ik uit op 1800 mijl
[
Voor 3% gewijzigd door
Megamind op 06-02-2005 18:43
]