名前

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

概要

geometry CG_StraightSkeletonPartition(geometry geom, boolean auto_orientation);

説明

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

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

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

コード
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)))
Geometry figure for visual-cg-straightskeletonpartition-01

ポリゴンのストレートスケルトン分割。

コード
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)))
Geometry figure for visual-cg-straightskeletonpartition-02