名称

CG_YMonotonePartition — 计算多边形几何的 y 单调分割

大纲

geometry CG_YMonotonePartition(geometry geom);

描述

计算多边形几何图形的 y-单调分割。

[注意]

多边形 P 的一个划分是指一组多边形,这些多边形的内部不相交,并且这些多边形的并集等于原始多边形 P 的内部。一个 y-单调多边形是指其顶点 v1,…,vn 可以划分成两个链 v1,…,vk 和 vk,…,vn,v1,使得任何水平线最多与其中一条链相交一次。该算法不能保证在产生的多边形数量上达到最优数量的界限。

可用性:3.5.0 - 需要 SFCGAL >= 1.5.0。

需要 SFCGAL 版本>= 1.5.0

该方法需要SFCGAL后端。

示例

The same polygon can also be partitioned into y-monotone pieces for downstream processing.

Code
WITH data AS (
  SELECT '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 AS input_polygon
)
SELECT input_polygon AS input_polygon,
       CG_YMonotonePartition(input_polygon) AS partition
FROM data;
栅格输出
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)) | GEOMETRYCOLLECTION(POLYGON((32 159,0 45,41 86,32 159)), POLYGON((107 61,32 159,41 86,45 1,177 2,67 24,109 31,170 60,107 61)), POLYGON((156 150,83 181,89 131,148 120,107 61,170 60,180 110,156 150)))
Figure
Geometry figure for visual-cg-ymonotonepartition-01