ST_ChaikinSmoothing — 使用Chaikin算法返回几何的平滑版本
geometry ST_ChaikinSmoothing(
geometry geom, integer nIterations = 1, boolean preserveEndPoints = false)
;
使用Chaikin算法返回给定几何体的“平滑”版本。看见 查金斯算法 寻求对这一过程的解释。对于每一次迭代,顶点的数量将增加一倍。该函数将新顶点放置在每个点之前和之后直线的1/4处,并删除原始点。要减少点数,请在结果上使用其中一个简化函数。新点获得所有包含的维度的插值值,也包括z和m。
第二个参数,迭代次数限制为最多5次
注意第三个参数仅对面有效,对于线串将被忽略
此函数处理3D,第三维将影响结果。
![]() | |
请注意,返回的几何体将比原始几何体获得更多的点。要再次减少点数,请对结果使用其中一个简化函数。(见 ST_Simplify 和 ST_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)) │ └───────────────────────────────────────────┘