【问题标题】:Choosing the right from asin solutions从 asin 解决方案中选择正确的
【发布时间】:2011-08-15 22:38:17
【问题描述】:

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

【问题讨论】:

  • 向量的角度是明确的,从箭头的方向选择。为什么一辆车有两个向量?

标签: c# trigonometry angle


【解决方案1】:

您可能希望使用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
  • 如果 x=0 且 y > 0,则为 pi/2
  • -pi/2 如果 x=0 且 y

(边界条件在MSDN documentation中定义)

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

【讨论】:

    猜你喜欢
    • 2014-04-08
    • 2021-11-06
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多