GISarabia.org
PostGIS › الدليل الرسمي › 7. مرجع PostGIS › 7.14. معالجة الأشكال الهندسية
PostGIS 3.6 · Official Manual · ترجمة عربية

ST_ChaikinSmoothing

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

ST_ChaikinSmoothing — تُعيد نسخة منعّمة من شكل هندسي باستخدام خوارزمية Chaikin

المختصر

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

الوصف

تُنعّم شكلاً خطياً أو مضلّعياً باستخدام خوارزمية Chaikin. تتحكم المعامل nIterations في درجة التنعيم. في كل تكرار، يُستبدل كل رأس داخلي برأسين يقعان عند 1/4 طول القطعتين المستقيمتين قبل الرأس وبعده. وتوفّر 3 تكرارات درجة تنعيم معقولة؛ والحد الأقصى 5.

إذا كانت قيمة preserveEndPoints هي true، فلا تُنعَّم نقاط بداية حلقات المضلع ونهايتها. أما نقاط نهايات LineString فيُحافظ عليها دائماً.

[ملاحظة]

يتضاعف عدد الرؤوس مع كل تكرار، لذا قد يحتوي الشكل الناتج على نقاط أكثر بكثير من المُدخل. ولتقليل عدد النقاط استخدم دالة تبسيط على النتيجة (انظر ST_Simplify وST_SimplifyPreserveTopology وST_SimplifyVW).

تحتوي النتيجة على قيم مُستكمَلة للبعدين Z وM عند وجودهما.

تدعم هذه الدالة الأبعاد الثلاثية ولا تُسقط قيمة Z.

متاحة منذ: 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))

تنعيم مضلع باستخدام 1 و2 و3 تكرارات:

nIterations = 1

nIterations = 2

nIterations = 3

SELECT ST_ChaikinSmoothing(
            'POLYGON ((20 20, 60 90, 10 150, 100 190, 190 160, 130 120, 190 50, 140 70, 120 10, 90 60, 20 20))',
            generate_series(1, 3) );

تنعيم LineString باستخدام 1 و2 و3 تكرارات:

nIterations = 1

nIterations = 2

nIterations = 3

SELECT ST_ChaikinSmoothing(
            'LINESTRING (10 140, 80 130, 100 190, 190 150, 140 20, 120 120, 50 30, 30 100)',
            generate_series(1, 3) );