Обнаружение повернутого 2-го прямоугольного пересечения - PullRequest
2 голосов
/ 11 августа 2010

У меня есть 2 прямоугольника, они размещены произвольно, и у меня есть все четыре угловые точки, например

struct Rect
{
 NSPoint topLeft; 
 NSPoint topRight; 
 NSPoint bottomLeft; 
 NSPoint bottomRight; 
}

Я хочу проверить, пересекаются ли 2 прямоугольника. Я ищу метод, похожий на NSIntersectsRect. Но NSIntersectsRect не будет уважать вращение прямоугольника. Точки в структуре - это точки, полученные после вращения.

Пример кода в Objecitve-C, C ++ или C будет очень полезен.

Ответы [ 2 ]

5 голосов
/ 11 августа 2010

Один простой способ - проверить, находится ли каждая вершина одного прямоугольника на одной и той же стороне от его края, и наоборот. Для более быстрых и более общих методов см. http://gpwiki.org/index.php/Polygon_Collision и http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/97/Plante/CompGeomProject-EPlante/algorithm.html

2 голосов
/ 11 августа 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...