名前

CG_StraightSkeletonPartition — ポリゴンのストレートスケルトン分割を計算します。

概要

geometry CG_StraightSkeletonPartition(geometry geom, boolean auto_orientation);

説明

ポリゴンジオメトリgeomのストレートスケルトン分割を計算します。ストレートスケルトンはポリゴンをエッジの間引きで形成されるフェースに分割します。auto_orientationをTRUEに指定した場合には、この関数は正しい結果が得られるように入力ポリゴンの向きを自動的に調整します。

Availability: 3.6.0 - SFCGAL >= 2.0.0が必要です。

このメソッドにはSFCGALバックエンドが必要です。

Code
SELECT CG_StraightSkeletonPartition('POLYGON((0 0,4 0,2 2,0 0))', true);
出力:
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)))
Figure
Geometry figure for visual-cg-straightskeletonpartition-01

Straight skeleton partition of a polygon.

Code
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;
出力:
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)))
Figure
Geometry figure for visual-cg-straightskeletonpartition-02