繁体   English   中英

从 asin 解决方案中选择正确的解决方案

[英]Choosing the right from asin solutions

我得到了代表车辆在南北和东西方向上的速度的 2 个向量的大小。 北被认为是正南负,东正和西负。 显然它们是相互垂直的。 我可以使用勾股定理计算两个向量相加的大小,但是当涉及到角度时,就会出现问题。 我使用Math.asin ,但对于给定的正弦,有两种解决方案。 例如 45 和 135 的两个角具有相同的正弦值。 我怎么能指出我想要哪种解决方案,因为我从一开始就知道车辆是向东北还是向东南行驶?

您可能希望使用Math.Atan2(y, x)而不是反正弦来获取反正切来获取方向。 Atan2返回:

  • arctan(y/x) if x,= 0 and y != 0 (总是在 (-pi, pi])
  • pi 如果 y=0 且 x < 0
  • 如果 y=0 且 x >= 0,则为 0
  • pi/2 如果 x=0 并且 y > 0
  • -pi/2 如果 x=0 且 y < 0

(边界条件在MSDN 文档中定义)

例如,如果 x=-1 且 y=1,则 Atan(-1,1) 将是 3pi/4(135 度)而不是 45 度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM