CG_GreeneApproxConvexPartition — 計算多邊形幾何的近似凸分割
geometry CG_GreeneApproxConvexPartition(
geometry geom)
;
計算多邊形幾何的近似單調凸分割。
![]() |
|
多邊形 P 的分割是一組多邊形,這些多邊形的內部不相交,並且這些多邊形的聯集等於原始多邊形 P 的內部。CG_ApproxConvexPartition 和 CG_GreeneApproxConvexPartition 函數產生近似最佳的凸分割。這兩個函數都通過首先將多邊形分解為更簡單的多邊形來產生凸分解;CG_ApproxConvexPartition 使用三角剖分,而 CG_GreeneApproxConvexPartition 使用單調分割。這兩個函數都保證它們產生的凸塊數量不會超過最佳數量的四倍,但它們的運行時複雜度有所不同。儘管基於三角剖分的近似算法通常會產生較少的凸塊,但情況並非總是如此。 |
可用性:3.5.0 - 需要 SFCGAL >= 1.5.0。
需要 SFCGAL >= 1.5.0
此方法需要 SFCGAL 後端。
Greene 近似凸分割(與 CG_YMonotonePartition、CG_ApproxConvexPartition 和 CG_OptimalConvexPartition 相同的範例)
SELECT ST_AsText(CG_GreeneApproxConvexPartition('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((32 159,0 45,41 86,32 159)),POLYGON((45 1,177 2,67 24,45 1)),POLYGON((67 24,109 31,170 60,107 61,67 24)),POLYGON((41 86,45 1,67 24,41 86)),POLYGON((107 61,32 159,41 86,67 24,107 61)),POLYGON((148 120,107 61,170 60,148 120)),POLYGON((148 120,170 60,180 110,156 150,148 120)),POLYGON((156 150,83 181,89 131,148 120,156 150)))