Respostas:
Um impulso é aplicado instantaneamente, para que não dependa da etapa do tempo. Você usaria um impulso quando quiser dar um impulso fixo de velocidade a alguma coisa, ou a ação física acontecer muito rapidamente (por exemplo, balas / ricochete de arma, colisões, saltos, acelerações instantâneas).
Enquanto isso, uma força altera a velocidade diretamente proporcional ao intervalo de tempo. Você o utiliza para itens com efeito de excesso de tempo (por exemplo, gravidade, molas longas, resistência do ar).
Matematicamente impulse = force * time; E para referência impulse = mass * velocity_change, force = mass * acceleration.
Se você expandir o primeiro, poderá verificar isso:
impulse = force * time ->impulse = mass * acceleration * timee desde acceleration * time = velocity_change->impulse = mass * velocity_change.Jeff Lakevia Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physicsincorreta: (parafraseando)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. Você pode ir de qualquer maneira: use o iimpulso para corrigir as velocidades após a colisão ou use diretamente a força de resposta. Se você receber o impulso de outro lugar, poderá convertê-lo para um F_responsee ele funcionará bem.
impulse = force * time, o impulso também depende do tempo (pelo menos se você usar forças para obter a magnitude do impulso). De fato, o momento ou impulso é útil para aplicar mudanças dramáticas instantâneas. O exemplo mais popular vem das leis de conservação do momento e da energia: physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .