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 * timea ponieważ acceleration * time = velocity_change->impulse = mass * velocity_change.Jeff Lakepoprzez Game Coding Complete 3rd Ed. Chapter 15: Collision and Simple Physicsniepoprawne: (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 iimpulsu, 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_responsei działa OK.
impulse = force * timeimpuls 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 .