Euler - Verge3D 用户手册 - Soft8Soft
Description: 了解如何在使用 Verge3D 制作的交互式 3D 应用程序中使用 Euler

# 欧拉角（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, y 和 z。

## 源码（Source）

src/math/Euler.js