多边形的简化?

wow303 2003-10-18 11:37:38
我有一个多边形的操作。就是让用户在视图区域内画一个闭合曲线,即将屏幕提取的n个点用线首尾连起来。然后要在这个区域内进行其它动作。
如果得到的图形是一个简单闭合的多边形,则一切好说。如果画得曲线不是很规则,曲线内部出现相交的情况,我应该将多边形简化。提取最外沿的定点和焦点,连接成一个新的多边形,其形状和面积与原来的覆盖区域完全吻合。
请问应该如何处理,当某一个交点又是两块之间的连接点时应该怎么处理?
谢谢!

...全文
226 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
HUNTON 2003-10-22
  • 打赏
  • 举报
回复
找到斜率最大的一个?好象不对吧。
wow303 2003-10-22
  • 打赏
  • 举报
回复
如果是凸多边形,这样是正确的。
可是如果是一个复杂的多边形,怎么处理。
这里不能贴图。我给一个图例吧:
http://www.simwe.com/cgi-bin/ut/topic_show.cgi?id=25076&h=1&bpg=2&age=0
one_add_one 2003-10-22
  • 打赏
  • 举报
回复
求一堆点的凸包..

把点看作钉子..
可以像绕绳子一样.从一个点开始,绕一圈...和绳子接触的钉子就是你要凸包.

具体这样做:
找纵坐标最低的点,然后连接这个点和其他所有点,找到斜率最大的一个,再以这个点
开始,继续连接其他点,找斜率最大的,最后得到一个集合,就是你要的凸包
wow303 2003-10-21
  • 打赏
  • 举报
回复
很对,可是应该怎么才能实现呢?我是用MATLAB编程,也不知有没有可以利用的函数。
谢谢你的关注!
zzwu 2003-10-21
  • 打赏
  • 举报
回复
你的意思是要把abcdefga:

a d

.
c b

g e
g

转换成下面的ahdefga:

a d

.h


g e
g

凹多边形吗?


wow303 2003-10-20
  • 打赏
  • 举报
回复
我刚开始的提法有误,只要边缘线无交叉即可,不一定是一个凸多边形。
请问各位应该怎么处理?
谢谢!
wow303 2003-10-18
  • 打赏
  • 举报
回复
我是要得到一个凸多边形。
zzwu 2003-10-18
  • 打赏
  • 举报
回复
请看例子abcdefga:

a d


c b

g e
g

得到的就是凹的多边形了.
lsl7909 2003-10-18
  • 打赏
  • 举报
回复
也可能是凹多边形,不过一定要形成凸多边形的话,必须对点进行凸壳处理!
lsl7909 2003-10-18
  • 打赏
  • 举报
回复
应该先对那些点进行处理,形成一个凸壳,然后再连成一个凸多边形,用三角形面片进行逼近。
zzwu 2003-10-18
  • 打赏
  • 举报
回复
不对,不一定能成为凸多边形.
sleeptilldeath 2003-10-18
  • 打赏
  • 举报
回复
如果出现交叉显然会成为多个多边形,不知你究竟要怎样,如果要得到一个凸多边形,可以将这些定点作为一个点集,才有凸包生成算法,重新生成一个多边形。

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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