CG_ApproxConvexPartition — Calcul de la partition convexe approximative de la géométrie du polygone
geometry CG_ApproxConvexPartition(
geometry geom)
;
Calcule la partition convexe approximative de la géométrie du polygone (à l'aide d'une triangulation).
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.
Nécessite SFCGAL >= 1.5.0
Cette méthode nécessite le backend 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)))