Unity基础(十一)四元数类

Quaternion四元数类


Quaternion又称四元数,由x,y,z和w这四个分量组成,是由爱尔兰数学家威廉·卢云·哈密顿在1843年发现的数学概念。四元数的乘法不符合交换律。从明确地角度而言,四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。

Unity基础(十一)四元数类_第1张图片
1-1
四元数
关于四元数的性质、与旋转的关系、球型线性插值的介绍,在此不多做介绍。下面主要介绍的是Unity中的四元数-Quaternion。
在Unity中,用Quaternion来存储和表示对象的旋转角度。Quaternion的变换比较复杂,对于GameObject一般的旋转及移动,可以用Transform中的相关方法实现。

一、函数
//  解释 : 返回两次旋转a和b之间的角度(以度为单位)。
float Angle(Quaternion a, Quaternion b);
//  解释 :创建围绕轴旋转角度的旋转。
Quaternion AngleAxis(float angle, Vector3 axis);
float Dot(Quaternion a, Quaternion b);
//  解释 :返回绕z轴旋转z度、绕x轴旋转x度和绕y轴旋转y度的旋转。
Quaternion EulerRotation(Vector3 euler);
//  解释 :创建从fromDirection到toDirection的旋转。
Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection);
//  解释 :返回旋转的倒数。
Quaternion Inverse(Quaternion rotation);
//  解释 :用t在a和b之间插值,然后对结果进行规格化。参数t被钳制到范围[0,1]。
Quaternion Lerp(Quaternion a, Quaternion b, float t);
//  解释 :用t在a和b之间插值,然后对结果进行规格化。参数未夹紧。
Quaternion LookRotation(Vector3 forward,Vector3 upwards);
//  解释 :将此四元数转换为方向相同但大小相同的四元数
Quaternion Normalize(Quaternion q);
//  解释 :将旋转从旋转到。
Quaternion RotateTowards(Quaternion from, Quaternion to, float maxDegreesDelta);
//  解释 :通过t在a和b之间球形插值。参数t被限制在范围[0,1]内。
Quaternion Slerp(Quaternion a, Quaternion b, float t);
//  解释 :通过t在a和b之间进行球形插值。参数t不是钳制的。
Quaternion SlerpUnclamped(Quaternion a, Quaternion b, float t);

你可能感兴趣的:(Unity基础(十一)四元数类)