Вращение после нецентрального удара

пытаюсь создать физику удара и падения в виртуальной среде. Удары объектов идут абсолютно упругие. Формулы брал из википедии, там были описаны новые направления после удара, но вращение которое получается в результате удара не описано. Пытался погуглить данный вопрос, но не получилось найти ответа. Зашел в старую версию Blender посмотреть как работает физика там и возникает пару вопросов:

  1. Идет вращение объектов, после удара, относительно места удара или вращение идет относительно центра масс фигуры?
  2. По какой формуле считать моменты вращения после удара?
  3. Что делать если точек столкновения у объекта больше чем 1?
  4. Как решить проблему "лесенки"? Это когда объекты выстраиваются по типу "лесенки" и в конце когда центр массы выходит за пределы опоры, объекты начинают падать. Нужно реализовать систему давления объектов друг на друга или как это реализовывается? Ниже привел пример "лесенки"

Проблема лесенки

Реализацию делаю в 2d C# WPF.

П.С. Прошу сразу прощение, физику знаю плохо, поэтому вопросы могут быть простыми и я мог не правильно использовать понятия из физики.


Ответы (1 шт):

Автор решения: coderec

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

Следует также учесть коэффициент трения материалов шаров (см. видео)

→ Ссылка