欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab如何测两点的角度_根据2点经纬度,计算方位角,以及计算2条线的夹角

发布时间:2023/12/10 循环神经网络 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 matlab如何测两点的角度_根据2点经纬度,计算方位角,以及计算2条线的夹角 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

以真北为0度起点,由东向南向西顺时针旋转360度,主要是用于控制象限。

根据2点经纬度,计算方位角

[csharp]

///

/// 给定2点,获得经纬度

///

/// 起点经纬度,都是以度为单位

/// 终点经纬度,都是以度为单位

///

private double GetLineAngle(Point2D startPoint, Point2D endPoint)

{

double mathPI = 3.1415926535897931;

double tmpValue = 0;

double latStart = startPoint.Y * mathPI / 180;

double lngStart = startPoint.X * mathPI / 180;

double latEnd = endPoint.Y * mathPI / 180;

double lngEnd = endPoint.X * mathPI / 180;

if (startPoint.X == endPoint.X || startPoint.Y == endPoint.Y)

{

if (startPoint.X == endPoint.X)

{

/// 经度相同

if (endPoint.Y >= startPoint.Y)

{

return 0;

}

else

{

return 180;

}

}

else

{

/// 纬度相同

if (endPoint.X >= startPoint.X)

{

return 90;

}

else

{

return 270;

}

}

}

tmpValue = Math.Sin(latStart) * Math.Sin(latEnd) + Math.Cos(latStart) * Math.Cos(latEnd) * Math.Cos(lngEnd - lngStart);

tmpValue = Math.Sqrt(1 - tmpValue * tmpValue);

tmpValue = Math.Cos(latEnd) * Math.Sin(lngEnd - lngStart) / tmpValue;

double resultAngle = Math.Abs(Math.Asin(tmpValue) * 180 / mathPI);

if (endPoint.X > startPoint.X)

{

if (endPoint.Y >= startPoint.Y)

{

/// 第一象限

return resultAngle;

}

else

{

/// 第二象限

return 180 - resultAngle;

}

}

else

{

/// 第四象限

if (endPoint.Y >= startPoint.Y)

{

return 360 - resultAngle;

}

else

{

/// 第三象限

return 180 + resultAngle;

}

}

}

[/csharp]

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的matlab如何测两点的角度_根据2点经纬度,计算方位角,以及计算2条线的夹角的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。