ST_ChaikinSmoothing — チャイキンのアルゴリズムを使って、与えられたジオメトリの平滑化されたものを返します。
geometry ST_ChaikinSmoothing(
geometry geom, integer nIterations = 1, boolean preserveEndPoints = false)
;
チャイキンのアルゴリズムを使って、与えられたジオメトリの「平滑化された」ものを返します。処理の説明についてはChaikins-Algorithmをご覧下さい。繰り返しごとに頂点の数は倍になります。この関数は新しい頂点を、各ポイントの前後に、ラインの1/4の位置に置き、元のポイントを削除します。ポイント数を減らすには、結果に対して簡略化関数を使います。新しいポイントの、ZとMを含むジオメトリの全ての次元に補間値が付きます。
第2引数は繰り返し回数で最大5回です。
第3引数はポリゴンにのみ有効です。ラインストリングでは無視されます。
この関数は3次元を扱います。第3次元は結果に影響を与えます。
![]() | |
返却ジオメトリが元のジオメトリより多くのポイントを得ることに注意して下さい。再びポイント数を低減するには、単純化関数を使います (ST_SimplifyとST_SimplifyVW参照)。 |
Availability: 2.5.0
トライアングルの平滑化
select ST_AsText(ST_ChaikinSmoothing(geom)) smoothed FROM (SELECT 'POLYGON((0 0, 8 8, 0 16, 0 0))'::geometry geom) As foo; ┌───────────────────────────────────────────┐ │ smoothed │ ├───────────────────────────────────────────┤ │ POLYGON((2 2,6 6,6 10,2 14,0 12,0 4,2 2)) │ └───────────────────────────────────────────┘