脉冲和与物理引擎相关的力有什么区别?


25

相对于物理引擎,施加脉冲和施加力之间有什么区别?

Answers:


25

脉冲是立即施加的,因此它不取决于时间步长。当您想以固定的速度提高某物的速度时,或者您的身体动作发生得太快时(例如,子弹/枪弹,碰撞,跳跃,瞬间加速),您会使用一时冲动。

同时,力直接与时间步长成正比地改变速度。您可以将其用于具有时间影响的事物(例如重力,长弹簧,空气阻力)。

数学上impulse = force * time; 以供参考impulse = mass * velocity_changeforce = 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
teodron

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 2012年

@Casey:这就是我的方法。在我的模拟器中,我不能使用两个物体发生碰撞而一切都可以直接解决的刚性壳体。遵循牛顿积分加速度的方法来找到速度和位置。我的冲动从斥力(响应/反作用力是我理解的同义词)得出:i = F_response * DTime。您可以选择以下两种方式之一:i在碰撞后使用冲力来校正速度,或者直接使用响应力。如果您从其他地方获得冲动,则可以将其转换为F_response,这样就可以正常工作。
teodron

@teodron谢谢,这提出了一个单独的问题,我将……单独提出。:P
凯西2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.