Два сталкивающихся круга, невозможно преобразовать формулу в код - PullRequest
4 голосов
/ 15 января 2012

Я нахожусь на уровне, где я могу обнаружить столкновение окружностей в моей программе физики 2D твердого тела. Эти круги имеют случайную скорость x, y. Когда любой из них поражает любого другого из них, я могу сказать, что они сталкиваются друг с другом тогда! этот шаг является проблемой. Я пытаюсь взять значения скорости X и Y и преобразовать их на основе оси точки столкновения, я имею в виду ось нормальной силы и другую ось, перпендикулярную оси нормальной силы. Перпендикулярная ось называется касательной осью ... верно?

Я использую sin cos tan, но проблема в том, что поскольку sin cos tan возвращает только угол, который всегда является правой стороной, мои объекты никогда не сдвигаются в левую сторону ... так что импульс оси X всех сталкивающиеся объекты фиксируются с правой стороны. Это приводит ко многим проблемам, и я не могу найти, как это исправить. Я был бы очень признателен за небольшой совет. Спасибо.

1 Ответ

1 голос
/ 15 января 2012

Вы не должны использовать тригонометрические функции (sin, cos, tan и т. Д.).

Вы хотите применить импульс к объектам в направлении столкновения, то есть импульс несколько кратен вектору направления столкновения. Рассчитайте импульс объектов и просто добавьте импульс.

Если вы делаете простые упругие столкновения, импульс и энергия сохраняются. Учитывая эти ограничения, вы можете рассчитать импульс. Эта статья в Википедии содержит подробности.

...