社区
图形处理/算法
帖子详情
外接多边形问题
Mr_Ldh
2005-10-21 03:17:25
已知一些直线及一个点,怎样得到包围这个点的多边形。要求这个多边形是由已知的这些直接组成的。
...全文
265
32
打赏
收藏
外接多边形问题
已知一些直线及一个点,怎样得到包围这个点的多边形。要求这个多边形是由已知的这些直接组成的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
32 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Gold2000
2005-10-25
打赏
举报
回复
噢,你是在做CAD的二次开发?!
Gold2000
2005-10-24
打赏
举报
回复
搂主, 你到底在做什么???
Gold2000
2005-10-24
打赏
举报
回复
我以前做过跟你这个问题相似的算法,我总觉得有点“笨”!
I_Love_CPP(Climb,Never Stop!) 是不是有些好建议???
Gold2000
2005-10-24
打赏
举报
回复
“回”里面还包含“回”字 其实也没所谓,大不了你就找到n个多边形,
你用不同的Canvas颜色画Polypolygon()不就OK了!
Mr_Ldh
2005-10-24
打赏
举报
回复
To Gold2000(Gold2000): 我在做的是对CAD图填色。
Mr_Ldh
2005-10-23
打赏
举报
回复
考虑到我上面提到的“复杂”情况,经过算法第2步,得到一个多边形列表后,在第3步中就不能只是简单地判断点是否在某个多边形内了。当判断出点在某个多边形内部后,是不是还需要进一步判断还有没有其它多边形也完全包含在这个多边形内?最后这个多边形要用Polypolygon()画出了。
Mr_Ldh
2005-10-23
打赏
举报
回复
Gold2000(Gold2000): 你的算法是假设“直线”的情况下的,如果换成“线段”,除了需要判断点是否在凹多边形内以外,其它还有什么改变吗?
另外,你说“实现这个算法时,中间还需要特别注意一些问题”。不妨也说出来吧。
Mr_Ldh
2005-10-23
打赏
举报
回复
判断点是否在凹多边形内还是有办法的,正如你所说,射线有4个方向可换。实在不行,不一定非要用水平或垂直的射线。总之可以先不考虑这个问题。
是啊,分数不重要,互相学习才是根本。但在这里我也只能这样表示了。^-^
Gold2000
2005-10-23
打赏
举报
回复
哈哈,我不太需要你这个分!互相学习一下而已
我也是最近才来到你们这个板块,你们这里研究算法的人多,
特别是OpenGL高手多,happy__888([顾问团]寻开心)帮了我不少的忙,
十分感谢!
Gold2000
2005-10-23
打赏
举报
回复
在我看来,
判断点是否在 多边形内,这个多边形最好是凸多边形!!!
如果是凹多边形,且如果射线与凹多边形 的所有交点 都不位于
凹多边形的任何顶点处,仍然有效的根据点数的奇偶来作出判断。
当然,如果存在 射线与凹多边形 的交点 位于
凹多边形的顶点处,也可以换一换射线的方向进行判断;
射线有4个方向可换,只要凹多边形不是特别特别的不巧,还是能找到答案的!
你同意吗?
Mr_Ldh
2005-10-23
打赏
举报
回复
先加100分再说,呵呵。
Mr_Ldh
2005-10-23
打赏
举报
回复
首先感谢Gold2000(Gold2000)及happy__888([顾问团]寻开心)的热心帮助。其实我要解决的是一个在二维平面上进行填充的问题,但不能用扫描线法直接填充,必须取得要填充的多边形。因为我还要缩放、要保存这个多边形。首先这个平面有一个矩形范围(就是屏幕范围,鼠标点一定在这个范围之内),这些线段是任意的,可能完全位于屏幕内(或屏幕外,可不考虑),也可能与屏幕矩形相交。注意是“线段”,所以产生的最终结果有可能是凹多边形,也有可能是“回”字型,甚至更复杂的情况,这些线段在矩形范围内部围成了若干个“口”字形,鼠标点位于“口”外部,最终结果要取得“口”外面、屏幕矩形内部的形状。不知我的表述是否清楚?
感觉Gold2000(Gold2000)描述的算法差不多,请继续...
Mr_Ldh
2005-10-23
打赏
举报
回复
To I_Love_CPP(Climb,Never Stop!) :什么叫"点仅仅在其一侧"?
Mr_Ldh
2005-10-23
打赏
举报
回复
To Gold2000(Gold2000): 如果考虑这些线都是线段,就可能会出现“回”字形的情况,这时通过第2步得到的多边形就不一定相互独立、互不包含了。
I_Love_CPP
2005-10-23
打赏
举报
回复
有点问题,修正一下:
遍历直线,
保留那些满足条件"点仅仅在其一侧"的直线,
判断这些直线是否构成封闭区域,
若是而且区域内有点,成功;
否则继续遍历.
I_Love_CPP
2005-10-23
打赏
举报
回复
引用
已知一些直线及一个点,怎样得到包围这个点的多边形。要求这个多边形是由已知的这些直接组成的。
遍历直线,
保留那些满足条件"点仅仅在其一侧"的直线,
判断这些直线是否构成封闭区域,
若是,成功;
否则继续遍历.
Gold2000
2005-10-23
打赏
举报
回复
1、我的意思是: 多边形列表中所有的多边形都是相互独立的、都不会相互包含!
2、“实现这个算法时,中间还需要特别注意一些问题”:
线段列表中任取一线段 P1P2,如果找到多条以P2为端点的线段,
例如有P2P3、P2P4、P2P5,“应该先把位于线段 P1P2左边的线段过滤掉”,
剩下的是位于线段 P1P2右边的,然后才两两比较这些线段,
找到最左边的一条线段;如果所有的线段都是位于线段 P1P2左边,应该
两两比较这些线段,找到最右边的一条线段。
这样,才能保证你找出来的多边形是 相互独立的、都不会相互包含!
Gold2000
2005-10-22
打赏
举报
回复
赫赫,是啊,搂主真是惜墨如金!
一点都不像我这么“罗嗦”
寻开心
2005-10-22
打赏
举报
回复
对于这个变形后的‘口’字来说,它是有6个顶点,6个线段
最上边的‘一’是三段‘一’组成的,中间的‘一’不是原始的8个线段之一,它的两个端点,属于原始的8个线段当中的两个线段的,各自的一个端点。
我是觉得楼主的问题描述的不清晰
在我的理解看来楼主是想把一个一个线段用直线相连组成一个多边形,包含这个特殊点进去。最终的多边形的顶点必须是来自已知线段的顶点,而且多边形的边要么是线段,要么是构成多边形的边的不同线段的端点。
那种一个顶点在多边形上,另外一个顶点不在多边形上的线段不能算。
寻开心
2005-10-22
打赏
举报
回复
对于直线来说,多个直线交出来的是凸的多边形没错
但是对于线段不一样,比如这个‘凹’字本生,可以认为是8个线段组成的
假设给你的就是‘凹’这个字的8个线段,以及位于凹字中间豁口部分的一个点,如何把这个点包含进去呢?
只有把‘凹’字变成‘口’字才可以的呀。
加载更多回复(12)
实现任意
多边形
的最小
外接
圆
本功能实现任意
多边形
的最小
外接
圆,先实现任意
多边形
的绘制,在通过一个菜单实现绘制这个
多边形
的最小
外接
圆。
多边形
的最小
外接
矩形
该代码可用于求取一个
多边形
的最小
外接
矩形
树莓派+C语言基础部分
树莓派2017年销量突破1250万台,成为第三大计算机平台(第一是微软,第二是苹果),因为它的便宜,方便携带,即插即用,已经成为编程爱好者的随身伴侣,它可以运行c,c++,java,python等大部分通用语言,并且在上面可以做各种形式的开发,游戏,网页,多媒体,嵌入式,智能硬件等等。 本课程不局限于智能硬件,应该跟嵌入式,物联网,智能硬件都有关系,而这三者最合适的语言是C语言。 有下面四个理由让您爱上树莓派,购买这个课程! 一:您将会为您自己亲手写出的代码,控制树莓派亮起耀眼的三色灯而欣喜若狂! 二:您将会为自己实现了“长按3秒让树莓派重启”,感受到编程的神奇,从而爱上计算机,特别是硬件编程! 三:当数码管上明晃晃的数字每隔一秒那么精准的跳动,而这是您的程序在跑,您感觉到很充实,您会挑战一下把系统时间显示在数码管上! 四:当您哈一口气,打印的温度和湿度会随着变化的时候,你发现了通往物联网的路口!
简单
多边形
的最小
外接
矩形算法
简单
多边形
的最小
外接
矩形算法,适用于玻璃排样等。
matlab求任意
多边形
(点集)最小
外接
圆算法
给定点集组成任意
多边形
,使用matlab求出包含所有点的最小
外接
圆。
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章