three.js TubeGeometry

2023-02-16 17:34 更新

創(chuàng)建一個(gè)沿著三維曲線延伸的管道。

示例

代碼示例

class CustomSinCurve extends THREE.Curve {

	constructor( scale = 1 ) {

		super();

		this.scale = scale;

	}

	getPoint( t, optionalTarget = new THREE.Vector3() ) {

		const tx = t * 3 - 1.5;
		const ty = Math.sin( 2 * Math.PI * t );
		const tz = 0;

		return optionalTarget.set( tx, ty, tz ).multiplyScalar( this.scale );

	}

}

const path = new CustomSinCurve( 10 );
const geometry = new THREE.TubeGeometry( path, 20, 2, 8, false );
const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
const mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

構(gòu)造器

TubeGeometry(path : Curve, tubularSegments : Integer, radius : Float, radialSegments : Integer, closed : Boolean)

path — Curve - 一個(gè)由基類Curve繼承而來的3D路徑。 默認(rèn)是二次貝塞爾曲線。

tubularSegments — Integer - 組成這一管道的分段數(shù),默認(rèn)值為64。
radius — Float - 管道的半徑,默認(rèn)值為1。
radialSegments — Integer - 管道橫截面的分段數(shù)目,默認(rèn)值為8。
closed — Boolean 管道的兩端是否閉合,默認(rèn)值為false。

屬性

共有屬性請(qǐng)參見其基類BufferGeometry。

.parameters : Object

一個(gè)包含著構(gòu)造函數(shù)中每個(gè)參數(shù)的對(duì)象。在對(duì)象實(shí)例化之后,對(duì)該屬性的任何修改都不會(huì)改變這個(gè)幾何體。

.tangents : Array

一個(gè)Vector3切線數(shù)組。

.normals : Array

一個(gè)Vector3法線數(shù)組。

.binormals : Array

一個(gè)Vector3次法線數(shù)組。

方法(Methods)

共有方法請(qǐng)參見其基類BufferGeometry。

源代碼

src/geometries/TubeGeometry.js


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)