将对象旋转到触摸点

时间:2012-11-05 01:59:07

标签: java rotation libgdx

我有一个x,y,宽度,高度,X和Y的旋转中心(originX,originY)的物体,并且使用

成功计算了这个中心点和触点之间的角度。
touchAngle = Math.toDegrees(Math.atan2(deltaY, deltaX));

这很有效。

我现在试图通过简单地检查角度是否大于其当前角度来旋转对象,添加一些旋转,如果它更小,则移除一些旋转。我知道这是错误的,因为当触摸点越过0/360边界时,对象开始以错误的方式旋转,即使这意味着进行非常大的旋转。

什么是优雅的解决方案,让它旋转到触摸点的最短距离?

(使用Java,特别是Libgdx)

由于

1 个答案:

答案 0 :(得分:3)

之前我做了很多这些计算(非常不同的应用程序,tho)。只需取差值,如果是负值则加2pi然后如果大于2pi则减去2pi。为a-b然后为b-a做那个。较小的价值将是要走的路。

相关问题