Я мог бы быть неправильно истолкован, но похоже, что вы задаете два вопроса: 1. каковы некоторые общие способы решения конфликтов, термин, который вы ищете, это «имитация на основе импульсов», и есть множество статей, которые Я могу сделать это лучше, чем я.
Таким образом, вы хотите, чтобы ваш физический симулятор шагал в импульсном пространстве, которое является скоростью, умноженной на массу (не делайте вещи на основе силы, ваш интегратор все равно не делает это правильно).
Для углового отклика, к счастью, наибольшие и наименьшие моменты инерции всегда можно уменьшить до двух ортогональных осей (в 2D), что означает, что матричное умножение будет работать в целом, и если вы выровняете их по осям X и Y, оно превратится в 2D вектор.
Когда у вас есть столкновение, вы рассчитываете реакцию, основываясь на линейных и угловых моментах в точке столкновения, и хорошим коэффициентом выдумки является, если у вас есть взаимопроникновение, применить некоторую штрафную силу (как упомянуто выше), чтобы разделить два тела.
С этого момента вы в конечном итоге добавляете все больше и больше правил для управления аномальным поведением, например, ограничение максимального момента импульса, чтобы вещи не вращались как вершины и т. Д., Но это хорошее начало.
Сохраняйте это простым, если можете.
- Как вы решаете проблемы столкновения нескольких тел
Единственный реальный способ сделать это с помощью системы линейных уравнений и много решений. Практический способ сделать это - создать систему, подобную той, что описана выше, и физика просто со временем разрешится.
Большинство игр, в которых используются такие вещи, как катание или стояние на движущихся поверхностях, имеют гибридную модель, в которой ваши ноги прикреплены к поверхности (или колесам к дороге) для приспособления к физическому переходу во времени (что приведет к циклам взаимопроникновения-отклика и не сработает).
Надеюсь это поможет. Если вам нужны математические примеры, дайте мне знать.