TubeBufferGeometry

De OSWiki
Aller à la navigation Aller à la recherche

Crée un tube qui est extrudé en suivant une courbe 3D.

Exemple

function CustomSinCurve( scale ) {
 THREE.Curve.call( this );
 //Si scale n'est pas défini scale =1 sinon c'est scale
 this.scale = ( scale === undefined ) ? 1 : scale;
}
 
//Crée un nouvel objet prototype avec un prototype donné et des propriétés données.
CustomSinCurve.prototype = Object.create( THREE.Curve.prototype );
//Définir le constructeur de l'objet
CustomSinCurve.prototype.constructor = CustomSinCurve;
//Fonction pour ajouter un point dans la courbe
CustomSinCurve.prototype.getPoint = function ( t ) {
  var tx = t * 3 - 1.5;
  var ty = Math.sin( 2 * Math.PI * t );
  var tz = 0;
  return new THREE.Vector3( tx, ty, tz ).multiplyScalar( this.scale );
};
	
//Créer un nouvel objet avec le constructeur
var path = new CustomSinCurve( 10 );
//Créer la géométrie correspondante à la courbe puis un matériau et enfin le mesh 
var geometry = new THREE.TubeBufferGeometry( path, 20, 2, 8, false );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

Constructeur

TubeBufferGeometry(path, tubularSegments, radius, radialSegments, closed)

path — Courbe - Un chemin qui hérite de la classe de base Curve.

tubularSegments — Integer - Le nombre entier de segments qui composent le tube, par défaut cette valeur est 64

radius — Float - Rayon du tube, par défaut le rayon est 1

radialSegments — Integer - Nombre entier de segments qui composent la section, par défaut cette valeur est 8

closed — Booléen - le tube est ouvert ou fermé, par défaut c'est false ⇒ ouvert.

Propriétés

.parameters Un objet avec tous les paramètres qui sont utilisés pour générer la géométrie (voir le constructeur pour les paramètres).

.tangents Tableau de vecteur tangents