转自https://www.zhihu.com/question/23005815
根据我的理解,大多数人用汉密尔顿四元数就只是做三维空间的旋转变换(我反正没见过其他用法)。那么你不用学群论,甚至不用复习线性代数,看我下面的几张图就可以了。
首先,定义一个你需要做的旋转。旋转轴为向量
,旋转角度为
(右手法则的旋转)。如下图所示:
此图中
,
首先,定义一个你需要做的旋转。旋转轴为向量
![v=(vx,vy,vz)](https://i-blog.csdnimg.cn/blog_migrate/fa8133ee3b39a68b56f2ebd23f327036.png)
![\theta](https://i-blog.csdnimg.cn/blog_migrate/38913e25408fcfcf20f3857911fe46e7.png)
此图中
![\theta =\frac{\pi }{3}](https://i-blog.csdnimg.cn/blog_migrate/38913e25408fcfcf20f3857911fe46e7.png%3D%5Cfrac%7B%5Cpi+%7D%7B3%7D+)
那么与此相对应的四元数(下三行式子都是一个意思,只是不同的表达形式)
这时它的共轭(下三行式子都是一个意思,只是不同的表达形式),
如果你想算一个点
在这个旋转下新的坐标
,需要进行如下操作,
1.定义纯四元数
2.进行四元数运算
3.产生的
一定是纯四元数,也就是说它的第一项为0,有如下形式:
4.
中的后三项
就是
:
这样,就完成了一次四元数旋转运算。
同理,如果你有一个四元数:
那么,它对应一个以向量
为轴旋转
角度的旋转操作(右手法则的旋转)。
这时它的共轭(下三行式子都是一个意思,只是不同的表达形式),
如果你想算一个点
1.定义纯四元数
2.进行四元数运算
3.产生的
4.
这样,就完成了一次四元数旋转运算。
同理,如果你有一个四元数:
那么,它对应一个以向量
作者:Yang Eninala
链接:https://www.zhihu.com/question/23005815/answer/33971127
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
-------------------------------------------------------------------------------------------------------