Відповіді:
Імпульс застосовується миттєво, тому це не залежить від часу кроку. Ви б використовували імпульс, коли хочете щось надати фіксованому прискоренню швидкості, або фізична дія відбувається занадто швидко (наприклад, кулі / рикошет кулі, зіткнення, стрибки, миттєві збільшення швидкості).
Тим часом сила змінює швидкість, прямо пропорційну кроку часу. Ви використовуєте його для речей, які мають надмірний вплив (наприклад, сила тяжіння, довгі пружини, опір повітря).
Математично 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
неправильно: (перефразовуючи)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 .