2011-06-06 172 views
1

我有一组密集的,不分散的2D点(“遍布整个地方”)。它们可以存储在单个MULTIPOINT WKT对象中,包括“孔”或 - 如果需要的话 - 可以作为delaunay三角形存储。如何将一组二维点(多点)转换为多边形?

你会如何将它转换成多边形,即一个外边界和零,一个或多个内边界?

P.S.它不是我正在寻找的最大的封闭多边形(这可以通过ConvexHull或ConcaveHull来解决)。我正在寻找一个与散点集(包括内部边界)相同形状的真正多边形。

+0

我真的听起来像你_are_寻找一个[凹面](http://ubicomp.algoritmi.uminho.pt/local/concavehull.html)。如果没有,那么你能否提供一个你正在寻找的例子(图片)?事实上,你还没有收到任何答案是一个说明你的问题缺乏细节,国际海事组织。 – 2011-06-09 07:29:35

回答

0

你的问题对我来说就像是“找到一个具有一组给定点的多边形作为顶点”。这个解释是否正确?

如果是这样,您可以执行以下操作:创建点的凸包。从考虑中删除这些点,并采取其余点的凸包。以这种方式继续下去,直到没有剩余的点数。中间结果将是一系列相互嵌套的凸多边形。您可以通过连接每个随后的多边形对将它们变成单个多边形。您可以通过从每个边删除一条边来连接两个多边形,并将所得到的端点“反过来”连接起来。必须注意这些连接不会与其他任何重叠,但这不应该太难。

请注意,当我阅读时,有许多可能的结果符合规范。如果你需要一个特定的,你必须提供关于该选择标准的细节。