从角度A移动到B,找到最短的方向

OMG*_*sen 3 c# math angle

我有一个角度A和一个目标角度B.

角度范围是-180到180

我希望角度A朝向角度B移动X度

我面临的问题是如果A是170并且B是-170,那么增加到180并且跳到-180显然会更快,但是在比较角度时我总是得到负X. 因此,不是采取最快的方式,它将采取最长的方式.

我希望有人能理解我制定的问题:)

A = A + ((A-B) / Math.Abs(A-B)) * speed * -1;
Run Code Online (Sandbox Code Playgroud)

编辑:添加代码

due*_*l0r 6

计算两个角度之间的差异.如果得到的角度x大于180度,则使用此角度向另一个方向行走:360-x.

如果使用0到360的范围,则可以更轻松地计算差异.