如何求两个向交矩形的交集的面积?

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  



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值