CG_3DBuffer — Calcule un tampon 3D autour d'une géométrie.
geometry CG_3DBuffer(
geometry geom, float8 radius, integer segments, integer buffer_type)
;
Génère un tampon 3D autour de la géométrie d'entrée geom
avec un radius
spécifié . Le tampon est construit dans l'espace 3D, créant une représentation volumétrique de l'environnement de la géométrie. Le paramètre segments
définit le nombre de segments utilisés pour approximer les sections courbes du tampon. Le paramètre buffer_type
spécifie le type de tampon à créer : 0 : tampon arrondi (par défaut) 1 : tampon plat 2 : tampon carré
Disponibilité : 3.6.0 - nécessite 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)), ... )
Les images suivantes ont été obtenues en collant le résultat de la requête ST_AsX3D dans X3D Viewer.
SELECT string_agg('<Shape >' || ST_AsX3D(cgbuffer3d_output) || '<Appearance> <Material diffuseColor="0 0.8 0.2" specularColor="0 1 0"/> </Appearance> </Shape >', '');
![]() segments=32 (tampon arrondi)
SELECT CG_3DBuffer(ST_GeomFromText('POINT(100 90)'), 50,32,0);
|
![]() 5 segments arrondis
SELECT CG_3DBuffer( ST_GeomFromText('POINT(100 90)'), 50,5,0);
|
![]() 32 segments, ronds
SELECT CG_3DBuffer( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,0);
|
![]() 32 segments, carrés
SELECT CG_3DBuffer( ST_GeomFromText( 'LINESTRING(50 50,150 150,150 50)' ), 10,32,2);
|