这段时间用到了四元数,以前没有接触过,所以理解起来感觉比较困难,故在这里做一下记录,以便以后使用。
一般说来四元数是用来表示旋转的,具体定义如下:四元数可以表示向量和物体的旋转,并且没有冗余信息,提供了一种比3*3旋转矩阵更为有效的表示旋转的方法。四元数一般用于计算机图形,三维游戏制作,在Qt中也有关于四元数的类(Qt中的类Quaternion),该类中实现了四元数的一些操作运算。
四元说的形式和复数形式类似,形式为q=(w,v)=(w,x,y,z),q=w+xi+yj+zk; x,y,z为三个虚轴的单位分量。
四元数与向量的乘法是这样进行的:把三维向量看做是实部为零的(w=0)的四元数进行乘法运算
具体的乘法规则可参考http://blog.youkuaiyun.com/kfqcome/article/details/6745301
另外自己刚开始看四元数时,总是不明白怎么用四元数去表示旋转矩阵,现在这么理解Rt=qtq*,q为对应与旋转矩阵R的四元数,q*为q的共轭四元数。
四元数与3*3旋转矩阵之间的转换关系可参考http://www.oschina.net/code/snippet_876234_20178
另外关于四元数还有求模(2-范数)运算,求逆运算等
特别注意的是,当四元数为为单位四元数(模为1)时,才能表示旋转,与旋转矩阵之间的关系可以对应为Rt=qtp,其中p为四元数q的逆,当q为单位四元数时,q的逆与q的共轭四元数相同。
722

被折叠的 条评论
为什么被折叠?



