欧拉角(Euler)

表示 Euler 的类。

欧拉角描述一个旋转变换,通过指定轴顺序和其各个轴向上的指定旋转角度来旋转一个物体。

代码示例

const a = new v3d.Euler(0, 1, 1.57, 'XYZ'); const b = new v3d.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)

.order : String

order值应用于旋转顺序。默认值为 'XYZ',这意味着对象将首先是 绕X轴旋转,然后是Y轴,最后是Z轴。其他可能性包括: 'YZX', 'ZXY', 'XZY', 'YXZ'和'ZYX'。这些必须是大写字母。

Verge3D 使用intrinsic Tait-Bryan angles(Yaw、Pitch、Roll)。 这意味着旋转是在本地坐标系下进行的。也就是说,对于“XYZ”顺序,首先是围绕local-X轴旋转(与world- x轴相同), 然后是local-Y(现在可能与world y轴不同),然后是local-Z(可能与world z轴不同)。

.x : Float

当前x分量的值。

.y : Float

当前y分量的值。

.z : Float

当前z分量的值。

方法(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]。
将欧拉角的y分量设置为 array[1]。
将欧拉角的z分量设置为 array[2]。
将array[3]设置给欧拉角的 order 。可选。

.reorder (newOrder : String) : Euler

通过这个欧拉角创建一个四元数,然后用这个四元数和新顺序设置这个欧拉角。

警告: 这将弃用旋转信息。

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

x - 用弧度表示x轴旋转量。
y - 用弧度表示y轴旋转量。
z - 用弧度表示z轴旋转量。
order - (optional) 表示旋转顺序的字符串。

设置该欧拉变换的角度和旋转顺序 order

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

m - Matrix4 矩阵上面的3x3部分是一个纯旋转矩阵rotation matrix (也就是不发生缩放)
order - (可选参数) 表示旋转顺序的字符串。
使用基于 order 顺序的纯旋转矩阵来设置当前欧拉角。

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

q - 归一化的四元数。
order - (可选参数) 表示旋转顺序的字符串。
根据 order 指定的方向,使用归一化四元数设置这个欧拉变换的角度。

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

vector - Vector3.
order - (可选参数) 表示旋转顺序的字符串。

设置 x, y and z 并且选择性更新 order

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

array - (可选参数) 存储欧拉角的数组。
offset (可选参数) 数组的偏移量。
返回一个数组:[x, y, z, order]。

.toVector3 (optionalResult : Vector3) : Vector3

optionalResult — (可选参数) 如果指定了该参数结果将会被复制给该参数,否者会创建一个新的 Vector3

Vector3 的形式返回欧拉角的 x, yz

源码(Source)

src/math/Euler.js