如何在循环的值(例如色相或旋转)之间保持平衡?
观看演示 我试图使关节围绕画布的中心顺着鼠标指针的角度平滑旋转。我所拥有的作品有效,但我希望它能够动画化尽可能短的距离,以达到鼠标角度。当值在水平线(3.14和-3.14)处循环时,会发生问题。将鼠标悬停在该区域上,即可查看方向的切换方式,并且需要很长的路程。 相关代码 // ease the current angle to the target angle joint.angle += ( joint.targetAngle - joint.angle ) * 0.1; // get angle from joint to mouse var dx = e.clientX - joint.x, dy = e.clientY - joint.y; joint.targetAngle = Math.atan2( dy, dx ); 如何使它旋转最短的距离,甚至“跨越间隙”?