我有一个x,y,宽度,高度,X和Y的旋转中心(originX,originY)的物体,并且使用
成功计算了这个中心点和触点之间的角度。touchAngle = Math.toDegrees(Math.atan2(deltaY, deltaX));
这很有效。
我现在试图通过简单地检查角度是否大于其当前角度来旋转对象,添加一些旋转,如果它更小,则移除一些旋转。我知道这是错误的,因为当触摸点越过0/360边界时,对象开始以错误的方式旋转,即使这意味着进行非常大的旋转。
什么是优雅的解决方案,让它旋转到触摸点的最短距离?
(使用Java,特别是Libgdx)
由于
答案 0 :(得分:3)
之前我做了很多这些计算(非常不同的应用程序,tho)。只需取差值,如果是负值则加2pi然后如果大于2pi则减去2pi。为a-b然后为b-a做那个。较小的价值将是要走的路。