**求判断面积是否重叠的方法?**=========================>

apogeecsj 2003-11-16 08:54:59
如何判断一系列圆,矩形,两两之间是否面积有重叠?
给定圆信息:(x1,y1,r)====>x1,y1为圆心坐标
给定矩形(x1,y1,x2,y2)====>由两点确定的一个矩形
...全文
83 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HUNTON 2003-11-17
  • 打赏
  • 举报
回复
1、圆与圆:圆心O1,O2,半径R1,R2,圆心距D
若0 <= D <= abs(R1 - R2) : 内含(0为同心内含,abs(R1 - R2)为内切)
若 abs(R1 - R2) < D <= R1 + R2 :相交(R1 + R2为外切)
若 D > R1 + R2 :相离

2、圆与矩形:
定义:点到线段的距离为该点与线段上所有点的距离中最小的。

如果圆心在矩形中且圆心到矩形四条边(可看成直线也可看成线段)的距离都大于等于圆的半径,则圆内含在矩形中
如果圆心不在矩形中且圆心到矩形四条边(看成线段)的距离都大于等于圆的半径,则圆与矩形相离
如果矩形四个顶点都在圆内,则该矩形内含在圆中
其余的就是相交情况了

其实点到线段的距离就是该点到该线段所在直线的距离与该点分别到该线段两个端点的距离,三个中的一个。具体应该这样求,例如线段AB,点为P,当角PAB大于90度时,P到线段AB的距离为PA;当角PBA大于90度时,P到线段AB的距离为PB;其余情况P到线段AB的距离都为为P到直线AB的距离
对本题可以不求角度,因为线段AB是与坐标轴平行的。
具体为:
i: 线段端点A(x1,y1),B(x1,y2),P(x0,y0),且y1<y2,
若y0 < y1,距离为PA
若y1 <= y0 <= y2,距离为P到直线AB的距离
若y0 > y2,距离为PB

ii: 线段端点A(x1,y1),B(x2,y1),P(x0,y0),且x1<x2,
若x0 < x1,距离为PA
若x1 <= x0 <= x2,距离为P到直线AB的距离
若x0 > x2,距离为PB

3、矩形与矩形:
如果一个矩形M1的四个顶点都在另一个矩形M2中,则M1内含在M2中
同理判断M2是否内含在M1中。
如果M1的四个顶点都不在M2中,且M2的四个顶点都不在M1中,则M1与M2相离
其余的为相交情况
NowCan 2003-11-17
  • 打赏
  • 举报
回复
1楼,如果相切呢?
apogeecsj 2003-11-16
  • 打赏
  • 举报
回复
能给出具体算法么?
1.一个图形在重叠在另一个里面
2.两个图形边界有互相相交点
3.两个图形完全相离
HUNTON 2003-11-16
  • 打赏
  • 举报
回复
那就是三种情况:圆与圆,圆与矩形,矩形与矩形。分别讨论一下就可以了。
teaor 2003-11-16
  • 打赏
  • 举报
回复
圆或线段之间有交点面积就有重叠

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧