欧拉角(Euler)
表示 Euler 的类。
欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。
示例(Example)
var a = new THREE.Euler( 0, 1, 1.57, 'XYZ' );
var b = new THREE.Vector3( 1, 0, 1 );
b.applyEuler(a);
构造器(Constructor)
Euler( x : Float, y : Float, z : Float, order : String )
x - (optional) 用弧度表示x轴旋转量。 默认值是 0。
y - (optional) 用弧度表示y轴旋转量。 默认值是 0。
z - (optional) 用弧度表示z轴旋转量。 默认值是 0。
order - (optional) 表示旋转顺序的字符串,默认为'XYZ'(必须是大写)。
属性(Properties)
# .isEuler : Boolean
用于判定此对象或者此类的派生对象是否是欧拉角。默认值为 true。
不应该改变该值,因为它在内部用于优化。
# .order : String
order值应用于旋转顺序。默认值为 'XYZ',这意味着对象将首先是 绕X轴旋转,然后是Y轴,最后是Z轴。其他可能性包括: 'YZX', 'ZXY', 'XZY', 'YXZ'和'ZYX'。这些必须是大写字母。
Three.js 使用intrinsic Tait-Bryan angles(Yaw、Pitch、Roll)。 这意味着旋转是在本地坐标系下进行的。也就是说,对于“XYZ”顺序,首先是围绕local-X轴旋转(与world- x轴相同), 然后是local-Y(现在可能与world y轴不同),然后是local-Z(可能与world z轴不同)。
如果order值被改变,onChangeCallback 会被调用。
# .x : Float
当前x分量的值。
如果这个值发生变化,onChangeCallback 会被调用。
# .y : Float
当前y分量的值。
如果这个值发生变化,onChangeCallback 会被调用。
# .z : Float
当前z分量的值。
如果这个值发生变化,onChangeCallback 会被调用。
方法(Methods)
# .copy ( euler : Euler ) : Euler
将 euler 的属性拷贝到当前对象。
# .clone () : Euler
返回一个与当前参数相同的新欧拉角。
# .equals ( euler : Euler ) : Boolean
检查 euler 是否与当前对象相同。
# .fromArray ( array : Array ) : Euler
长度为3或4的一个 array 。array[3] 是一个可选的 order 参数。
将欧拉角的x分量设置为 array[0]。
将欧拉角的x分量设置为 array[1]。
将欧拉角的x分量设置为 array[2]。
将array[3]设置给欧拉角的 order 。可选。
# .onChange ( onChangeCallback : Function ) : Euler
onChangeCallback - 为 onChangeCallback() 函数赋值。
# .onChangeCallback ( ) : Euler
默认情况下,这个函数为空,但是它可以通过onChange()来设置。
在更改 x, y, z 或 order 属性之后调用它, 在调用大多数setter函数之后也会调用它(详细信息请参阅那些函数)。
# .reorder ( newOrder : String ) : Euler
通过这个欧拉角创建一个四元数,然后用这个四元数和新顺序设置这个欧拉角。
警告: 这将弃用旋转信息。
# .set ( x : Float, y : Float, z : Float, order : String ) : Euler
x - 用弧度表示x轴旋转量。
y - 用弧度表示y轴旋转量。
z - 用弧度表示z轴旋转量。
order - (optional) 表示旋转顺序的字符串。
设置该欧拉变换的角度和旋转顺序 order ,然后调用 onChangeCallback()。
# .setFromRotationMatrix ( m : Matrix4, order : String, update : Boolean ) : Euler
m - Matrix4 矩阵上面的3x3部分是一个纯旋转矩阵rotation matrix (也就是不发生缩放)
order - (可选参数) 表示旋转顺序的字符串。
update - (可选参数) 表示设置完变换矩阵后是否调用 onChangeCallback。
使用基于 order 顺序的纯旋转矩阵来设置当前欧拉角。
# .setFromQuaternion ( q : Quaternion, order : String, update : Boolean ) : Euler
q - 归一化的四元数。
order - (可选参数) 表示旋转顺序的字符串。
update - (可选参数) 表示设置完变换矩阵后是否调用 onChangeCallback。
根据 order 指定的方向,使用归一化四元数设置这个欧拉变换的角度。
# .setFromVector3 ( vector : Vector3, order : String ) : Euler
vector - Vector3.
order - (可选参数) 表示旋转顺序的字符串。
设置 x, y and z 并且选择性更新 order。 更改完成之后调用 onChangeCallback()。
# .toArray ( array : Array, offset : Integer ) : Array
array - (可选参数) 存储欧拉角的数组。
offset (可选参数) 数组的偏移量。
返回一个数组:[x, y, z, order ]。
# .toVector3 ( optionalResult : Vector3 ) : Vector3
optionalResult — (可选参数) 如果指定了该参数结果将会被复制给该参数,否者会创建一个新的 Vector3
以 Vector3 的形式返回欧拉角的 x, y 和 z。