如何计算两个轴承之间的最小旋转

How to compute minimum rotation between two bearings

给定 0 度到 360 度之间的两个方位角 A 和 B,计算 A 到达 B 所需的最小旋转的最有效方法是什么?旋转可以是顺时针(正)或逆时针(负)。最小旋转应在给出较小绝对度数的方向上。

例如,

minRotation(30,20) 产生 -10。

minRotation(350,20) 产生 30。

我们如何制定函数 minRotation(A,B)?

 D = B - A
 while D < -180   // use "if" operator when angles are normalized to 0..360 range
    D = D + 360
 while D > 180
    D = D - 360

如果您的语言具有与 C 数学库 remainder() 函数等效的功能,则

D = remainder( B-A, 360.0)