CG_ApproxConvexPartition — 计算多边形几何的近似凸划分
geometry CG_ApproxConvexPartition(
geometry geom)
;
计算多边形几何的近似凸划分(使用三角剖分)。
多边形 P 的划分是一组多边形,这些多边形的内部不相交,并且这些多边形的并集等于原始多边形 P 的内部。CG_ApproxConvexPartition 和 CG_GreeneApproxConvexPartition 函数产生近似最优的凸划分。这两个函数都通过首先将多边形分解为更简单的多边形来产生凸分解;CG_ApproxConvexPartition 使用三角剖分,而 CG_GreeneApproxConvexPartition 使用单调划分。这两个函数都保证它们产生的凸块数量不超过最优数量的四倍,但它们的运行时复杂度不同。虽然基于三角剖分的近似算法通常会产生更少的凸块,但情况并非总是如此。 |
可用性:3.5.0 - 需要 SFCGAL >= 1.5.0。
需要 SFCGAL >= 1.5.0
此方法需要 SFCGAL 后端。
SELECT ST_AsText(CG_ApproxConvexPartition('POLYGON((156 150,83 181,89 131,148 120,107 61,32 159,0 45,41 86,45 1,177 2,67 24,109 31,170 60,180 110,156 150))'::geometry));
GEOMETRYCOLLECTION(POLYGON((156 150,83 181,89 131,148 120,156 150)),POLYGON((32 159,0 45,41 86,32 159)),POLYGON((107 61,32 159,41 86,107 61)),POLYGON((45 1,177 2,67 24,45 1)),POLYGON((41 86,45 1,67 24,41 86)),POLYGON((107 61,41 86,67 24,109 31,107 61)),POLYGON((148 120,107 61,109 31,170 60,148 120)),POLYGON((156 150,148 120,170 60,180 110,156 150)))