Search This Blog

Sunday, October 30, 2011

矩形相交算法

假定矩形是用一对点表达的(minx,miny)(maxx, maxy)
那么两个矩形rect1{(minx1,miny1)(maxx1, maxy1)}, rect2{(minx2,miny2)(maxx2, maxy2)}

相交的结果一定是个矩形,构成这个相交矩形rect{(minx,miny)(maxx, maxy)}的点对坐标是:
minx = max(minx1, minx2)
miny = max(miny1, miny2)
maxx = min(maxx1, maxx2)
maxy = min(maxy1, maxy2)

如果两个矩形不相交,那么计算得到的点对坐标必然满足
minx > maxx
或者
miny > maxy

判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成