CG_Buffer3D — ジオメトリの周りの3次元バッファを計算します。
geometry CG_Buffer3D(
geometry geom, float8 radius, integer segments, integer buffer_type)
;
入力ジオメトリgeom
の周りに指定したradius
で3次元バッファを生成します。バッファは3次元空間内に生成され、ジオメトリの周囲の立体表現を生成します。segments
パラメータは、バッファの曲線部の近似分割数を指定するものです。buffer_type
は、バッファ生成タイプを指定します。0: 球形バッファ (デフォルト) 1: 平面バッファ 2: 四角形バッファ (訳注: ST_Bufferの端点処理を参照して下さい)
Availability: 3.6.0 - SFCGAL >= 2.0.0が必要です
このメソッドにはSFCGALバックエンドが必要です。
この関数は3次元に対応し、Z値を削除しません。
この関数は多面体サーフェスに対応しています。
この関数は三角形と不規則三角網 (TIN)に対応しています。
SELECT ST_AsText(CG_Buffer3D('POINT(0 0 0)', 1, 8, 0)); -- Result: POLYHEDRALSURFACE Z (((0 0 1, 0.5 -0.5 0.71, 0 -0.71 0.71, 0 0 1)), ... )
次の画像はST_AsX3Dクエリの出力をX3D Viewerに貼り付けて描画したものです。
SELECT string_agg('<Shape >' || ST_AsX3D(cgbuffer3d_output) || '<Appearance> <Material diffuseColor="0 0.8 0.2" specularColor="0 1 0"/> </Appearance> </Shape >', '');
SELECT CG_Buffer3D(ST_GeomFromText('POINT(100 90)'), 50,32,0);
|
SELECT CG_Buffer3D( ST_GeomFromText('POINT(100 90)'), 50,5,0);
|
SELECT CG_Buffer3D( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,0);
|
SELECT CG_Buffer3D( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,2);
|