Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_EXTRUDE

📄字数 467
👁️阅读量 加载中...

功能描述

把一个Surface类型对象拉伸一定体积。

语法格式

sql
GEOMETRY ST_EXTRUDE(GEOMETRY geom, DOUBLE x, DOUBLE y, DOUBLE z);

参数说明

  • geom:目标GEOMETRY对象。
  • x:目标X值。
  • y:目标Y值。
  • z:目标Z值。

函数返回类型

GEOMETRY类型

使用说明

  • 该函数需要SFCGAL库支持。
  • 该函数支持3D对象,并且不会删除Z坐标。

示例

提示

3D图像使用ST_AsX3D生成,可以使用X3Dom HTML Javascript渲染库以HTML形式渲染。

六边形沿Z方向挤压30个单位产生多面体表面Z:

sql
SQL> SELECT TO_CHAR(ST_AsX3D(ST_Extrude(ST_Buffer(ST_GeomFromText('POINT(100 90)'),50, 'quad_segs=2'),0,0,30)));

+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               EXPR1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <IndexedFaceSet convex='false'  coordIndex='0 1 2 3 4 5 6 7 -1 8 9 10 11 12 13 14 15 -1 16 17 18 19 -1 20 21 22 23 -1 24 25 26 27 -1 28 29 30 31 -1 32 33 34 35 -1 36 37 38 39 -1 40 41 42 43 -1 44 45 46 47'><Coordinate point='150 90 0 135.35533905932738 54.64466094067263 0 100 40 0 64.64466094067262 54.64466094067262 0 50 90 0 64.64466094067262 125.35533905932738 0 99.99999999999999 140 0 135.35533905932738 125.35533905932738 0 150 90 30 135.35533905932738 125.35533905932738 30 99.99999999999999 140 30 64.64466094067262 125.35533905932738 30 50 90 30 64.64466094067262 54.64466094067262 30 100 40 30 135.35533905932738 54.64466094067263 30 150 90 0 150 90 30 135.35533905932738 54.64466094067263 30 135.35533905932738 54.64466094067263 0 135.35533905932738 54.64466094067263 0 135.35533905932738 54.64466094067263 30 100 40 30 100 40 0 100 40 0 100 40 30 64.64466094067262 54.64466094067262 30 64.64466094067262 54.64466094067262 0 64.64466094067262 54.64466094067262 0 64.64466094067262 54.64466094067262 30 50 90 30 50 90 0 50 90 0 50 90 30 64.64466094067262 125.35533905932738 30 64.64466094067262 125.35533905932738 0 64.64466094067262 125.35533905932738 0 64.64466094067262 125.35533905932738 30 99.99999999999999 140 30 99.99999999999999 140 0 99.99999999999999 140 0 99.99999999999999 140 30 135.35533905932738 125.35533905932738 30 135.35533905932738 125.35533905932738 0 135.35533905932738 125.35533905932738 0 135.35533905932738 125.35533905932738 30 150 90 30 150 90 0' /></IndexedFaceSet> |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

沿Z方向拉伸的LineString生成PolyhedralSurfaceZ:

sql
SQL> SELECT TO_CHAR(ST_AsX3D(ST_Extrude(ST_GeomFromText('LINESTRING(50 50, 100 90, 95 150)'),0,0,10)));

+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                                                                                       EXPR1                                                                                       |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| <IndexedFaceSet convex='false'  coordIndex='0 1 2 3 -1 4 5 6 7'><Coordinate point='50 50 0 100 90 0 100 90 10 50 50 10 100 90 0 95 150 0 95 150 10 100 90 10' /></IndexedFaceSet> |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+