Я делаю очень простой физический движок, основанный на импульсе, и решаю, какую реакцию использовать для столкновения от системы отсчета каждого задействованного объекта. Однако что-то в том, как я интерпретирую систему отсчета, не совсем правильно...
Рассмотрим приведенный ниже пример, когда объект массой 1 г движется со скоростью 10 м/с к объекту массой 10 г. Никакого трения или вращения или чего-то сложного.
Этот 1-граммовый объект в конечном итоге сталкивается с 10-граммовым объектом. Теперь мой движок будет смотреть на каждый объект из его системы отсчета (то есть, в основном, на его скорость) и суммировать внешние импульсы на нем (в случае нескольких столкновений) и использовать это для изменения своей собственной скорости. В этом примере задействованы только 2 объекта, чтобы упростить его.
Таким образом, из системы отсчета неподвижного объекта массой 10 г объект массой 1 г сталкивается с ним практически с тем же вектором скорости (то есть с импульсом 10 г/с). Из системы отсчета объекта массой 1 г объект массой 10 г движется к нему со скоростью 10 м/с и сталкивается с ним справа с... скоростью 100 г/с?? Это не имеет никакого смысла!
Я действительно как-то путаю систему отсчета... Мне нужно использовать систему отсчета каждого объекта, но я почти уверен, что импульс, который я получаю в некоторых из них, просто неверен.
Этот 1-граммовый объект, выполняя какой-то эквивалентный ответ на этот импульс в 100 г/с, затем будет запущен назад со скоростью 90 м/с (10 м/с - (100 г/с / 1 г))! Затем я бы рассчитал, как движется объект массой 10 г, основываясь на наблюдаемом им импульсе, в результате чего он движется вперед со скоростью 1 м/с. Где я ошибаюсь?
Вы не делаете ничего плохого, объекты будут иметь разные импульсы в разных системах отсчета. Что должно быть одинаковым во всех системах отсчета, так это силы, действующие на объекты во время столкновения. Законы физики одинаковы во всех системах отсчета, но не обязательно числа, которые входят в уравнения.
В качестве примера рассмотрим столкновение как совершенно неупругое.
Система отсчета 1, начальный импульс равен
Начальная кинетическая энергия равна
По закону сохранения импульс после столкновения должен быть равен и мы определили столкновение как совершенно неупругое, поэтому мы знаем .
Конечная кинетическая энергия
Повторяя упражнение в системе отсчета 2, мы имеем:
начальный импульс
Начальная кинетическая энергия равна
скорость объединенной массы после столкновения равна
а кинетическая энергия после столкновения
Итак, изменение скорости для объекта 1:
В системе отсчета 1:
В системе отсчета 2:
И для объекта 2:
В системе отсчета 1:
В системе отсчета 2:
Изменение кинетической энергии системы:
В системе отсчета 1:
В системе отсчета 2:
Уф, мне всегда кажется, что я проделал магический трюк после того, как поменял местами системы отсчета (это ваша карта?). Надеюсь, это проясняет, что, несмотря на то, что объекты имеют разные импульсы и энергии в системах отсчета, столкновение остается тем же.
Тем не менее, для физического моделирования переход от системы отсчета к системе отсчета, вероятно, просто создает работу для себя. Лично я бы просто придерживался абсолютного систему отсчета и покончили с этим.
Надеюсь, это поможет!
Преимущество работы в симуляции состоит в том, что существует абсолютная система отсчета, и она может быть там, где вы скажете.
Проблема в том, что ваша система отсчета, если вы поместите ее в объект, который ускоряется, не будет инерциальной; расхождения связаны с инерционными силами, которые вы не принимаете во внимание. Почему бы вам вместо этого просто не наблюдать за вещами из фиксированной, абсолютной, инерциальной системы отсчета?
Мартин Эндер