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

StackOverflow https://stackoverflow.com/questions/1610592

Вопрос

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

Это было полезно?

Решение

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

alt text

alt text

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top