首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >包含原始详细多边形的简化(或光滑)多边形

包含原始详细多边形的简化(或光滑)多边形
EN

Stack Overflow用户
提问于 2011-02-18 04:24:08
回答 6查看 16.4K关注 0票数 37

我有一个详细的2D多边形(代表一个地理区域),它是由一组非常大的顶点定义的。我正在寻找一种算法,将简化和平滑多边形,(减少顶点的数目)的约束,区域的结果多边形必须包含详细多边形的所有顶点。

对于上下文,下面是一个复杂多边形边缘的示例:

我的研究:

  • 我发现Ramer Peucker算法可以减少顶点的数量,但是得到的多边形不会包含所有原始多边形的顶点。参见本文拉米尔-道格拉斯-派克在维基百科上
  • 我考虑扩大多边形(我相信这也被称为外向多边形偏移)。我发现了以下问题:展开多边形(仅凸)膨胀多边形。但我不认为这会大大减少我的多边形的细节。

谢谢你给我的任何建议!

EN

回答 6

Stack Overflow用户

发布于 2011-02-18 16:33:44

编辑

截至2013年,下面的大多数链接都不再运行了。然而,我找到了引用的论文,包括算法,仍然可以在这个(非常慢)的服务器上使用。

这里 --您可以找到一个处理问题的项目。虽然它主要用于按点“填充”的区域,但您可以将其设置为使用“外围”类型定义。

它使用k近邻方法来计算区域.

示例:

这里你可以要求一份论文的副本。

他们似乎是因为请求计算而计划提供在线服务,但我没有测试它,而且很可能它没有运行。

哈哈!

票数 19
EN

Stack Overflow用户

发布于 2015-03-18 09:39:50

我认为维斯瓦林加算法可以适应这一目的-通过跳过删除三角形,以减少面积。

票数 2
EN

Stack Overflow用户

发布于 2016-01-27 21:58:59

我有一个非常相似的问题:我需要一个膨胀的多边形简化。

我做了一个简单的算法,通过删除concav点(这将增加多边形大小)或删除凸边(两个凸点之间)和延长相邻边。在任何情况下,做这两种可能性中的一种将删除多边形上的一个点。

我选择移除导致最小面积变化的点或边缘。你可以重复这个过程,直到简化对你来说是可以的(例如,不超过200点)。

两个主要的困难是获得快速算法(避免计算顶点/边缘的变化两次并保持可能性排序)和避免在过程中插入自交点(不太容易做和解释可能,但计算复杂度有限)。

事实上,在仔细观察之后,这是一个类似的想法,维斯瓦林加与自适应的边缘去除。

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

https://stackoverflow.com/questions/5037588

复制
相关文章

相似问题

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