답변:
임펄스는 즉시 적용되므로 시간 단계에 의존하지 않습니다. 무언가에 고정 된 속도의 부스트를 주거나 물리적 행동이 너무 빨리 일어날 때 (예 : 총알 / 총 리 코팅, 충돌, 점프, 즉각적인 속도 향상) 임펄스를 사용합니다.
한편 힘은 시간 단계에 비례하여 속도를 변경합니다. 시간이 지남에 영향을 미치는 것들 (예 : 중력, 긴 스프링, 공기 저항)에 사용합니다.
수학적으로 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
. (Paraphrasing)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 .