1

オブジェクトを指定したポイントでスムーズに停止させたい。オブジェクトの初期速度 、V0終了速度 (0 に設定) V1、およびd目的地に到達するために必要な距離 があります。フレームあたりのラジアンで測定され、ラジアンV1でも測定されます。V0d

次の式を使用してみました。

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デルタ);

ここで、tdeltaは単一フレームの時間の長さです。(私はV 1 = 0と仮定しました。)

于 2012-04-26T14:42:21.533 に答える