Name

CG_ApproxConvexPartition — Calcul de la partition convexe approximative de la géométrie du polygone

Synopsis

geometry CG_ApproxConvexPartition(geometry geom);

Description

Calcule la partition convexe approximative de la géométrie du polygone (à l'aide d'une triangulation).

[Note]

Une partition d'un polygone P est un ensemble de polygones tels que les intérieurs des polygones ne se coupent pas et que l'union des polygones est égale à l'intérieur du polygone original P. Les fonctions CG_ApproxConvexPartition et CG_GreeneApproxConvexPartition produisent des partitions convexes approximativement optimales. Ces deux fonctions produisent des décompositions convexes en décomposant d'abord le polygone en polygones plus simples ; CG_ApproxConvexPartition utilise une triangulation et CG_GreeneApproxConvexPartition une partition monotone. Ces deux fonctions garantissent toutes deux qu'elles ne produiront pas plus de quatre fois le nombre optimal de pièces convexes, mais elles diffèrent par leur complexité d'exécution. Bien que l'algorithme d'approximation basé sur la triangulation produise souvent moins de pièces convexes, ce n'est pas toujours le cas.

Disponibilité : 3.5.0 - nécessite SFCGAL >= 1.5.0.

Requires SFCGAL >= 1.5.0

Cette méthode nécessite le backend SFCGAL.

Exemples

Partition convexe approximative (même exemple que CG_YMonotonePartition, CG_GreeneApproxConvexPartition et CG_OptimalConvexPartition)

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)))