use*_*161 0 c math trigonometry distance
我正在使用PIC24F系列微控制器之一来计算两个纬度和经度坐标之间的距离.我在代码中包含了PIC24F的"math.h"头文件.问题是acos(1)给出"0.000345"值,但我期待"0.000086".我使用eclipse的math.h头文件在eclipse中使用相同的代码,它给出了正确的值"0.000086".问题是什么?每个math.h头文件的"acos()"是否不同?
.....
theta = lon1 - lon2;
printf("%f",theta);
dist = sin(deg2rad(lat1)) * sin(deg2rad(lat2)) + cos(deg2rad(lat1)) * cos(deg2rad(lat2)) * cos(deg2rad(theta));
printf("%f", dist);
dist = acos(dist);
printf("%f", dist);
dist = rad2deg(dist);
printf("%f", dist);
.....
Run Code Online (Sandbox Code Playgroud)
通过坐标后,每个"dist"变量值都在下面
Eclipse输出:
0.006082
1.000000
0.000086
0.004939
Run Code Online (Sandbox Code Playgroud)
微控制器输出:
0.006088
1.000000
0.000345
0.019782
Run Code Online (Sandbox Code Playgroud)
谢谢