Итак, у меня есть две частицы, которые столкнулись в трехмерном пространстве. Я хочу, чтобы частицы упруго отскакивали друг от друга. Как мне определить результирующий вектор скорости, если я знаю: вектор начальной скорости обеих частиц, их массы и векторы их начального положения относительно начала координат.
Я пытался следовать инструкциям на этом веб-сайте , но я не уверен, как заставить их уравнения работать без полярных координат / как перевести мои данные в полярные координаты.
Кроме того, если вы ответите на мой вопрос в терминах полярных координат, можете ли вы объяснить, какой угол является тета, а какой фи? Поскольку есть 2 разных соглашения, я не совсем уверен, о каком ракурсе идет речь в объяснении на вышеупомянутом веб-сайте.
EDIT: это не для класса. Я пишу физический движок для моделирования гравитации, который я делаю с помощью Unity. Я не изучал кинематику с тех пор, как учился в старшей школе, поэтому я такой ржавый.
Я в шоке, что на этом сайте еще нет удовлетворительного ответа!
На это можно ответить в любом количестве измерений с помощью относительно простой векторной математики. Как следует интуитивно (строго в системе центра масс), для частиц одинаковой массы относительные скорости частиц меняются на противоположные по направлению нормали. Все, что нужно сделать, это перевести это в векторные уравнения.
Вычислить вектор нормали столкновения:
Чтобы изменить скорости частиц по нормали столкновения, возьмем:
Вот и все. Очень просто. Работает в 1D, 2D, 3D, 4D, 5D; любое количество измерений. И это довольно просто!
Чтобы увидеть, что это меняет скорости вдоль нормального направления, вычислите до и после. Ты найдешь:
Одним из ключевых моментов является то, что скорость и импульс центра масс системы не меняются в результате столкновения. Я бы рекомендовал вычислить скорость центра масс до столкновения, а затем использовать тот факт, что она не изменилась, для вычисления новых скоростей. Если столкновение действительно упругое (без диссипации), то кинетическая энергия системы также сохранится. Импульс и сохранение кинетической энергии должны быть всем, что вам нужно для вычисления скоростей после столкновения.
Если вы пишете свой физический движок в декартовых координатах, вероятно, гораздо проще выполнить расчеты столкновений в декартовых координатах, чем пытаться использовать уравнения с этого веб-сайта. Кроме того, вы говорите о столкновении двух частиц, что для меня звучит так, как будто вы рассматриваете их как точечные массы, в то время как этот сайт выполняет расчеты для двух сталкивающихся сфер.
Если вы хотите смоделировать упругие столкновения между точечными массами в 3-х измерениях в декартовых координатах, вероятно, проще всего просто решить уравнения самостоятельно! Таким образом, у вас также будет гораздо меньше проблем с отладкой кода (это из моего личного опыта).
Бета
Кайл Канос
Кайл Канос