Столкновение прямоугольного параллелепипеда с шаром
Не думал, что мне придётся задавать такой вопрос, но оказалось, всё не так просто: мне нужно проверить столкновение шара(известны координаты центра и радиус) и прямоугольного параллелепипеда(известны три вектора, перпендикулярные противоположным сторонам, и координаты центра масс, размеры). Как это реализовать?
|
Ответ: Столкновение прямоугольного параллелепипеда с шаром
Математика векторов.
Во первых тебе нужно реализовать проверку на пересечение отрезка и линии, далее улучшить это дело чтобы получить данные о пересечении - перпендикуляр, ближайшая точка пересечения и т.п. Далее почти всё готово - проверяй разанее на AABB - если прямоугольники описывающие два объекта пересекаются или нет. Потом тебе нужно попробовать вычислить если окружность в центре прямоугольника - это весьма просто, нужно повернуть все данные на вектор поворота прямоугольника, и затем просто сравнить x,y координаты сторон прямоугольника и центра окружности. Т.к. всё будет уже повёрнуто это просто < > сравнение. И только затем, если AABB == true и окружность не в центре, делать вычисления по принципу описанному вначале. Или не париться и взять физический движёк, зависит от инструмента, но тот же Box2D есть на кучу платформ и языков. |
Часовой пояс GMT +4, время: 18:12. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot