社区
C++ 语言
帖子详情
如何最高效率判断一个平面圆形和一个平面正方形相交?
tiantiangame
2010-04-15 10:45:13
我有一个圆的中心点坐标和它的半径, 还有正方形的4个角的坐标点 如何最高效率判断一个平面圆形和一个平面正方形相交?
vector3 v(0.0, 0.0, 0.0) 圆心点
radius = 5.0
正方形4个角
vector3 a1,a2,a3,a4
...全文
2198
48
打赏
收藏
如何最高效率判断一个平面圆形和一个平面正方形相交?
我有一个圆的中心点坐标和它的半径, 还有正方形的4个角的坐标点 如何最高效率判断一个平面圆形和一个平面正方形相交? vector3 v(0.0, 0.0, 0.0) 圆心点 radius = 5.0 正方形4个角 vector3 a1,a2,a3,a4
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
48 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
limingqing61
2012-10-20
打赏
举报
回复
[Quote=引用 29 楼 的回复:]
引用 24 楼 zhao4zhong1 的回复:
若全为负,不相交。
若全为正,再判断正方形是否包含圆的外接正方形,
包含,不相交。
不包含,相交。
以上逻辑可能还有漏洞。
什么漏洞? 举个例子!!
我一看到题目,就想到了高数里面的这个方法啊,看一个点在不在圆内,然后拓展开来,4个点都不在圆内的话,要么不相交,要么就是矩形包含圆。 你还能想出其他情况么?
[/Quote]
有的,即使四个点都在圆外,还可能会有相交的可能,比如和正方形的某条边相交于两点
xwxwxw2003
2012-10-06
打赏
举报
回复
不相交的充要条件:
1.正方形四个点都在圆外
2.正方形中心到圆心的距离>边长+半径
大家看看对不。
致-我们的星辰大海
2021-06-16
举报
回复
@xwxwxw2003
应该是距离>二分之一边长+半径
FancyMouse
2012-10-06
打赏
举报
回复
1
[Quote=引用 46 楼 的回复:]
1. 正方形有4个顶点,分别计算4个顶点到圆心的距离,只要其中一个距离小于圆的半径,就必然相交。
2. 如果4个顶点到圆心的距离均大于圆的半径,那么如果圆心到正方形中心的距离小于圆的半径与正方形边长一半的和,则必然相交。
3. 其它情况,不相交。
[/Quote]
反例:正方形(0,0)-(1,1)。圆心(1e-5,1e-5),半径r=1e-5。显然正方形包含圆,它们边界也相交。但是正方形顶点都在圆外。圆心到正方形中心距离几乎是sqrt(2)/2,大于1/2+1e-5。
pathuang68
2012-10-06
打赏
举报
回复
1. 正方形有4个顶点,分别计算4个顶点到圆心的距离,只要其中一个距离小于圆的半径,就必然相交。
2. 如果4个顶点到圆心的距离均大于圆的半径,那么如果圆心到正方形中心的距离小于圆的半径与正方形边长一半的和,则必然相交。
3. 其它情况,不相交。
echoonly
2012-06-10
打赏
举报
回复
[Quote=引用 42 楼 的回复:]
正方形4个角
vector3 a1,a2,a3,a4
4个点不一定在一个平面上啊。
4四个点可以确定一个四面体。
[/Quote]
原题的坐标是在一个平面内的。。
木子十甫寸
2012-02-01
打赏
举报
回复
应该是不对的
[Quote=引用 37 楼 xiandaixiaotu2 的回复:]
计算出正方形四条边的方程,计算圆心到四条边的距离,如果存在小于半径的距离就相交,否则不相交。貌似比较麻烦
[/Quote]
mymtom
2011-08-24
打赏
举报
回复
正方形4个角
vector3 a1,a2,a3,a4
4个点不一定在一个平面上啊。
4四个点可以确定一个四面体。
mymtom
2011-08-24
打赏
举报
回复
vector3 v(0.0, 0.0, 0.0) 圆心点
radius = 5.0
只能确定一个球面啊。
赵4老师
2011-08-23
打赏
举报
回复
计算几何大牛:
http://www.codeproject.com/KB/recipes/Wykobi.aspx
wRonSKy317
2011-08-23
打赏
举报
回复
[Quote=引用 37 楼 xiandaixiaotu2 的回复:]
计算出正方形四条边的方程,计算圆心到四条边的距离,如果存在小于半径的距离就相交,否则不相交。貌似比较麻烦
[/Quote]我错了,无视我吧
wRonSKy317
2011-08-23
打赏
举报
回复
还有,如果是3d空间的圆的话,只给出圆心和半径不能确定一个圆啊。如果限制y=0,则问题变为2d的情况,题目有点故弄玄虚呢
wRonSKy317
2011-08-23
打赏
举报
回复
计算出正方形四条边的方程,计算圆心到四条边的距离,如果存在小于半径的距离就相交,否则不相交。貌似比较麻烦
FrankHB1989
2011-04-15
打赏
举报
回复
[Quote=引用 35 楼 mni2005 的回复:]
去看计算机图形学
[/Quote]
不是图形学,是计算几何。
莫_问
2011-04-15
打赏
举报
回复
去看计算机图形学
lichong_87
2011-04-15
打赏
举报
回复
[Quote=引用 33 楼 lichong_87 的回复:]
是不是可以这样:假设圆的半径为r,正方形的边长的一半为l,正方形的外接圆半径为R,正方形中心和圆心的距离为d,那么如果d>r+R说明不相交,如果d<r+l则说明相交,如果r+l<d<r+R那么还要继续判断。判断圆心到正方形的四条边的距离,如果有小于圆的半径的,那么就说明相交。如果都是大于,那么判断圆心是在正放心内部还是外部,内部说明相交,外部说明不相交。处理的时候可以先将圆移动到原点,并对应移动正……
[/Quote]
没看清圆心就在原点,那么这样的话就可以直接计算了...
lichong_87
2011-04-15
打赏
举报
回复
是不是可以这样:假设圆的半径为r,正方形的边长的一半为l,正方形的外接圆半径为R,正方形中心和圆心的距离为d,那么如果d>r+R说明不相交,如果d<r+l则说明相交,如果r+l<d<r+R那么还要继续判断。判断圆心到正方形的四条边的距离,如果有小于圆的半径的,那么就说明相交。如果都是大于,那么判断圆心是在正放心内部还是外部,内部说明相交,外部说明不相交。处理的时候可以先将圆移动到原点,并对应移动正方形。然后转换坐标系,使得正方形相对坐标系为横平竖直的,这样计算原点到正方形各条边的距离就可以直接获得...(当然不转换也可以计算)
ForestDB
2010-04-18
打赏
举报
回复
帮顶。
knate
2010-04-18
打赏
举报
回复
还有一种方法是
如果多边形端点在圆外和园内都有则必然有交点.
有端点在圆上的独立考虑.
YT158828
2010-04-17
打赏
举报
回复
相交说明一个问题..
圆心到矩形的一条边的距离小于半径长度(或者更多...)
不知这个思路对楼主是否有帮助
aoxuehan0424
2010-04-16
打赏
举报
回复
[Quote=引用 24 楼 zhao4zhong1 的回复:]
若全为负,不相交。
若全为正,再判断正方形是否包含圆的外接正方形,
包含,不相交。
不包含,相交。
以上逻辑可能还有漏洞。
[/Quote]
什么漏洞? 举个例子!!
我一看到题目,就想到了高数里面的这个方法啊,看一个点在不在圆内,然后拓展开来,4个点都不在圆内的话,要么不相交,要么就是矩形包含圆。 你还能想出其他情况么?
加载更多回复(27)
半
平面
相关题解1
第一行有
一个
整数 t,表示有 t 组测试数据 第一行有
一个
整数 t,表示有 t 组测试数据 第一行有
一个
整数 N
六年级
平面
几何图形的基本概念总复习题精选.doc
六年级
平面
几何图形的基本概念总复习题精选.doc
六年级数学上册 截
一个
集合体一课一练(无答案) 鲁教版 试题.doc
六年级数学上册 截
一个
集合体一课一练(无答案) 鲁教版 试题.doc
苏教版六年级数学下册总复习题《
平面
图形的认识》精选.doc
苏教版六年级数学下册总复习题《
平面
图形的认识》精选.doc
2018年秋七年级数学上册4.1几何图形4.1.1立体图形与
平面
图形第1课时认识立体图形与
平面
图形导学案无答案新版新人教版
2018年秋七年级数学上册4.1几何图形4.1.1立体图形与
平面
图形第1课时认识立体图形与
平面
图形导学案无答案新版新人教版
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章