如何判断两个矩形是否相交
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/13 05:25:33
如何判断两个矩形是否相交
如何判断两个矩形是否相交
如何判断两个矩形是否相交
1、一个矩形只有一个角的点在另一个矩形内;
2、一个矩形a只一条边上的2个顶角在另一个矩形b内(这种情况对于另一个矩形b来说却是4个顶角都在矩形a之外,所以要交换判断).
3、一个矩形穿过另一个矩形;
这位朋友想了这么三种情形之后,觉得把这些情形写成代码过于复杂,这才跑到论坛上来提问.
有的时候,程序员考虑问题的方向就得跟别人不一样,换一个角度考虑,这个问题将变得简单:
如果两个矩形相交,则必然存在线条交叉,而能交叉的线条只有横线和竖线,两根横线或两根竖线都不可能交叉.所以,这个问题就转化成寻找是否存在交叉的横线与竖线.
另外,A线与B线交叉等价于B线与A线交叉,所以,只要写一个函数就足够用了,多调用几次,反正计算机是专门做简单而又烦琐的工作的.
下面是这个函数:判断一条横线和一条竖线是否交叉.该函数的参数分别是:横线左、横线右,横线Y,竖线上,竖线下,竖线X.
bool CrossLine(left, right, y, top, bottom, x){//判断一根横线和一根竖线是否交叉
//横线有三个参数:left, right和y
//竖线有三个参数:top, bottom和x
return (top < y) && (bottom > y)
&& (left < x) && (right > x);}下面是判断两个矩形是否相交的函数,把同一个函数多调用几篇就OK了.
bool CrossRect(CRect &r1, CRect &r2){//判断两个矩形是否相交,
//从一个矩形中取出一条横线,与另一矩形中的一条竖线判断是否交叉
如何判断两个矩形是否相交
如何判断两个矩形是否相交
判断两个矩形是否相交
判断两个矩形是否相交
如何用VB判断 矩形和一线段是否相交如何判断 矩形和一线段是否相交已知:矩形的起始坐标线段的起始坐标
判断线段与矩形是否相交
如何判断空间坐标系中两个长方形是否相交
判断两个线段是否相交
如何判断两个斜矩形相交啊如题,能给个思路就好
C/C++ 如何判断两个矩形之间的关系?设计一个算法,来判断两个矩形之间的关系 是相交,内含,还是没关系
pku 1410(判断线段是否跟矩形相交)
C语言中怎么编写程序判断两个平行于坐标轴的矩形是否相交,麻烦大神们了.
两个矩形相交重合的部分如何说明是菱形
怎样用几何方法判断一个圆和一个矩形是否相交?
如何判断两个微粒是否属于同位素
如何判断两个化学方程式之间是否反应
如何判断两个金属材料是否是磁体
如何判断两个圆是否同心?