Name

ST_ChaikinSmoothing — 使用Chaikin算法返回几何的平滑版本

Synopsis

geometry ST_ChaikinSmoothing(geometry geom, integer nIterations = 1, boolean preserveEndPoints = false);

描述

使用Chaikin算法返回给定几何体的“平滑”版本。看见 查金斯算法 寻求对这一过程的解释。对于每一次迭代,顶点的数量将增加一倍。该函数将新顶点放置在每个点之前和之后直线的1/4处,并删除原始点。要减少点数,请在结果上使用其中一个简化函数。新点获得所有包含的维度的插值值,也包括z和m。

第二个参数,迭代次数限制为最多5次

注意第三个参数仅对面有效,对于线串将被忽略

此函数处理3D,第三维将影响结果。

[Note]

请注意,返回的几何体将比原始几何体获得更多的点。要再次减少点数,请对结果使用其中一个简化函数。(见 ST_SimplifyST_SimplifyVW )

可用性: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)) │
└───────────────────────────────────────────┘
                

另请参阅

ST_Simplify, ST_SimplifyVW