码迷,mamicode.com
首页 > 其他好文 > 详细

四元数与空间旋转

时间:2016-05-15 07:08:12      阅读:302      评论:0      收藏:0      [点我收藏+]

标签:

 WIKI:单位四元数Unit quarternion可以用于表示三维空间里的旋转。它与常用的另外两种表示方式(三维正交矩阵和欧拉角)是等价的,但是避免了欧拉角表示法中的万向锁问题。比起三维正交矩阵表示,四元数表示能够更方便地给出旋转的转轴与旋转角。

关于欧拉角旋转的万向节死锁问题,是旋转的时候一不小心是两个不同的轴重合了,从而导致失去了一个轴的自由度。四元数不会出现这样的问题。

 

不太懂还是,大致意思是一个单位四元数可以使得三维空间中的一个点实现旋转。具体公式是

技术分享

其中p是三维空间的一个点转化成的一个纯四元数,至于旋转的角度与旋转轴都由四元数q来决定。

在左手坐标系中技术分享代表顺时针旋转,将q与倒数调换即为逆时针旋转。当q为单位四元数时,q的倒数和共轭相同,公式中的倒数可以使用共轭替换。由于共轭只需要改变符号就可以获得,所以这个旋转所需要的计算代价很小。

 

对于旋转轴与旋转角度:旋转轴由四元数q的虚部代表的向量来决定。

           旋转角度根据四元数q的实部
q=((x,y,z)sin?θ/2,cos?θ/2)

 

 

贴一个写的不错的博客文章链接:滴滴里面的证明没看懂。。

l  旋转变换

    旋转变换是所有变换矩阵中最复杂的,因为它使用了许多的三角函数。要利用旋转方程对点进行旋转,需要提取旋转方程的运算反,然后将它们放到矩阵中。在3D坐标系中,可以绕三个轴进行旋转:x轴、y轴、z轴,现在介绍绕z轴旋转的情况。重要的是,绕任何轴旋转是,该轴对应的分量保持不变。现给定,变换矩阵

    对于旋转变换矩阵的逆矩阵,有两种方法可以计算:一种方法基于几何学,另一种方法基于线性代数。首先采用几何学方法计算逆矩阵。将物体绕z轴旋转角度后,要将它恢复到原来的位置,只需要将它旋转角度即可。因此要计算旋转矩阵的逆矩阵,只需要将旋转矩阵中的替换为。因此,逆矩阵如下:

    下面采用线性代数的方法来计算逆矩阵。正交(Orthonormal)矩阵指的是,在给定的基(basis)的情况下,矩阵的每一行(列)都与前一行(列)垂直。所以旋转矩阵是正交矩阵,而对于正交矩阵,其转置矩阵与逆矩阵相同。故旋转变换矩阵的逆矩阵为:

四元数与空间旋转

标签:

原文地址:http://www.cnblogs.com/liyz/p/5494416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!