判断两个矩形是否相交

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 01:27:02
判断两个矩形是否相交判断两个矩形是否相交判断两个矩形是否相交以前写过一篇如何判断线段相交的问题,上网查了一些方法,在这里做一下后一个问题的总结:方法一:假定矩形是用一对点表达的(minx,miny)(

判断两个矩形是否相交
判断两个矩形是否相交

判断两个矩形是否相交
以前写过一篇如何判断线段相交的问题,上网查了一些方法,在这里做一下后一个问题的总结:方法一:假定矩形是用一对点表达的(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 bool CPreprocess::crossAlgorithm1(CvRect r1,CvRect r2) { int nMaxLeft = 0; int nMaxTop = 0; int nMinRight = 0; int nMinBottom = 0; //计算两矩形可能的相交矩形的边界 nMaxLeft = r1.x >= r2.x r1.x :r2.x; nMaxTop = r1.y >= r2.y r1.y :r2.y; nMinRight = (r1.x + r1.width) nMinBottom) { return false; } else { return true; } }方法二:如果两个矩形相交,则必然存在线条交叉,而能交叉的线条只有横线和竖线,两根横线或两根竖线都不可能交叉.所以,这个问题就转化成寻找是否存在交叉的横线与竖线.// bool CPreprocess::crossAlgorithm2(CvRect r1,CvRect r2) { //,//从一个矩形中取出一条横线,与另一矩形中的一条竖线判断是否交叉 return crossLine(r1.x,r1.x + r1.width,r1.y,r2.y,r2.y + r2.height,r2.x) || crossLine(r1.x,r1.x + r1.width,r1.y,r2.y,r2.y + r2.height,r2.x + r2.width) || crossLine(r1.x,r1.x + r1.width,r1.y + r1.height,r2.y,r2.y + r2.height,r2.x) || crossLine(r1.x,r1.x + r1.width,r1.y + r1.height,r2.y,r2.y + r2.height,r2.x r2.width) || crossLine(r2.x,r2.x + r2.width,r2.y,r1.y,r1.y + r1.height,r1.x) || crossLine(r2.x,r2.x + r2.width,r2.y,r1.y,r1.y + r1.height,r1.x + r1.width) || crossLine(r2.x,r2.x + r2.width,r2.y + r2.height,r1.y,r1.y + r1.height,r1.x) || crossLine(r2.x,r2.x + r2.width,r2.y r2.height,r1.y + r1.height,r1.y + r1.height,r1.x r1.width); } //判断直线是否相交 bool CPreprocess::crossLine(int left,int right,int x,int top,int bottom,int y) { return (top < y) && (bottom > y) && (left < x) && (right > x); }

判断两个矩形是否相交 判断两个矩形是否相交 如何判断两个矩形是否相交 如何判断两个矩形是否相交 判断线段与矩形是否相交 判断两个线段是否相交 pku 1410(判断线段是否跟矩形相交) C语言中怎么编写程序判断两个平行于坐标轴的矩形是否相交,麻烦大神们了. 如何用VB判断 矩形和一线段是否相交如何判断 矩形和一线段是否相交已知:矩形的起始坐标线段的起始坐标 如何判断空间坐标系中两个长方形是否相交 怎样用几何方法判断一个圆和一个矩形是否相交? 计算两个矩形是否有相交部分,求C或C++源代码算法已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点.判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确.最好就用 计算两个矩形是否有相交部分,求C或C++源代码算法已知如图两个矩形,他们的d(短边)是一样的,坐标点是d的中点.判断他们两者是否有相交部分,要考虑各种极端情况以确保算法正确.最好就用 如何判断两个斜矩形相交啊如题,能给个思路就好 C/C++ 如何判断两个矩形之间的关系?设计一个算法,来判断两个矩形之间的关系 是相交,内含,还是没关系 判断两线段是否相交 判断两线段是否相交 matlab判断线段和矩形是否相交已知线段两个端点(x,y) (x1,y1)矩形的四个顶点(a1,b1)(a2,b2)(a3,b3)(a4,b4)写个函数 iscross(x,y,x1,y1,a1,b1,a2,b2,a3,b3,a4,b4) 若相交返回1 否则返回0不要告诉我