博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何求两个向交矩形的交集的面积?
阅读量:4155 次
发布时间:2019-05-25

本文共 835 字,大约阅读时间需要 2 分钟。

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

就是交接的公共部分面积?

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  

转载地址:http://ypeti.baihongyu.com/

你可能感兴趣的文章
基于S5PV210的uboot移植中遇到的若干问题记录(一)DM9000网卡移植
查看>>
Openwrt源码下载与编译
查看>>
我和ip_conntrack不得不说的一些事
查看>>
Linux 查看端口使用情况
查看>>
文件隐藏
查看>>
两个linux内核rootkit--之二:adore-ng
查看>>
两个linux内核rootkit--之一:enyelkm
查看>>
关于linux栈的一个深层次的问题
查看>>
rootkit related
查看>>
配置文件的重要性------轻化操作
查看>>
又是缓存惹的祸!!!
查看>>
为什么要实现程序指令和程序数据的分离?
查看>>
我对C++ string和length方法的一个长期误解------从protobuf序列化说起(没处理好会引起数据丢失、反序列化失败哦!)
查看>>
一起来看看protobuf中容易引起bug的一个细节
查看>>
无protobuf协议情况下的反序列化------貌似无解, 其实有解!
查看>>
make -n(仅列出命令, 但不会执行)用于调试makefile
查看>>
makefile中“-“符号的使用
查看>>
go语言如何从终端逐行读取数据?------用bufio包
查看>>
go的值类型和引用类型------重要的概念
查看>>
求二叉树中结点的最大值(所有结点的值都是正整数)
查看>>