Динамика абсолютно твёрдого тела для ПК игры.

Здравствуйте и прошу вашего внимания. Я пишу компьютерную игру жанра «космический симулятор». И у меня проблема.

Дело в том что термех я плохо знаю(помню), в связи с чем уже неделю бьюсь над одной задачей.

Ситуация следующая: Летит корабль и сталкивается с астероидом. Корабль и астероид являются абсолютно твердыми телами. У корабля сложное движение (поступательное+ вращательное), у астероида тоже сложное движение. И астероиди самолет сложных форм. Столкновение происходит в произвольной точке, что у самолета что у астероида.

Задача: Вычислить силу удара корабля и силу удара астероида. Для того чтобы я ее отнял из «жизней» корабля, т.к. именно силой удара у меня будет, для начала, определяться урон нанесенный объектам.

Дано: И у корабля и у астероида известны,

«m» — масса

«V» — скорости — вектор или «векторообразная»(состоящая из трех чисел) величина.

«a» — ускорения — вектор или «векторообразная»(состоящая из трех чисел) величина.

«W»  — угловая скорости — вектор или «векторообразная»(состоящая из трех чисел) величина.

«B» -угловое ускорение — вектор или «векторообразная»(состоящая из трех чисел) величина.

«Tv» — диагональный тензор инерции — вектор или «векторообразная»(состоящая из трех чисел) величина.

«Tw» — вращательный тензор инерции — вектор или «векторообразная»(состоящая из трех чисел) величина.

так же мне известны координаты центра масс тел и координаты точки контакта. Из них мне известно «r» — расстояние от центра масс до точки контакта.

Найти: Силу столкновения самолета с астероидом. Я не знаю как ее следует высчитывать, и из чего. Надо ли складывать силы объектов в момент контакта? Равны ли эти силы у астероида и корабля? Голова уже кругом. Помогите прошу. Мне нужна формула.

P.S.: Еще я не совсем уверен что мне урон следует вычислять из сил при столкновении… Может мне его следует вычислять из кинетической энергии?

Ответы

ув. Октав, к сожалению по поводу формулы не подскажу, т.к. сам помню данную тему только в рамках механики/кинематики. Однако на Вашем месте обратил бы внимаение в сторону готовых библиотек физики. В XY случае — это Box2D. Расчитывает столкновение не только с учетом масс и центра, но и с учетом геометрии. Уверен, что есть что-то такое и в 3d.

К примеру, мои эксперименты с box2d на JS: snooker.gixx.ru

Попробуйте разобраться, оно поддерживает и более сложную физику.

07.03.13

Эш Кур

Сейчас на сайте
Читать ответы

Михаил Александров

Михаил Александров
Михаил Александров
Эксперт месяца
Читать ответы

Андрей Андреевич

Читать ответы
Посмотреть всех экспертов из раздела Учеба и наука > Физика
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store