欧拉角(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