GISarabia.org
PostGIS › الدليل الرسمي › 8. مرجع دوال SFCGAL › 8.3. دوال المعالجة والعلاقات في SFCGAL
PostGIS 3.6 · Official Manual · ترجمة عربية

CG_Tesselate

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

الاسم

CG_Tesselate — تُجري تبليطًا (Tessellation) سطحيًا لمضلع أو سطح متعدد الأوجه وتُعيده على هيئة TIN أو مجموعة من TIN

المختصر

geometry CG_Tesselate(geometry geom);

الوصف

تأخذ مُدخَلًا سطحيًا مثل MULTI(POLYGON) أو POLYHEDRALSURFACE وتُعيد تمثيلًا من نوع TIN عبر عملية التبليط باستخدام المثلثات.

[ملاحظة]

ST_TriangulatePolygon تؤدي عملًا مشابهًا لهذه الدالة إلا أنها تُعيد مجموعة أشكال من المضلعات بدلًا من TIN، كما أنها تعمل مع الأشكال الثنائية الأبعاد فقط.

متاحة منذ: 3.5.0

تتطلب هذه الدالة الواجهة الخلفية SFCGAL.

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

تدعم هذه الدالة الأسطح متعددة الوجوه (Polyhedral surfaces).

تدعم هذه الدالة المثلثات وأسطح الشبكات المثلثية غير المنتظمة (TIN).

أمثلة

SELECT ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
                                    ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
                                    ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
                                    ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )');

المكعب الأصلي

SELECT CG_Tesselate(ST_GeomFromText('POLYHEDRALSURFACE Z( ((0 0 0, 0 0 1, 0 1 1, 0 1 0, 0 0 0)),
                                ((0 0 0, 0 1 0, 1 1 0, 1 0 0, 0 0 0)), ((0 0 0, 1 0 0, 1 0 1, 0 0 1, 0 0 0)),
                                ((1 1 0, 1 1 1, 1 0 1, 1 0 0, 1 1 0)),
                                ((0 1 0, 0 1 1, 1 1 1, 1 1 0, 0 1 0)), ((0 0 1, 1 0 1, 1 1 1, 0 1 1, 0 0 1)) )'));

مُخرَج ST_AsText:

TIN Z (((0 0 0,0 0 1,0 1 1,0 0 0)),((0 1 0,0 0 0,0 1 1,0 1 0)),
                        ((0 0 0,0 1 0,1 1 0,0 0 0)),
                        ((1 0 0,0 0 0,1 1 0,1 0 0)),((0 0 1,1 0 0,1 0 1,0 0 1)),
                        ((0 0 1,0 0 0,1 0 0,0 0 1)),
                        ((1 1 0,1 1 1,1 0 1,1 1 0)),((1 0 0,1 1 0,1 0 1,1 0 0)),
                        ((0 1 0,0 1 1,1 1 1,0 1 0)),((1 1 0,0 1 0,1 1 1,1 1 0)),
                        ((0 1 1,1 0 1,1 1 1,0 1 1)),((0 1 1,0 0 1,1 0 1,0 1 1)))

مكعب مُبلَّط بمثلثات ملوّنة

SELECT 'POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry;

المضلع الأصلي

SELECT
                        CG_Tesselate('POLYGON (( 10 190, 10 70, 80 70, 80 130, 50 160, 120 160, 120 190, 10 190 ))'::geometry);

ناتج ST_AsText

TIN(((80 130,50 160,80 70,80 130)),((50 160,10 190,10 70,50 160)),
                ((80 70,50 160,10 70,80 70)),((120 160,120 190,50 160,120 160)),
                ((120 190,10 190,50 160,120 190)))

مضلع مُبلَّط