Answers:
脉冲是立即施加的,因此它不取决于时间步长。当您想以固定的速度提高某物的速度时,或者您的身体动作发生得太快时(例如,子弹/枪弹,碰撞,跳跃,瞬间加速),您会使用一时冲动。
同时,力直接与时间步长成正比地改变速度。您可以将其用于具有时间影响的事物(例如重力,长弹簧,空气阻力)。
数学上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
。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.
i = F_response * DTime
。您可以选择以下两种方式之一:i
在碰撞后使用冲力来校正速度,或者直接使用响应力。如果您从其他地方获得冲动,则可以将其转换为F_response
,这样就可以正常工作。
impulse = force * time
,脉冲也与时间有关(至少如果使用力来获取脉冲的大小)。实际上,动量或冲动对于应用瞬时的戏剧性变化是有用的。最受欢迎的示例来自动量和能量守恒定律:physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf。