首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从具有共线边的多边形中提取多边形

从具有共线边的多边形中提取多边形
EN

Stack Overflow用户
提问于 2011-01-10 14:21:38
回答 2查看 986关注 0票数 0

如何从包含共线边的多边形中提取简单多边形?对于下面非常简单的情况,边2-3和6-0是共线的。我想把它分成0,1,2和3,4,5,6。

我可以将每条边的共线性与其他每条边的共线性进行比较,但这是一个很慢的O(n^2)方法。有没有更快的方法?

EN

回答 2

Stack Overflow用户

发布于 2011-01-10 15:14:07

找到一个边界圆。计算边界圆和每条边所在的线之间的上/右交点。这是O(n)。现在,根据每条边的角度元组以及它与边界圆相交的角度位置对每条边进行排序。这是O(nlogn),它会将排序列表中的共线边组合在一起。

如果你不太可能有很多平行但不共线的边,那么你可以跳过边界圆的事情,只按角度排序。如果有很多平行的非共线角度,那么仅仅使用角度仍然是“有效的”,它不会给你带来更多的效率提升。

票数 2
EN

Stack Overflow用户

发布于 2011-12-08 23:07:03

你能找到1-2和6-0的交点吗?如果是这样,您可以生成一个包含边和顶点的图。然后,找到所有不重叠的多边形就很简单了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4644201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档