CG_3DBuffer — Computes a 3D buffer around a geometry.
geometry CG_3DBuffer(
geometry geom, float8 radius, integer segments, integer buffer_type)
;
Generates a 3D buffer around the input geometry geom
with a specified radius
. The buffer is constructed in 3D space, creating a volumetric representation of the geometry's surroundings. The segments
parameter defines the number of segments used to approximate the curved sections of the buffer. The buffer_type
specifies the type of buffer to create: 0: Rounded buffer (default) 1: Flat buffer 2: Square buffer
Availability: 3.6.0 - requires SFCGAL >= 2.0.0
Cette méthode nécessite le backend SFCGAL.
Cette fonction prend en charge la 3D et ne supprime pas l'indice z.
Cette fonction prend en charge les surfaces Polyhedral.
Cette fonction prend en charge les triangles et les réseaux irréguliers triangulés (TIN).
SELECT ST_AsText(CG_3DBuffer('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)), ... )
The following images were rendered pasting the output of the ST_AsX3D query into 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_3DBuffer(ST_GeomFromText('POINT(100 90)'), 50,32,0);
|
SELECT CG_3DBuffer( ST_GeomFromText('POINT(100 90)'), 50,5,0);
|
SELECT CG_3DBuffer( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,0);
|
SELECT CG_3DBuffer( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,2);
|