three.js Euler

2023-02-16 17:46 更新

表示 Euler 的類。

歐拉角描述一個(gè)旋轉(zhuǎn)變換,通過指定軸順序和其各個(gè)軸向上的指定旋轉(zhuǎn)角度來旋轉(zhuǎn)一個(gè)物體。

對(duì) Euler 實(shí)例進(jìn)行遍歷將按相應(yīng)的順序生成它的分量 (x, y, z, order)。

代碼示例

const a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );
const b = new THREE.Vector3( 1, 0, 1 );
b.applyEuler(a);

構(gòu)造器(Constructor)

Euler( x : Float, y : Float, z : Float, order : String )

x - (optional) 用弧度表示x軸旋轉(zhuǎn)量。 默認(rèn)值是 0。
y - (optional) 用弧度表示y軸旋轉(zhuǎn)量。 默認(rèn)值是 0。
z - (optional) 用弧度表示z軸旋轉(zhuǎn)量。 默認(rèn)值是 0。
order - (optional) 表示旋轉(zhuǎn)順序的字符串,默認(rèn)為'XYZ'(必須是大寫)。

屬性(Properties)

.isEuler : Boolean

Read-only flag to check if a given object is of type Euler.

.order : String

order值應(yīng)用于旋轉(zhuǎn)順序。默認(rèn)值為 'XYZ',這意味著對(duì)象將首先是 繞X軸旋轉(zhuǎn),然后是Y軸,最后是Z軸。其他可能性包括: 'YZX', 'ZXY', 'XZY', 'YXZ'和'ZYX'。這些必須是大寫字母。

Three.js 使用intrinsic Tait-Bryan angles(Yaw、Pitch、Roll)。 這意味著旋轉(zhuǎn)是在本地坐標(biāo)系下進(jìn)行的。也就是說,對(duì)于“XYZ”順序,首先是圍繞local-X軸旋轉(zhuǎn)(與world- x軸相同), 然后是local-Y(現(xiàn)在可能與world y軸不同),然后是local-Z(可能與world z軸不同)。

.x : Float

當(dāng)前x分量的值。

.y : Float

當(dāng)前y分量的值。

.z : Float

當(dāng)前z分量的值。

方法(Methods)

.copy ( euler : Euler ) : this

將 euler 的屬性拷貝到當(dāng)前對(duì)象。

.clone () : Euler

返回一個(gè)與當(dāng)前參數(shù)相同的新歐拉角。

.equals ( euler : Euler ) : Boolean

檢查 euler 是否與當(dāng)前對(duì)象相同。

.fromArray ( array : Array ) : this

長(zhǎng)度為3或4的一個(gè) array 。array[3] 是一個(gè)可選的 order 參數(shù)。

將歐拉角的x分量設(shè)置為 array[0]。
將歐拉角的y分量設(shè)置為 array[1]。
將歐拉角的z分量設(shè)置為 array[2]。
將array[3]設(shè)置給歐拉角的 order 。可選。

.reorder ( newOrder : String ) : this

通過這個(gè)歐拉角創(chuàng)建一個(gè)四元數(shù),然后用這個(gè)四元數(shù)和新順序設(shè)置這個(gè)歐拉角。

警告: 這將棄用旋轉(zhuǎn)信息。

.set ( x : Float, y : Float, z : Float, order : String ) : this

x - 用弧度表示x軸旋轉(zhuǎn)量。
y - 用弧度表示y軸旋轉(zhuǎn)量。
z - 用弧度表示z軸旋轉(zhuǎn)量。
order - (optional) 表示旋轉(zhuǎn)順序的字符串。

設(shè)置該歐拉變換的角度和旋轉(zhuǎn)順序 order。

.setFromRotationMatrix ( m : Matrix4, order : String) : this

m - Matrix4 矩陣上面的3x3部分是一個(gè)純旋轉(zhuǎn)矩陣rotation matrix (也就是不發(fā)生縮放)
order - (可選參數(shù)) 表示旋轉(zhuǎn)順序的字符串。
使用基于 order 順序的純旋轉(zhuǎn)矩陣來設(shè)置當(dāng)前歐拉角。

.setFromQuaternion ( q : Quaternion, order : String ) : this

q - 歸一化的四元數(shù)。
order - (可選參數(shù)) 表示旋轉(zhuǎn)順序的字符串。
根據(jù) order 指定的方向,使用歸一化四元數(shù)設(shè)置這個(gè)歐拉變換的角度。

.setFromVector3 ( vector : Vector3, order : String ) : this

vector - Vector3.
order - (可選參數(shù)) 表示旋轉(zhuǎn)順序的字符串。

設(shè)置 x, y and z 并且選擇性更新 order。

.toArray ( array : Array, offset : Integer ) : Array

array - (可選參數(shù)) 存儲(chǔ)歐拉角的數(shù)組。
offset (可選參數(shù)) 數(shù)組的偏移量。
返回一個(gè)數(shù)組:[x, y, z, order ]。

源碼(Source)

src/math/Euler.js


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)