Risposte:
Un impulso viene applicato all'istante, quindi non dipende dalla fase temporale. Utilizzeresti un impulso quando vuoi dare una spinta fissa della velocità a qualcosa, o l'azione fisica avviene troppo rapidamente (es. Proiettili / pistola rimbalzo, collisioni, salti, accelerazioni istantanee).
Nel frattempo una forza modifica la velocità direttamente proporzionale alla fase temporale. Lo usi per cose che hanno un effetto nel tempo (es. Gravità, molle lunghe, resistenza dell'aria).
Matematicamente impulse = force * time
; E per riferimento impulse = mass * velocity_change
, force = mass * acceleration
.
Se espandi il primo, puoi controllare questo:
impulse = force * time
->impulse = mass * acceleration * time
e poiché acceleration * time = velocity_change
->impulse = mass * velocity_change
.Jeff Lake
via Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physics
non corretta: (parafrasando)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
. Puoi procedere in entrambi i modi: usa l' i
impulso per correggere le velocità dopo la collisione o usa direttamente la forza di risposta. Se ricevi l'impulso da qualche altra parte, lo annulli in un F_response
e funziona bene.
impulse = force * time
, anche l'impulso dipende dal tempo (almeno se si usano le forze per ottenere la grandezza dell'impulso). In effetti, il momento o l'impulso sono utili per applicare cambiamenti drammatici istantanei. L'esempio più popolare viene dalle leggi di conservazione della quantità di moto e dell'energia: physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .