Обнаружение столкновения двух сетчатых объектов в 2D-пространстве - PullRequest
0 голосов
/ 30 ноября 2018

Давайте предположим, что у нас есть два объекта, A и B. Что мы знаем о них, это координаты их центральных точек (x, y , которые являются числами с плавающей точкой ) и карта (строка из одного-zeros - высота объекта всегда равна его ширине) , что говорит нам, какие области объекта могут сталкиваться с другими объектами.

У меня уже есть все боковые инструменты , например, чтобы проверить, находится ли заданная точка внутри объекта и в какой области (и помечена ли она как сплошная или нет).

Two objects collision - auxiliary drawing

Поскольку я хочу реализовать его в игре HTML5, над которой я работаю, этот алгоритм должен работать действительно быстро.Первое, что я сделал, я, очевидно, исключаю все объекты, которые в основном вне досягаемости .Но когда два объекта мешают - я застреваю.Конечно, я мог бы просто пройтись по всем частям карты обоих объектов, но это было бы слишком медленно, поскольку на практике реальные карты моего объекта обычно имеют размер 15x15 (400 полей) или даже 25x25.Подобное объединение только двух объектов потребует ~ 400 000 итераций цикла.

EDIT : как уже упоминалось, я уже реализовал ограничивающие рамки, и поскольку мои объекты не являются простыми формами, стандартные решениякажется, не применяется здесь.enter image description here

У вас есть идеи, как мне решить эту проблему?

...