我已经开始在c中研究自主遥控直升机。我需要帮助找到计算轴承精度的方法。我使用两组坐标(纬度和经度),一组是当前位置,另一组是目的地。我已将纬度和经度转换为十进制格式,因此....
40°58'19.86"N = 40.972183
74°14'52.74"W = 74.247983
任何人都可以向我展示 c 中的代码以查找我可以使用的方位角或公式吗?
我看过:http://www.movable-type.co.uk/scripts/latlong.html,当我将其转移到 C 时,结果毫无意义。
这是我尝试过的:
double x = Sin(Longitude2 - Longitude1) * Cos(Latitude2);
double y = Cos(Latitude1) * Sin(Latitude2) - Sin(Latitude1) * Cos(Latitude2) * Cos(Longitude2 - Longitude1);
double heading = (Atan2(x, y) % 2 * 3.14159265) (180/3.14159265);
计算之前将坐标从度数转换为弧度?
angleRad = 3.14159265 * angleDeg / 180;
和
bearing = Atan2(y, x);
在那个网站。轴承应依次从弧度转换为度:
bearing = 180 * bearing / 3.14159265;
如果最终出现负值:
bearing = bearing + 360;
我不知道如何使用上面的约定(带有"%")来编写它。
纬度 1 和经度 1 是观察点的坐标纬度 2 和经度 2 是目标点的坐标。
该网站的公式效果很好。
对于你正在考虑的非常小的区域,你可以假设世界是平的。如果您只需要在本地工作,则可以预先计算地面上纬度/纬度的值,以米(或英尺)为单位
然后只需将三角纬度/纬度转换为距离并执行正常的三角运算。
要将距离转换为纬度/纬度,您可以使用谷歌地球来测量它或如何将纬度或经度转换为米?