Яка різниця між імпульсом і силою, пов'язаною з фізичним двигуном?


25

Яка різниця між додатком імпульсу і прикладанням сили щодо фізичного двигуна?

Відповіді:


25

Імпульс застосовується миттєво, тому це не залежить від часу кроку. Ви б використовували імпульс, коли хочете щось надати фіксованому прискоренню швидкості, або фізична дія відбувається занадто швидко (наприклад, кулі / рикошет кулі, зіткнення, стрибки, миттєві збільшення швидкості).

Тим часом сила змінює швидкість, прямо пропорційну кроку часу. Ви використовуєте його для речей, які мають надмірний вплив (наприклад, сила тяжіння, довгі пружини, опір повітря).

Математично 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.

1
Оскільки impulse = force * timeімпульс також залежить від часу (принаймні, якщо ви використовуєте сили для отримання величини імпульсу). Дійсно, імпульс чи імпульс корисні для застосування миттєвих драматичних змін. Найпопулярніший приклад походить із законів збереження імпульсу та енергії: physics.ohio-state.edu/~gan/teaching/spring99/C10.pdf .
теодрон

Так само реалізація 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.
Кейсі

@Casey: саме так я це роблю. У своєму тренажері я не можу використовувати жорсткий корпус корпусу, коли два тіла стикаються і все працює безпосередньо. Слідуючи ньютонівському шляху інтеграції прискорення, щоб знайти швидкість, а потім положення. Мої імпульси є похідними від сили відштовхування (відповідь / сила реакції є синонімом в моєму розумінні): i = F_response * DTime. Можна піти будь-якими шляхами: використовувати iімпульс для корекції швидкостей після зіткнення або безпосередньо використовувати силу відгуку. Якщо ви отримаєте імпульс десь з іншого місця, ви можете перетворити його на F_responseі він працює добре.
теодрон

@teodron Дякую, що виникає окреме питання, яке я буду задавати ... окремо. : P
Кейсі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.