Сообщения

Сообщения за Октябрь, 2010

2D Физика для игр - Separate Axis Theorem - Вектор сдвига

Изображение
Как и обещал продолжаю перевод серии статей про игровую физику. Сегодня я напишу как получить вектор сдвига и разьединить 2 столкнувшихся многоугольника.


Как было точно подмечено анонимным комментатором метод отделяющей оси работает только для выпуклых многоугольников.


Итак, дано: 2 столкнувшихся многоугольника
Задача: Разьединить 2 многоугольника, причём минимальным сдвигом.


В прошлом посте я писал как узнать пересекаются ли 2 многоугольника, это полезная информация, однако мы можем узнать больше. В случае если 2 многоугольника пересекаются хотелось бы сдвинуть их от друг друга, чтобы они не пересекались.


2D Физика для игр - Separate Axis Theorem

Изображение
Нашёл в интернете очень интересную подборку статей и кода, которая описывает написание физики для игр. Я подумал что было бы полезно перевести серию тех статей и портировать код на XNA. Как для себя, так и для интересующихся игровой физикой.

Первая статья будет посвящена Separete Axis Theorem ( теорема о разделяющей оси )- методу проверки столкновений между многоугольниками. Данный метод является наиболее быстрым на данный момент и используется повсеместно во всех 2D физических библиотеках.

Итак, задача: Нам даны два многугольника в виде массива координат вершин. Необходимо проверить их на пересечение.