我需要让一个轮子落在五个角度中的一个上,我希望它在达到这个角度时摇摆不定。用户转动轮子后,我通过将旋转速度乘以每滴答声 0.98 来减慢速度。我通过找到最接近的角度并将其方向上的一个小值添加到速度来让它工作。然而,这看起来不切实际,并且可能会出现故障。
我正在考虑实现一个阻尼正弦波,但我不确定我会如何做到这一点。
当前伪代码:
var rotation, rotationVelocity, stoppingPoints[5];
update(deltaT) {
velocity -= rotationVelocity * 0.5 * dt;
closestAngle = findClosestAngle().angle;
rotationVelocity += (closestAngle - rotation) / 36 * dt;
rotation += rotationVelocity;
}
编辑:
摇摆不定:移动或平衡不稳;前后摇摆: