1

我希望一个物体平稳地停在指定的点。我有V0对象的初始速度 、 结束速度(设置为 0)、V1以及d到达目的地所需的距离 。V1V0以每帧的弧度为单位,d也以弧度为单位。

我尝试使用以下公式:

a = (V0*V0 - V1*V1) / (2.0 * d);

但它似乎总是超出目标。

编辑:本质上,我有一个以初始速度开始旋转的轮子V0。在停在指定位置之前,车轮必须进行一定次数的旋转。距离d是执行指定数量的旋转并在指定位置停止所需的弧度。速度是每帧的弧度数。

4

1 回答 1

3

我们现在有足够的信息进行有根据的猜测。

该公式是正确的,但仅适用于迭代时间非常短的理想情况。我的猜测是,在你的循环中,你在速度之前更新位置,这样在那个时间段内,车轮可以以不减速度前进,并且你过冲。(如果你在位置之前更新速度,你会下冲。)

您可以缩短帧,这将使过冲不那么严重,或者您可以修改公式以消除它:

a = (V 0 *V 0 ) / (2.0 * d - V 0 *t delta );

其中 t delta是单帧的时间长度。(我假设 V 1 =0。)

于 2012-04-26T14:42:21.533 回答