Namn

CG_StraightSkeletonPartition — Beräknar den raka skelettpartitionen av en polygon.

Synopsis

geometry CG_StraightSkeletonPartition(geometry geom, boolean auto_orientation);

Beskrivning

Beräknar den raka skelettpartitionen av den inmatade polygongeometrin geom. Det raka skelettet är en partitionering av polygonen i ytor som bildas genom att spåra kollapsen av dess kanter. Om auto_orientation är satt till true kommer funktionen automatiskt att justera indatapolygonens orientering för att säkerställa korrekta resultat.

Tillgänglighet: 3.6.0 - kräver SFCGAL >= 2.0.0.

Denna metod behöver SFCGAL-backend.

Exempel

Kod
SELECT CG_StraightSkeletonPartition('POLYGON((0 0,4 0,2 2,0 0))', true);
Utdata
POLYHEDRALSURFACE(((0 0,2 0.82842712474619,2 2,0 0)),((4 0,2 0.82842712474619,0 0,4 0)),((2 2,2 0.82842712474619,4 0,2 2)))
Figur
Geometry figure for visual-cg-straightskeletonpartition-01

Partition av en polygons raka skelett.

Kod
WITH data AS (
  SELECT 'POLYGON((190 190,10 190,10 10,190 10,190 20,160 30,60 30,60 130,190 140,190 190))'::geometry AS polygon
)
SELECT polygon AS input_polygon,
       CG_StraightSkeletonPartition(polygon, true) AS skeleton_partition
FROM data;
Utdata
POLYGON((190 190,10 190,10 10,190 10,190 20,160 30,60 30,60 130,190 140,190 190)) | POLYHEDRALSURFACE(((190 190,164.04 164.04,190 140,190 190)),((10 190,40.697 159.303,164.04 164.04,190 190,10 190)),((10 10,35 35,35 153.151,40.697 159.303,10 190,10 10)),((190 10,184.189 15.811,158.377 20,50 20,35 35,10 10,190 10)),((190 20,184.189 15.811,190 10,190 20)),((160 30,158.377 20,184.189 15.811,190 20,160 30)),((60 30,50 20,158.377 20,160 30,60 30)),((60 130,35 153.151,35 35,50 20,60 30,60 130)),((190 140,164.04 164.04,40.697 159.303,35 153.151,60 130,190 140)))
Figur
Geometry figure for visual-cg-straightskeletonpartition-02