考虑到我的前进方向和方位,我该如何面对它?

时间:2018-07-04 17:56:33

标签: algorithm math

我有heading的度数,而bearing有另一个人的度数。我也知道我的位置和他的位置。我该如何转向他?

  • heading-我正面临的北风角度
  • bearing-从北顺时针到另一个人的角度

如果它们有用的话,我还有myPosXmyPosYbadPosXbadPosY

我已经尝试了以下代码,它确实可以工作。

local x = heading - bearing
if (x < 0) then
  TurnRight()
else
  TurnLeft()
end

问题是,当方位从我的右向左变化时,我基本上是整个顺时针方向旋转,而不是仍然沿逆时针方向跟踪。

我不确定当方位角介于(例如100deg)时,当轴承从左侧(例如120deg)移到右侧(例如80deg)时如何使跟踪保持平稳旋转。

TurnRight()+1移至我的headingTurnLeft()-1移至我的heading

1 个答案:

答案 0 :(得分:1)

假设headingbearing的范围是[0,360),您可以编写:

local x = (360 + heading - bearing) % 360
if (x > 180) then
  TurnRight()
else
  TurnLeft()
end