如何将一组2D点(多点)转换为多边形?

时间:2011-06-06 14:38:12

标签: polygon computational-geometry

我有一组密集的,不规则分布的2D点(“散布在各处”)。它们可以存储在单个MULTIPOINT WKT对象中,包括“孔”或 - 如果需要 - 作为delaunay三角形。

如何将其转换为多边形,即一个外边界和零,一个或多个内边界?

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

2 个答案:

答案 0 :(得分:0)

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

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

请注意,在我阅读时,有许多可能的结果符合规范。如果您需要特定的一个,则必须详细说明该选择的标准。

答案 1 :(得分:0)

使用QHull:http://www.qhull.org/

这种事情的事实上的标准。