社区
数据结构与算法
帖子详情
请教:判断一个简单多边形是否在另一个多边形之内的算法
goodsong
2002-05-21 10:18:23
只要实用就行,不要最好
...全文
818
17
打赏
收藏
请教:判断一个简单多边形是否在另一个多边形之内的算法
只要实用就行,不要最好
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goodsong
2002-06-02
打赏
举报
回复
谢谢各位,让我收获很多,已经过了10多天了,结贴吧
再一次感谢各位的参与和帮助!
zhj009
2002-06-01
打赏
举报
回复
UBf:
你的想法错了,若Polygon1为正五边形,而Polygon2为五角星,顶点重合,你的方法就错了,你的只适合凸多边形。
BUF
2002-05-31
打赏
举报
回复
窃以为:
首先,若 Polygon1 的每一个顶点都在 Polygon2 内,则 Polygon1 在 Polygon2 内。
这样问题转化为判断每个给定的点是否在多边形内。
若多边形是凸多边形,用面积法比较方便
若是一般的简单多边形,可以用射线法,或 360度极角累加的方法
zzwu
2002-05-30
打赏
举报
回复
GoodSong(如风):
1。n边形要判断边与边相交,这原则上如此。但实际问题中,如果有大量多边形要作包含性判别,则有可能一次求交都不作,就可排除大量多边形的相交可能性,这就是将多边形按它们的最小外接矩形的最大和最小值排序,这样,若某个多边形外接矩形的右边小于另一个的左边,就不会相交了,等。
1。zhj009(猪小弟) 所说的‘五角形’,确切点说就是‘五角星’(因通常五角形和五边形指同一种图形)。也就是把每个顶点,与它不相邻的顶点,相连,所形成的图形。
2。zhj009(猪小弟) 所讲的问题是存在的。也就是我前面贴中没有提到的一些特殊情况:一个多边形与另一个多边形之间虽然边不相交,但有相接触、相切,甚至完全相重的情况。如下面所画的几个例子那样,其中外框代表大的多边形B:
************** ************** ************** *************
* * * * * * * * * *
* * * * *********** * * * * *
* * A * * * * * * A * * *
* ********* * * A * * * * * A,B *
* * *********** * ************** * *
* * * * * * * *
************** ************** ************** *************
1.一点相切 2.一边相重 3.三边相重 4.四边相重
3。类似这样的一些情况,是否定义成为B包含A,可以考虑。实际问题中是否存在,也不一定。
4。若要考虑这些情况后的包含关系,则要把上面说的方法修改以下,但仍可以采用完全统一的方法,这就是:检查A的所有点,如果它们都在B内或者B上,说明B包含了A,否则不是。
zhj009
2002-05-30
打赏
举报
回复
不好意思,打错字了,
"如A为正五角形,B为正五边形,五角形的五个角与五边形的五个顶点重合。"
句中"五角形"应该是"五角星".
goodsong
2002-05-30
打赏
举报
回复
五角形是什么样子的阿
zhj009
2002-05-29
打赏
举报
回复
up
opengl3d
2002-05-29
打赏
举报
回复
可以用着色的方法吗
哈哈
zhj009
2002-05-29
打赏
举报
回复
上面方法忽略了一些情况:
如A为正五角形,B为正五边形,五角形的五个角与五边形的五个顶点重合。
要是A在B内,但A的一边与B的一边重合就没法判定了。
还有可能是A的一顶点在B的一边上,只有一个交点。
怎样判定A在B内。
我的算法:
1。找出所有内部无线段的子多边形。
2。给每个子多边形一逻辑值,包含在B内的为1,包含在A内的为0,A与B共有的取或。
3。找出是否有任一子多边形的值为0,如无,则A在B内。
可能实际写出来会很繁,期待更好的算法。
goodsong
2002-05-27
打赏
举报
回复
谢谢zzwu(未名)!
这样会不会很慢?对于n边形要判断边与边相交要求n*n次交点
zzwu
2002-05-26
打赏
举报
回复
判断一个多边形A是否在另一个多边形B内,可用下列步骤完成:
1。确定两个多边形的边与边是否存在至少一点相交?
2。如存在至少一点相交,则不可能再有包含关系。否则,A,B之间还有三种可能:
A在B内,B在A内,A与B相互分离。
3。要确定A是否在B内,只需检查A的任一顶点是否在B内即可,而此问题曾经讨论过了,只要从A的顶点作一充分长射线,看它与B的交点数的奇偶性即可:奇数交点为在内,偶数交点不在内。
goodsong
2002-05-26
打赏
举报
回复
superzjx2000(锥子)
举个例子说明一下好吗?
比如两个三角形
(a1,b1),(a2,b2),(a3,b3)和(x1,y1),(x2,y2),(x3,y3)
superzjx2000
2002-05-26
打赏
举报
回复
用两个矩阵分别存储两个图形
扫描两个矩阵 看在各个方向上是否总是一个的值大于另一个的值
fang_jb
2002-05-25
打赏
举报
回复
VC有现成函数,可惜没源码:(
goodsong
2002-05-22
打赏
举报
回复
就是看不大懂啊
有没有现成的程序?
one_add_one
2002-05-21
打赏
举报
回复
你可以看看《计算几何》
one_add_one
2002-05-21
打赏
举报
回复
什么是简单多边形?
判断两个多边形的所有边是否有相交的。
如果没有,再判断其中一个点是否在另一个多边形内。(有很多现成的算法)
特效-
多边形
特效/PS高端辅助/动态人像速成特效 [精品推荐]
设计这种
多边形
效果时,如果纯粹的使用PS去实现的话,是一件很让人蛋疼的事情,那么采用本课的
多边形
特效生成器,带你装逼,带你飞,能很大程度的节省了你谈恋爱的时间,还在等神马,快动起来,打开你的电脑,马上开...
java通过坐标划分区域_
请教
一个
超级
算法
难题——java根据定位坐标计算区域问题!...
问题详情
请教
一个
超级
算法
难题——java根据定位坐标计算区域问题!
请教
一个
超级难题——java根据定位坐标计算区域问题!这些大概数据GIS方面的知识。问题描述:在
一个
房间里(以房间一角做原点(0,0,0))1. 使用定位...
使用Python计算平面
多边形
间最短距离,数据需要从exce
/分组背包问题,首先考虑
一个
木板的情况://对于
一个
木板而言:dp[i][j],i表示当前是第i次粉刷,粉刷第j块格子的情况。数组是非常基础的数据结构,在面试中,考察数组的题目一般在思维上都不难,主要是考察对代码的...
3D游戏引擎系列三
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,...CSDN课程视频网址:http://edu.csdn.net/lecturer/144 笔者以前在游戏论坛担任过技术版主,以及在51CTO教育网,CSDN教育网,泰课在线等教育网站担
我在CSDN参与的3000个帖子
2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章