three.js CatmullRomCurve3

2023-02-16 17:33 更新

使用Catmull-Rom算法, 從一系列的點創(chuàng)建一條平滑的三維樣條曲線。

代碼示例

//Create a closed wavey loop
const curve = new THREE.CatmullRomCurve3( [
	new THREE.Vector3( -10, 0, 10 ),
	new THREE.Vector3( -5, 5, 5 ),
	new THREE.Vector3( 0, 0, 0 ),
	new THREE.Vector3( 5, -5, 5 ),
	new THREE.Vector3( 10, 0, 10 )
] );

const points = curve.getPoints( 50 );
const geometry = new THREE.BufferGeometry().setFromPoints( points );

const material = new THREE.LineBasicMaterial( { color: 0xff0000 } );

// Create the final object to add to the scene
const curveObject = new THREE.Line( geometry, material );

例子

WebGL / geometry / extrude / splines

構(gòu)造函數(shù)

CatmullRomCurve3( points : Array, closed : Boolean, curveType : String, tension : Float )

points – Vector3點數(shù)組
closed – 該曲線是否閉合,默認值為false。
curveType – 曲線的類型,默認值為centripetal
tension – 曲線的張力,默認為0.5。

屬性

共有屬性請參見其基類Curve。

.points : Array

定義了這一曲線的Vector3點數(shù)組,數(shù)組中至少需要兩個點。

.closed : Boolean

當該值為true時,曲線將會閉合(環(huán)回自身)。

.curveType : String

可能的值為centripetal、chordal和catmullrom。

.tension : Float

當.curveType為catmullrom時,定義catmullrom的張力。

方法

共有方法請參見其基類Curve。

源代碼

src/extras/curves/CatmullRomCurve3.js


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號