fromEuler
方法通过给定的欧拉角创建一个四元数。欧拉角包含了一个旋转矢量沿着三个轴线的旋转,这些轴线被称为欧拉角顺序。
目前,支持 XYZ
,YXZ
,ZXY
和 ZYX
这四种欧拉角顺序。
Quaternion.fromEuler(x, y, z, order);
x
<number>:表示绕着 x
轴旋转的角度,单位为弧度。y
<number>:表示绕着 y
轴旋转的角度,单位为弧度。z
<number>:表示绕着 z
轴旋转的角度,单位为弧度。order
<string>:表示欧拉角的顺序,取值为 XYZ
,YXZ
,ZXY
或 ZYX
。一个新的四元数对象。如果输入不合法,返回 null
。
const q = Quaternion.fromEuler(Math.PI/2, Math.PI/4, -Math.PI/6, 'YXZ');
console.log(q); // Quaternion {x: 0.586, y: 0.450, z: -0.450, w: 0.450}
如果给定的 order
参数不是 XYZ
,YXZ
,ZXY
或 ZYX
中的任意一个,将会返回 null
。
fromEuler
方法使用四元数的欧拉角顺序定义来计算一个四元数。order
参数和绕每个轴旋转的角度是程序员提供的输入。由于四元数具有“全局旋转”性质(在任何点的旋转结果不取决于旋转轴的选取点),因此两个四元数之间的插值是可能的。
在 XYZ
,YXZ
,ZXY
和 ZYX
中的每一个欧拉角顺序中,四元数都按照不同的顺序执行欧拉旋转。fromEuler
方法通过检查 order
参数来确定应该按照哪种顺序运行欧拉旋转。如果 order
参数未知,则函数将返回 null
。