方位
物体的方位主要描述物体的朝向。
在描述物体的位置的时候,是需要基于某个坐标的参考点来描述物体的位移。而方位也一样,是通过已知方位的旋转来描述,旋转量为角位移。
描述方位的分类:
矩阵
优点:
1.可以立即进行向量的旋转。(矩阵能在物体和惯性坐标系之间旋转向量)
2.矩阵的形式被图形api所使用。(如果采用其他形式,在渲染管道中某处将其转换为矩阵)
3.多个角位移连接。
4.矩阵的逆。(反向计算)
缺点:
1.占用更多的内存。(多占用2到3倍)
2.难于使用(不是人类思考方位的直观方法)
3.矩阵可能是病态的(矩阵使用9个数,3个数必需,6阶冗余)
欧拉角
欧拉角将角方位分解为三个互相垂直轴,用于描述其各自轴的旋转量,通常使用笛卡尔坐标系。欧拉角转换为其他欧拉角时,应该先转换到矩阵形式。
优点:
1.符合人类思维
2.节省内存
3.任意三个数都是合法的
缺点:
1.给定的表达方式不唯一
2.角度间插值困难。
四元数
复数:a+bi 并且ii=-1
可以描述二维的平面旋转。
引入三维中,则是三个虚部来解释:
ii=jj=kk=-1,
ij=k,ji=-k
jk=i,kj=-i
ki=j,ik=-j
而四元组[w,x,y,z]定义了复数w+xi+yj+zk.
负四元组-[w,x,y,z]=[-w,-x,-y,-z]实际角位移相同
四元数插值 slerp球面线性插值。
优点:
1.平滑插值
2.快速连接和角位移求逆
3.能和矩阵快速转换
4.仅用四个数
缺点:
1.四元数可能不合法
2.难于使用,最难直接使用(相比以上两种)
转换
1.从欧拉角转换到矩阵
2.从矩阵转换到欧拉角