Как реализовать коэффициент восстановления в простом физическом движке?

Я пишу простой двухмерный физический движок, который поддерживает столкновения круг-круг, и я не могу понять, как модифицировать мой метод разрешения столкновений, чтобы добавить реституцию. Как свойство коэффициента восстановления реализовано в физических движках?


person RCIX    schedule 22.10.2009    source источник


Ответы (1)


Я не очень разбираюсь в реализации игровой физики, но я бы использовал следующие формулы, найденные в википедии страница:

alt text

alt text

Эти формулы сообщают вам скорость объекта после столкновения с учетом вашего постоянного Cr. Это будет легко разместить в вашем приложении, если:

  1. Вы используете векторы для представления всего, и вы понимаете (и можете выполнять) векторную математику (по крайней мере, на первом курсе университета). Поскольку вы делаете физический движок, я думаю, что да.
  2. Вы придали массу всем объектам в вашем физическом мире.

Если вы это сделали, вы можете использовать эти формулы для уменьшения скорости при столкновении. Ваши расчеты столкновений отделены от этого; это имеет дело с импульсом ваших объектов.

person Robert Massaioli    schedule 23.10.2009