最大速度を設定した2次元の物体をシミュレートしようとしていますが、速度が最大であるにもかかわらず物体の挙動の数学モデルを構築するのが難しい両方とも正しい方向に移動していません。とさらに加速度が最大速度制限によって部分的にブロックされています。最大加速度で一定加速度下で物体をシミュレート
など。最大速度は√2で、現在は(1,1)に向かい、実際には(√2,0)に向かうはずです。 x軸に沿って直接加速するだけでは、速度制限が破られてしまいます。
代わりに、時間の経過とともに速度方向を正しい方向に「滑らせる」必要があります。私はそれがあまりにも高くなれば新しい速度を計算すると最大で、それをスケーリングされてやっているやっている:仕事を(一種の)んが、私はスムーズになるためにそれをリファクタリングする必要てる
newVelocity = oldVelocity + acceleration * dt;
if(newVelocity.getLength() > maxSpeed){
newVelocity = newVelocity.scale(maxSpeed);
}
- シミュレーションの粒度に依存しない - 現時点では、dtの値の半分で2回のパスと反対の1回のパスを実行すると、私は異なる結果になります。
私は何をしようとしていることはスピードが円上の点であるとしてモデルもあり、その後、円
しかし(の接線として印加された加速度の量を計算します私のメカニックと計算が失敗するところです)は、現在の速度角と時間ベースの式に適用された加速度から導出された瞬時角速度の計算をどのように回して、実際の速度の変化を単一のシミュレーションティック。
私はほとんどこの問題にかなり簡単な解決策があることを確信しています。私は、Googleにどんな用語のセットを試すことができません。
速度ベクトルをリスケールすることで、速度が限界を超えたときに速度をクランプするのはなぜですか? – meowgoesthedog