QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2704|回复: 5

如何判断两个矩形是否重叠?

[复制链接]
发表于 2003-10-1 11:55:43 | 显示全部楼层 |阅读模式
知道两个矩形的左上角 右下角 坐标
有啥快速的方法判断两个矩形是否重叠
发表于 2003-10-1 17:09:48 | 显示全部楼层
(自认为)空间换时间的方法:
矩形A:
(x1,y1)-(x2,y2)
矩形B:
(x3,y3)-(x4,y4)

定义矩形的中心点:
A:
(X1,Y1)
X1=(x1 + x2) / 2
Y1=(y1 + y2) / 2
B:
(X2,Y2)
X2=(x3 + x4) / 2
Y2=(y3 + y4) / 2

定义两个临时点(以矩形A作为判断基准的话):
P1(a,b)
a=x1 - (x4 - x3)/2
b=y1+ (y3 - y4)/2
P2(c,d)
c=x2 + (x4 - x3)/2
d=y2 - (y3 - y4)/2
如果使用P1和P2分别作为一个矩形的左上角和右上角,那么只要判断矩形B的中心点是否在这个矩形内就行了。也就是说,当以下条件同时为真时,A和B有重叠:
a < X2 < c
d < Y2 < b
回复

使用道具 举报

发表于 2003-10-1 19:22:00 | 显示全部楼层
用初中的几何知识就可以解:

如果两条对角线相交的话,它们重叠,
不相交的话.:
以对角线为直径作圆,若两圆相交就有重叠或不重叠两种情况 ; 若两圆相离就肯定不重叠
           
画个图看看, 一条对角线可以作出无数个矩形,但这些矩形都在以对角线为直径的圆内
回复

使用道具 举报

 楼主| 发表于 2003-10-1 20:58:47 | 显示全部楼层
有点明白了
谢谢各位
[quote:8e21275592="neptune"]
画个图看看, 一条对角线可以作出无数个矩形,但这些矩形都在以对角线为直径的圆内[/quote]
忘了说一点 我的矩形不可能出现斜的情况  所以一条对角线只有一个矩形
回复

使用道具 举报

发表于 2003-10-8 15:11:12 | 显示全部楼层
我还是不怎么明白 :-(
回复

使用道具 举报

发表于 2003-10-8 15:12:00 | 显示全部楼层
尤其是neptune说的方法
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-14 11:19 , Processed in 0.089036 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表