2012-01-15 1 views
4

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

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

+0

Попробуйте atan2. Для Sin и Cos информация о углу уже предоставлена. – rsaxvc

+0

немного больше объяснений пожалуйста ... – Bug

+0

atan2 принимает как аргументы x, так и y, так что никакая информация квадранта не теряется, деля их, как и для atan. – rsaxvc

ответ

1

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

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

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

+0

импульс? но смогу ли я применить это уравнение еще? или я должен придумать совершенно разные способы обработки столкновений? V1f = (V1i (m1 - m2) + 2 m2V2i)/(m1 + m2) – Bug

+0

Если вы выполняете простые упругие столкновения, импульс и энергия сохраняются. Учитывая эти ограничения, вы можете рассчитать импульс. Эта статья в Википедии содержит подробную информацию: http://en.wikipedia.org/wiki/Elastic_collision – arx

Смежные вопросы