我的heading
是以度数表示的,而bearing
是以度数表示的。我也知道我的立场和他的立场。我该怎么向他转过身来?heading
-我所面对的北向顺时针方向bearing
-从北到另一个人的顺时针方向
如果有用的话,我还有myPosX
、myPosY
、badPosX
和badPosY
。
我试过下面的代码,有点用。
local x = heading - bearing
if (x < 0) then
TurnRight()
else
TurnLeft()
end
问题是,如果方向角从我的右向左变化,那么我基本上是顺时针方向转了一圈,而不是继续逆时针方向。
当我的航向在(比如说100度)之间时,我不知道如何使跟踪保持从左(比如说120度)到右(比如说80度)的平稳转动。
TurnRight()
将+1
转到myheading
并且TurnLeft()
将-1
转到myheading
。 最佳答案
假设heading
和bearing
在[0,360]范围内,您可以编写:
local x = (360 + heading - bearing) % 360
if (x > 180) then
TurnRight()
else
TurnLeft()
end
关于algorithm - 考虑到我的前进方向和方位,我该如何面对它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51178892/