我希望对象能够在指定点平稳停止。我有对象的初始速度V0
,结束速度(设置为0),V1
以及到达目的地所需的距离d
。 V1
和V0
以弧度为单位进行测量,d
也以弧度为单位进行测量。
我尝试过使用以下公式:
a = (V0*V0 - V1*V1) / (2.0 * d);
但似乎总是超出目标。
编辑:
基本上,我有一个轮子以V0
的初始速度开始旋转。在停在指定位置之前,车轮必须进行一定数量的旋转。距离d
是执行指定旋转量并在指定位置停止所需的弧度。速度是每帧的弧度数。
答案 0 :(得分:3)
我们现在有足够的信息进行有根据的猜测。
公式是正确的,但仅在理想情况下,迭代时间的长度非常小。我的猜测是,在你的循环中你正在更新速度之前的位置,这样在那个时间段内轮子可以以不减小的速度前进,并且你超调。 (如果您在位置之前更新了速度,则会下冲。)
你可以让你的画面更短,这会使过冲不那么严重,或者你可以修改公式来消除它:
a =(V 0 * V 0 )/(2.0 * d - V 0 * t delta );
其中t delta 是单帧的时间长度。 (我假设V 1 = 0。)