【发布时间】:2011-06-29 14:01:47
【问题描述】:
我有一个详细的二维多边形(代表一个地理区域),它由一组非常大的顶点定义。我正在寻找一种算法来简化和平滑多边形,(减少顶点的数量),其约束条件是生成的多边形的 area 必须包含详细多边形的所有顶点。
关于上下文,这里是一个复杂多边形的边的示例:
我的研究:
我发现 Ramer–Douglas–Peucker 算法会减少顶点的数量 - 但生成的多边形不会包含原始多边形的所有顶点。看这篇文章Ramer-Douglas-Peucker on Wikipedia
我考虑过扩展多边形(我相信这也称为向外多边形偏移)。我发现了这些问题:Expanding a polygon (convex only) 和 Inflating a polygon。但我不认为这会大大减少我的多边形的细节。
感谢您给我的任何建议!
【问题讨论】:
-
我被这句话弄糊涂了——“我正在寻找一种算法来简化和平滑多边形,(减少顶点的数量),约束条件是生成的多边形必须包含所有详细多边形的顶点。"。如何减少顶点的数量,同时保留所有顶点?
-
我的意思是生成的多边形应该有更少的顶点,但是它定义的 area 必须包含详细多边形中的所有顶点。谢谢。
-
这里是性能问题吗?
-
最终的顶点集应该是原始集的一部分,还是可以伪造一组“新”的不同顶点?
-
如果新多边形的顶点与详细多边形完全不同,那也没关系,只要新多边形的边缘离原始边缘不太远。例如我不想要一个凸包,或者一个包含原始多边形的大圆。
标签: algorithm geometry gis polygon computational-geometry