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> |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+