我的heading是以度数表示的,而bearing是以度数表示的。我也知道我的立场和他的立场。我该怎么向他转过身来?
heading-我所面对的北向顺时针方向
bearing-从北到另一个人的顺时针方向
如果有用的话,我还有myPosXmyPosYbadPosXbadPosY
我试过下面的代码,有点用。

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

问题是,如果方向角从我的右向左变化,那么我基本上是顺时针方向转了一圈,而不是继续逆时针方向。
当我的航向在(比如说100度)之间时,我不知道如何使跟踪保持从左(比如说120度)到右(比如说80度)的平稳转动。
TurnRight()+1转到myheading并且TurnLeft()-1转到myheading

最佳答案

假设headingbearing在[0,360]范围内,您可以编写:

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

关于algorithm - 考虑到我的前进方向和方位,我该如何面对它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51178892/

10-10 07:16