如何求两个向交矩形的交集的面积?
http://blog.csdn.net/yanleigis/article/details/3158223
如何求两个相交矩形的交集的面积?
就是交接的公共部分面积?
class Rectangle {
Point min;
Point max;
}
Rectangle rect1, rect2;
Rectangle rect;
找到x坐标中中间的两个值
找到y坐标中中间的两个值
rect.min.x = max(rect1.min.x, rect2.min.x); //从最小x中找最大的x
rect.min.y = max(rect1.min.y, rect2.min.y); //从最小的y中找最大的y
rect.max.x = min(rect1.max.x, rect2.max.x); //从最大的x中找最小的x
rect.max.y = min(rect1.max.y, rect2.max.y); //从最大的y中找最小的y
if ( rect.min.x<rect.max.x && rect.min.y <rect.max.y ) //这样才有面积的交集
s = (rect.max.x-rect.min.x)*(rect.max.y-rect.min.y)
else
s = 0;
如何判断两个矩形是否相交
假定矩形是用一对点表达的(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
总结
以上是生活随笔为你收集整理的如何求两个向交矩形的交集的面积?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 编程之美 1.12 nim(2)
- 下一篇: 飞机环绕地球