Rotated 2d rectangle intersection detection

柔情痞子 提交于 2019-12-24 05:03:27

问题


I have 2 rectangles they are placed arbitrarily and I have rects all four corner point like

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

I want to check whether 2 rectangles intersects. I am looking a method similar to NSIntersectsRect . But NSIntersectsRectwon't respect the rotation of rectangle. The points in structure are the points obtained after rotation.

Sample code in Objecitve-C ,C++ or C will be a great help.


回答1:


One simple way is to check whether every vertex of one rectangle is on the same and exterior side of an edge of the one, and vice-versa. For faster and more general methods, see http://gpwiki.org/index.php/Polygon_Collision and http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/97/Plante/CompGeomProject-EPlante/algorithm.html




回答2:


See e.g.g 2D Rotated Rectangle Collision on gamedev.net



来源:https://stackoverflow.com/questions/3457351/rotated-2d-rectangle-intersection-detection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!