四元数描述旋转简单形象理解(图像加视频)

四元数的表示

我们都知道四元数用来描述旋转比较简单,那他怎么描述旋转呢?首先先简单的知道一下四元数的表示方法吧。

四元数的表示可以写为
q = ω + x i + y j + z k = ( ω , x , y , z ) = ( ω , v ) , v = ( x , y , z ) \vec{q} = ω+xi+yj+zk=(ω,x,y,z)=(ω,v) ,其中\vec{v}=(x,y,z)
简单地说就是一个实数和三个虚数的表示方法,先这样记住吧。

好了,可以看视频了,看完视频再看下面的说明。 视频传送门

描述旋转

先简单来一个复数描述旋转的引子。

复数描述旋转

复数的表示如下
z = a + b i z=a+bi

Complex3

当我们使用 i i 去乘以一个复数时,当我们把得到的结果绘制在复平面上时,发现得到的位置正好是绕原点旋转90度的效果。

complex4

于是可以猜测,复数的乘法和旋转之间应该有某些关系。 我们可以通过定义一个复数
q = c o s θ + i s i n θ q=cos\theta+isin\theta
使用它作为一个旋转的因子,当与复数相乘时,得到:
p = a + b i q = c o s θ + i s i n θ p q = ( a + b i ) ( c o s θ + i s i n θ ) a + b i = a c o s θ b s i n θ + ( a s i n θ + b c o s θ ) i p=a+bi \\ q=cos\theta+isin\theta \\ pq=(a+bi)(cos\theta+isin\theta)\\ a'+b'i=acos\theta-bsin\theta+(asin\theta+bcos\theta)i
这个公式正好是二维的旋转公式,当把新的到的 ( a + b i ) (a'+b'i) 绘制在复平面上时,得到的正好是原来的点 ( a + b i ) (a+bi) 旋转 θ \theta 角之后的位置。

附一张视频中的例子帮助理解。
在这里插入图片描述

四元数表示旋转

定义一个向量 ( v ) = ( x , y , z ) \vec(v)=(x,y,z) ,这个向量为你想要旋转轴,旋转角度为 θ \theta (右手法则的旋转),这个 θ \theta 和上面的 ω \omega 不一样, θ \theta 只是一个角度, ω \omega 是一个实数,具体推倒关系见下面。此图中,
v = ( 1 14 2 14 3 14 ) , θ = π 3 v=(\frac{1}{\sqrt{14}},\frac{2}{\sqrt{14}},\frac{3}{\sqrt{14}}) , \theta=\frac{\pi}{3}

img

那么由这个旋转轴和角度定义的四元数可以写成下面的形式
q=(cos(\frac{\theta }{2} ),sin(\frac{\theta }{2} )*vx,sin(\frac{\theta }{2} )*vy,sin(\frac{\theta }{2} )*vz)
其中第一项就是 θ \theta ω \omega 的关系。

进一步解释

图中黄线为旋转轴,三个系数平方之和为1,使用想要旋转的角构建一个四元数(该图中角度为40°)。用该角的余弦作为实部,加上该角的正弦乘以一个虚部构成一个四元数,只不过这次的虚部有三个部分,分别对应旋转角的坐标,事实上用的是半角(原因参见下面文档)
在这里插入图片描述
对向量 p p v v 轴旋转 θ \theta 角,就可以表示成
p = q p q 1 p'=qpq^{-1}
在这里插入图片描述

展开后为:
在这里插入图片描述

就先这么简单理解吧。

详细讲解参见文档传送门

发布了20 篇原创文章 · 获赞 49 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/O_MMMM_O/article/details/90271848