圆上两度之间最短行进方向的算法或公式?

Kar*_*lth 7 algorithm geometry rotation formula

在360度圆上给出两度.让我们称它们为源和目的地.

例如,Source可以是120度,Destination可以是30度.

是否有一个优雅的解决方案,从源到目的地的哪个行进方向更短,即它是顺时针(增加度)还是逆时针(减少度)?

例如,对于上面给出的度数,解决方案将是:逆时针方向.另一方面,Source为350,Destination为20,那么解决方案将是:顺时针转.

NPE*_*NPE 13

if ((dest - source + 360) % 360 < 180)
  // clockwise
else
  // anti-clockwise
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你的约定,顺时针=="增加度"的三角101惯例相反,世界其他地区使用,因此混淆(对我来说,无论如何).


Mar*_*tos 3

计算差异,然后将其标准化为 +/-180。正数表示沿角度增加的方向行驶(在您的情况下为顺时针方向)。

  • 这个解释确实需要代码。就其本身而言,这基本上只是重申了这个问题。 (2认同)