欧拉角
-
优点:三个角度组成,直观,容易理解。
-
优点:可以进行从一个方向到另一个方向旋转大于180度的角度。
-
优点:由三个数字实现旋转效率相比要高。
-
弱点:死锁问题。
四元数
内部由四个数字(在Unity中称为x,y,z和w)组成,然而这些数字不表示角度或轴,并且通常不需要直接访问它们。除非你特别有兴趣深入了解四元数学,你只需要知道四元数表示三维空间中的旋转,你通常不需要知道或修改x,y和z属性。
-
优点:四元旋转不存在万向节锁问题。
-
优点:存储空间小,计算效率高。
-
弱点:单个四元数不能表示在任何方向上超过180度的旋转。
-
弱点:四元数的数字表示不直观。
矩阵旋转
-
优点:与四元数一样,不存在万向节锁问题
-
优点:可以表示围绕任意轴的旋转,四元数的旋转轴均为通过物体中心点的轴,矩阵则不受限
-
缺点:矩阵旋转使用4x4矩阵,记录16个数值,而四元数只需要4个数值。计算复杂,效率低。
1.欧拉角
用欧拉角来描述刚体在三维欧几里得空间的取向。对于任何参考系,一个刚体的取向,是依照顺序,从这参考系,做三个欧拉角的旋转而设定的。所以,刚体的取向可以用三个基本旋转矩阵来决定。换句话说,任何关于刚体旋转的旋转矩阵是由三个基本旋转矩阵复合而成的。
异常现象:绕着X轴旋转90度后,再绕Y轴旋转此时Y轴没有用了,旋转的角度都归于了Z轴
这种现象叫做万向节死锁
四元数
四元数是复数的不可交换延伸。如把四元数的集合考虑成多维实数空间的话,四元数就代表着一个四维空间,相对于复数为二维空间。
i、j、k仍然理解为旋转,其中:
-
i旋转代表X轴与Y轴相交平面中X轴正向向Y轴正向的旋转
-
j旋转代表Z轴与X轴相交平面中Z轴正向向X轴正向的旋转
-
k旋转代表Y轴与Z轴相交平面中Y轴正向向Z轴正向的旋转
-
-i、-j、-k分别代表i、j、k旋转的反向旋转
一个普通四元数可以写成如下形式:q¯¯=a+bi+cj+dk
案例:让物体绕y轴旋转60度
此时Rotation Y的值为60
四元数和四元数相乘控制旋转
四元数与向量相乘
案例实现人物视角原理 视角 60度



