Odpowiedzi:
Impuls jest przykładany natychmiast, więc nie zależy od kroku czasowego. Przydałbyś się impulsowi, gdy chcesz nadać czemuś stałą prędkość lub działanie fizyczne dzieje się zbyt szybko (np. Pociski / rykoszet, kolizje, skoki, natychmiastowe przyspieszenie).
Tymczasem siła zmienia prędkość bezpośrednio proporcjonalnie do kroku czasowego. Używasz go do rzeczy, które mają efekt upływu czasu (np. Grawitacja, długie sprężyny, opór powietrza).
Matematycznie impulse = force * time
; A dla odniesienia impulse = mass * velocity_change
, force = mass * acceleration
.
Jeśli rozwiniesz pierwszy, możesz to sprawdzić:
impulse = force * time
->impulse = mass * acceleration * time
a ponieważ acceleration * time = velocity_change
->impulse = mass * velocity_change
.Jeff Lake
poprzez Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physics
niepoprawne: (parafrazowanie)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
. Możesz iść na dwa sposoby: użyj i
impulsu, aby skorygować prędkości po zderzeniu lub użyj bezpośrednio siły reakcji. Jeśli otrzymasz impuls z innego miejsca, możesz go przekonwertować na F_response
i działa OK.
impulse = force * time
impuls jest również zależny od czasu (przynajmniej jeśli użyjesz sił, aby uzyskać wielkość impulsu). Rzeczywiście, pęd lub impuls jest użyteczny do zastosowania natychmiastowych dramatycznych zmian. Najpopularniejszy przykład pochodzi z praw zachowania pędu i energii: physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .