インパルスと物理エンジンに関連する力の違いは何ですか?


25

インパルスの適用と物理エンジンに関連する力の適用の違いは何ですか?

回答:


25

インパルスは即座に適用されるため、タイムステップに依存しません。何かに速度の固定ブーストを与えたい場合、または物理的なアクションが速すぎる場合(弾丸/銃の跳ね返り、衝突、ジャンプ、瞬間的なスピードアップなど)に衝動を使用します。

一方、力は時間ステップに直接比例して速度を変化させます。時間の経過とともに影響するもの(重力、長いバネ、空気抵抗など)に使用します。

数学的にはimpulse = force * time、また、参考impulse = mass * velocity_changeまでにforce = mass * acceleration

最初を展開する場合、これを確認できます:

  • impulse = force * time ->
  • impulse = mass * acceleration * timeそして以来acceleration * time = velocity_change->
  • impulse = mass * velocity_change

1
以来impulse = force * time、インパルスも時間に依存します(少なくともインパルスの大きさを得るために力を使用する場合)。実際、運動量または衝動は、瞬間的な劇的な変化を適用するのに役立ちます。:最も人気のある例では、運動量とエネルギーの保存の法則から来physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf
テオドロン

そうすることによって実装されJeff Lake経由Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physics(言い換え):正しくないStart with a Vector3d (or 2d depending) of forces F, Accumulate all Forces applied in a list, Accumulate All Impulses in a list add both totals to Forces, empty Impulses list, Accel = F / mass, Vel += Accel * deltaTime, Pos = Vel * time.
ケーシー

@Casey:それが私がやる方法です。私のシミュレータでは、2つのボディが衝突し、すべてが直接機能する剛体ケースを使用できません。加速度を積分して速度と位置を見つけるニュートンの方法に従います。私の衝動は反発力から得られます(応答/反力は私の理解では同義語です)i = F_response * DTimeiインパルスを使用して衝突後の速度を修正するか、応答力を直接使用するかのいずれかの方法を使用できます。他の場所からインパルスを取得した場合、それをに変換すれば問題F_responseなく動作します。
テオドロン

@teodronありがとう、別の質問が表示されます。:P
ケーシー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.