上一篇的四元素只是简单带过,简单的坐标转换计算,但是实际四元素的用法没有那么简单,这里对四元素进行了一些补充,尽我可能的找到一些四元素相关的知识点,系统的学习了四元素,这里做一个记录。
四元素定义
复数大家都了解,可以理解为一个二维空间,如果有两个复数,
A
=
a
+
b
i
B
=
c
+
d
i
(1)
A = a+b\bold{i} \\ B = c+d\bold{i} \tag{1}
A=a+biB=c+di(1)
那么,有
C
=
A
+
B
j
=
a
+
b
i
+
c
j
+
d
k
(2)
C=A+B\bold{j} = a+b\bold{i}+c\bold{j}+d\bold{k} \tag{2}
C=A+Bj=a+bi+cj+dk(2)
式中,
i
,
j
,
k
\bold{i},\bold{j},\bold{k}
i,j,k为复数的三个轴,
a
a
a为实数部分,
b
,
c
,
d
b,c,d
b,c,d为复数部分三个轴上的三个系数。
这里说一下我的理解,复数的形式为 A = a + b i A=a+b\bold{i} A=a+bi,可以理解为复数表示的是一个二维空间,实数部分为一个坐标轴,虚数部分为一个坐标轴,两个坐标轴之间相互垂直,复数也可以理解为一个二维空间。
学过CAD的都知道三视图,三维物体可以根据不同的角度投影到二维空间,那么上述的变量 C C C代表的就是一个实数轴和三个虚数轴,表示的是一个四维空间,类似于三维的投影,四维空间当然也可以投影到任意的三维空间。
四元素的表达方式
四元素的一般可以表示为
Q
=
q
w
+
q
x
i
+
q
y
j
+
q
z
k
(3)
Q=q_{w}+q_{x}\bold{i}+q_{y}\bold{j}+q_{z}\bold{k} \tag{3}
Q=qw+qxi+qyj+qzk(3)
四元素的加法只需要将对应的系数相加即可,但是四元素的乘法和普通的乘法不一样,四元素的乘法是不可交换的,如下图所示,
由图中可知,
i
j
=
k
,
j
i
=
−
k
j
k
=
i
,
k
j
=
−
i
k
i
=
j
,
i
k
=
−
j
\bold{i}\bold{j}=\bold{k}, \bold{j}\bold{i}=-\bold{k} \\ \bold{j}\bold{k}=\bold{i},\bold{k}\bold{j}=-\bold{i} \\ \bold{k}\bold{i}=\bold{j},\bold{i}\bold{k}=-\bold{j}
ij=k,ji=−kjk=i,kj=−iki=j,ik=−j
然而,上述的四元素的一般表达方式在一些特定的计算情况下,并不是很方便。
四元素的还可以表达为,一个标量和一个向量之和,
Q = q w + q v (4) Q=q_{w}+\bold{q}_{v} \tag{4} Q=qw+qv(4)
式中,
q
w
q_w
qw为实数部分,
q
v
=
q
x
i
+
q
y
j
+
q
z
k
=
(
q
x
,
q
y
,
q
z
)
\bold{q}_{v}=q_{x}\bold{i}+q_{y}\bold{j}+q_{z}\bold{k}=(q_{x},q_{y},q_{z})
qv=qxi+qyj+qzk=(qx,qy,qz)为虚数向量部分。
另外,也可以将四元素按照标量在前,向量在后的一个pair(这个词实在是不晓得怎么翻译比较合适),
Q
=
<
q
w
,
q
v
>
(5)
Q=<q_{w},\bold{q}_{v}> \tag{5}
Q=<qw,qv>(5)
然而,使用的最多的方式是将四元素写作一个四维的向量
q
\bold{q}
q,
q
≜
[
q
w
q
v
]
=
[
q
w
q
x
q
y
q
z
]
(6)
\bold{q} \triangleq \begin{bmatrix} q_{w} \\ \bold{q}_{v} \\ \end{bmatrix} = \begin{bmatrix} q_{w} \\ q_{x} \\ q_{y} \\ q_{z} \\ \end{bmatrix} \tag{6}
q≜[qwqv]=⎣⎢⎢⎡qwqxqyqz⎦⎥⎥⎤(6)
这样写的就可以让我们可以使用矩阵运算来处理四元素的问题。
最后,还有使用矩阵表示四元素这种方式,矩阵表示四元素有两种方式,
一种是以二阶复数矩阵表示,
四元素的三个元素
i
,
j
,
k
\bold{i},\bold{j},\bold{k}
i,j,k采用矩阵表示(其中
i
i
i为
−
1
\sqrt{-1}
−1,
σ
x
,
σ
y
,
σ
z
\sigma_{x},\sigma_{y},\sigma_{z}
σx,σy,σz为泡利矩阵)
i
=
−
i
σ
x
=
[
0
−
i
−
i
0
]
\bold{i}=-i\sigma_{x}=\begin{bmatrix} 0 & -i \\ -i & 0 \end{bmatrix}
i=−iσx=[0−i−i0]
j
=
−
i
σ
y
=
[
0
−
1
−
1
0
]
\bold{j}=-i\sigma_{y}=\begin{bmatrix} 0 & -1 \\ -1 & 0 \end{bmatrix}
j=−iσy=[0−1−10]
k
=
−
i
σ
z
=
[
−
i
0
0
−
i
]
\bold{k}=-i\sigma_{z}=\begin{bmatrix} -i & 0 \\ 0 & -i \end{bmatrix}
k=−iσz=[−i00−i]
则,任意的四元素
q
=
a
+
b
i
+
c
j
+
d
k
\bold{q}=a+b\bold{i}+c\bold{j}+d\bold{k}
q=a+bi+cj+dk的二阶矩阵形式为
q
=
[
a
−
d
i
−
c
−
b
i
c
−
b
i
a
+
d
i
]
(7)
\bold{q}=\begin{bmatrix} a-di & -c-bi \\ c-bi & a+di \\ \end{bmatrix} \tag{7}
q=[a−dic−bi−c−bia+di](7)
这种表示方法有如下优点:
- 使 b = d = 0 b = d = 0 b=d=0,可回归到一复数 q = a + c j \bold{q} = a + c\bold{j} q=a+cj,相应于一个实矩阵。
- 四元数的绝对值平方就等于矩阵的行列式。
- 四元数的共轭值就等于矩阵的共轭转置。
- 对于单位四元数 (|h| = 1) 而言,这种表示方式给了四维球体和SU(2)之间的一个同型,而后者对于量子力学中的自旋的研究十分重要。
第二种,是以四阶实数矩阵表示,相当于把上述表示中的复数再换成其矩阵表示,
i
↔
[
0
−
1
−
1
0
]
i\leftrightarrow \begin{bmatrix} 0 & -1 \\ -1 & 0 \end{bmatrix}
i↔[0−1−10]
[ a d − c b − d a − b − c c b a − d − b c d a ] = a [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] + b [ 0 0 0 1 0 0 − 1 0 0 1 0 0 − 1 0 0 0 ] + c [ 0 0 − 1 0 0 0 0 − 1 1 0 0 0 0 1 0 0 ] + d [ 0 1 0 0 − 1 0 0 0 0 0 0 − 1 0 0 1 0 ] (8) \begin{bmatrix} a & d & -c & b \\ -d & a & -b & -c \\ c & b & a & -d \\ -b & c & d & a \\ \end{bmatrix} = \\ a \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{bmatrix}+b\begin{bmatrix} 0 & 0 & 0 & 1 \\ 0 & 0 & -1 & 0 \\ 0 & 1 & 0 & 0 \\ -1 & 0 & 0 & 0 \\ \end{bmatrix} + c\begin{bmatrix} 0 & 0 & -1 & 0 \\ 0 & 0 & 0 & -1 \\ 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \end{bmatrix} + d\begin{bmatrix} 0 & 1 & 0 & 0 \\ -1 & 0 & 0 & 0 \\ 0 & 0 & 0 & -1 \\ 0 & 0 & 1 & 0 \\ \end{bmatrix} \tag{8} ⎣⎢⎢⎡a−dc−bdabc−c−badb−c−da⎦⎥⎥⎤=a⎣⎢⎢⎡1000010000100001⎦⎥⎥⎤+b⎣⎢⎢⎡000−100100−1001000⎦⎥⎥⎤+c⎣⎢⎢⎡00100001−10000−100⎦⎥⎥⎤+d⎣⎢⎢⎡0−1001000000100−10⎦⎥⎥⎤(8)
其中,四元素的共轭等于矩阵的转置,模的四次方等于矩阵的行列式。
四元素运算
下面的所有
p
\bold{p}
p和
q
\bold{q}
q没有特别说明的话,默认的就是
{
p
=
p
w
+
p
v
=
p
w
+
p
x
i
+
p
y
j
+
p
z
k
q
=
q
w
+
q
v
=
q
w
+
q
x
i
+
q
y
j
+
q
z
k
\begin{cases} \bold{p}=p_{w}+\bold{p}_v=p_{w}+p_{x}\bold{i}+p_{y}\bold{j}+p_{z}\bold{k} \\ \bold{q}=q_{w}+\bold{q}_v=q_{w}+q_{x}\bold{i}+q_{y}\bold{j}+q_{z}\bold{k} \\ \end{cases}
{p=pw+pv=pw+pxi+pyj+pzkq=qw+qv=qw+qxi+qyj+qzk
1 四元素的加法
四元素的加法,和普通的向量加法没啥区别,直接加就行了,如下
p
+
q
=
[
p
w
p
v
]
+
[
q
w
q
v
]
=
[
p
w
+
q
w
p
v
+
q
v
]
(9)
\bold{p}+\bold{q}=\begin{bmatrix} p_w \\ \bold{p}_{v} \end{bmatrix}+\begin{bmatrix} q_w \\ \bold{q}_{v} \end{bmatrix}=\begin{bmatrix} p_w +q_w\\ \bold{p}_{v}+\bold{q}_{v} \end{bmatrix} \tag{9}
p+q=[pwpv]+[qwqv]=[pw+qwpv+qv](9)
加法交换律和结合律在四元素的加法中同样适用,
p
+
q
=
q
+
p
p
+
(
q
+
r
)
=
(
p
+
q
)
+
r
(10)
\bold{p}+\bold{q} = \bold{q}+\bold{p} \\ \bold{p}+(\bold{q}+\bold{r})=(\bold{p}+\bold{q})+\bold{r} \tag{10}
p+q=q+pp+(q+r)=(p+q)+r(10)
2 四元素乘法
两个四元素的乘积是不可交换的,叫做格拉斯曼乘积,四元素的乘法符号用
⊗
\otimes
⊗表示,写成矩阵形式,
p
⊗
q
=
[
p
w
q
w
−
p
x
q
x
−
p
y
q
y
−
p
z
q
z
p
w
q
x
+
p
x
q
w
+
p
y
q
z
−
p
z
q
y
p
w
q
y
−
p
x
q
z
+
p
y
q
w
+
p
z
q
x
p
w
q
z
+
p
x
q
y
−
p
y
q
x
+
p
z
q
w
]
(11)
\bold{p} \otimes \bold{q}=\begin{bmatrix} p_{w}q_{w}-p_{x}q_{x}-p_{y}q_{y}-p_{z}q_{z} \\ p_{w}q_{x}+p_{x}q_{w}+p_{y}q_{z}-p_{z}q_{y} \\ p_{w}q_{y}-p_{x}q_{z}+p_{y}q_{w}+p_{z}q_{x} \\ p_{w}q_{z}+p_{x}q_{y}-p_{y}q_{x}+p_{z}q_{w} \\ \end{bmatrix} \tag{11}
p⊗q=⎣⎢⎢⎡pwqw−pxqx−pyqy−pzqzpwqx+pxqw+pyqz−pzqypwqy−pxqz+pyqw+pzqxpwqz+pxqy−pyqx+pzqw⎦⎥⎥⎤(11)
也可以写作另一种标量+矢量的方式,
p
⊗
q
=
[
p
w
q
w
−
p
v
T
q
v
p
w
q
v
+
q
w
p
v
+
p
v
×
q
v
]
(12)
\bold{p} \otimes \bold{q}=\begin{bmatrix} p_{w}q_{w}-\bold{p}^{T}_{v}\bold{q}_{v} \\ p_{w}\bold{q}_{v}+q_{w}\bold{p}_{v}+\bold{p}_{v} \times \bold{q}_{v} \end{bmatrix} \tag{12}
p⊗q=[pwqw−pvTqvpwqv+qwpv+pv×qv](12)
从上式也可以看出四元素乘法为什么无法适用交换律了。
p
⊗
q
≠
q
⊗
p
\bold{p}\otimes\bold{q}\ne\bold{q}\otimes\bold{p}
p⊗q=q⊗p
但是,四元素的乘法是可以适用结合律和分配律的,
(
p
⊗
q
)
⊗
r
=
p
⊗
(
q
⊗
r
)
(
p
+
q
)
⊗
r
=
p
⊗
r
+
q
⊗
r
p
⊗
(
q
+
r
)
=
p
⊗
q
+
p
⊗
r
(13)
(\bold{p}\otimes\bold{q})\otimes \bold{r}=\bold{p}\otimes(\bold{q}\otimes \bold{r}) \\ (\bold{p}+\bold{q})\otimes \bold{r}=\bold{p}\otimes\bold{r}+ \bold{q}\otimes\bold{r} \\ \bold{p} \otimes (\bold{q} + \bold{r})=\bold{p}\otimes\bold{q}+ \bold{p}\otimes\bold{r} \tag{13}
(p⊗q)⊗r=p⊗(q⊗r)(p+q)⊗r=p⊗r+q⊗rp⊗(q+r)=p⊗q+p⊗r(13)
四元素还有其他形式的乘积,比如说点积,外积,偶积,叉积,由于工程中用的不多,这里就不多说了。
3 单位四元素
既然是单位四元素
q
1
\bold{q}_{1}
q1,那可以知道,单位四元素必然有这个属性,
q
1
⊗
q
=
q
⊗
q
1
=
q
\bold{q}_{1} \otimes \bold{q}=\bold{q} \otimes \bold{q}_{1} = \bold{q}
q1⊗q=q⊗q1=q
单位四元素就相当于实数“1”,
q
1
=
1
=
[
1
0
v
]
(14)
\bold{q}_{1}=1=\begin{bmatrix} 1 \\ \bold{0}_{v} \end{bmatrix} \tag{14}
q1=1=[10v](14)
4 共轭四元素
四元素的共轭定义为
q
∗
≜
q
w
−
q
v
=
[
q
w
−
q
v
]
(15)
\bold{q}^{*}\triangleq q_{w}-\bold{q}_{v}=\begin{bmatrix} q_{w} \\ -\bold{q}_{v} \end{bmatrix} \tag{15}
q∗≜qw−qv=[qw−qv](15)
共轭四元素具有以下两个属性,
q ⊗ q ∗ = q ∗ ⊗ q = q w 2 + q x 2 + q y 2 + q z 2 = [ q w 2 + q x 2 + q y 2 + q z 2 0 ] \bold{q} \otimes \bold{q}^{*} = \bold{q}^{*} \otimes \bold{q} = q_{w}^{2}+q_{x}^{2}+q_{y}^{2}+q_{z}^{2}=\begin{bmatrix} q_{w}^{2}+q_{x}^{2}+q_{y}^{2}+q_{z}^{2} \\ 0 \end{bmatrix} q⊗q∗=q∗⊗q=qw2+qx2+qy2+qz2=[qw2+qx2+qy2+qz20]
( p ⊗ q ) ∗ = q ∗ ⊗ p ∗ (\bold{p} \otimes \bold{q})^{*}=\bold{q}^{*} \otimes \bold{p}^{*} (p⊗q)∗=q∗⊗p∗
5 四元素的模
四元素的模定义为
∥ q ∥ = q ⊗ q ∗ = q ∗ ⊗ q = q w 2 + q x 2 + q y 2 + q z 2 (16) \lVert{\bold{q}} \rVert=\sqrt{\bold{q} \otimes \bold{q}^{*}}=\sqrt{\bold{q}^{*} \otimes \bold{q}}=\sqrt{q_{w}^{2}+q_{x}^{2}+q_{y}^{2}+q_{z}^{2}} \tag{16} ∥q∥=q⊗q∗=q∗⊗q=qw2+qx2+qy2+qz2(16)
6 四元素的逆
和普通矩阵一样,四元素的逆乘以本身等于单位四元素,有
q
⊗
q
−
1
=
q
−
1
⊗
q
=
q
1
(17)
\bold{q} \otimes \bold{q}^{-1}=\bold{q}^{-1} \otimes \bold{q}=\bold{q}_{1} \tag{17}
q⊗q−1=q−1⊗q=q1(17)
四元素的逆可以通过如下方式计算得到,
q
−
1
=
q
∗
/
∥
q
∥
(18)
\bold{q}^{-1}=\bold{q}^{*}/\lVert{\bold{q}} \rVert \tag{18}
q−1=q∗/∥q∥(18)
7 四元素单位化
对于单位四元素的话,有
∥
q
∥
=
1
\lVert{\bold{q}} \rVert=1
∥q∥=1,所以单位四元素的逆与其共轭四元素相同,
q
−
1
=
q
∗
(19)
\bold{q}^{-1}=\bold{q}^{*} \tag{19}
q−1=q∗(19)
另外,单位四元素总可以写作如下形式,
q
=
[
cos
θ
u
sin
θ
]
(20)
\bold{q}=\begin{bmatrix} \cos\theta \\ \bold{u}\sin\theta \end{bmatrix} \tag{20}
q=[cosθusinθ](20)
式中,
u
=
u
x
i
+
u
y
j
+
u
z
k
\bold{u}=u_{x}\bold{i}+u_{y}\bold{j}+u_{z}\bold{k}
u=uxi+uyj+uzk是一个单位向量,
θ
\theta
θ为一个标量。
8 纯四元素乘法
没有实数或者标量的四元素叫做纯四元素,由式(12)可知,
p
v
⊗
q
v
=
−
p
v
T
q
v
+
p
v
×
q
v
=
[
−
p
v
T
q
v
p
v
×
q
v
]
(21)
\bold{p}_{v} \otimes \bold{q}_{v}=-\bold{p}_{v}^{T} \bold{q}_{v}+\bold{p}_{v} \times \bold{q}_{v}=\begin{bmatrix} -\bold{p}_{v}^{T} \bold{q}_{v} \\ \bold{p}_{v} \times \bold{q}_{v} \end{bmatrix} \tag{21}
pv⊗qv=−pvTqv+pv×qv=[−pvTqvpv×qv](21)
由上式可知,
p
v
⊗
q
v
−
q
v
⊗
p
v
=
2
p
v
×
q
v
(22)
\bold{p}_{v} \otimes \bold{q}_{v}-\bold{q}_{v} \otimes \bold{p}_{v}=2\bold{p}_{v} \times \bold{q}_{v} \tag{22}
pv⊗qv−qv⊗pv=2pv×qv(22)
9 纯四元素的幂
我们用
q
n
\bold{q}^{n}
qn来表示
n
n
n个四元素
q
\bold{q}
q相乘
⊗
\otimes
⊗,另外,如果
v
\bold{v}
v是一个纯四元素的话,我们定义
v
=
u
θ
\bold{v}=\bold{u}\theta
v=uθ,式中
θ
=
∥
v
∥
∈
R
\theta=\lVert \bold{v} \rVert \in \Bbb{R}
θ=∥v∥∈R,
u
\bold{u}
u为单位四元素,因此可以得到,
v
2
=
−
θ
2
,
v
3
=
−
u
θ
3
,
v
4
=
θ
4
,
v
5
=
u
θ
5
,
v
6
=
−
θ
6
,
…
(23)
\bold{v}^{2}=-\theta^{2},\bold{v}^{3}=-\bold{u}\theta^{3},\bold{v}^{4}=\theta^{4},\bold{v}^{5}=\bold{u}\theta^{5},\bold{v}^{6}=-\theta^{6},\dots \tag{23}
v2=−θ2,v3=−uθ3,v4=θ4,v5=uθ5,v6=−θ6,…(23)
10 纯四元素的指数
纯四元素
v
=
v
x
i
+
v
y
j
+
v
z
k
\bold{v}=v_{x}\bold{i}+v_{y}\bold{j}+v_{z}\bold{k}
v=vxi+vyj+vzk的指数,可以用一个绝对收敛的数列进行表示,
e
v
=
∑
k
=
0
∞
v
n
k
!
∈
H
(24)
e^{\bold{v}}=\displaystyle\sum_{k=0}^{\infin}\frac{\bold{v}^{n}}{k!} \in \Bbb{H} \tag{24}
ev=k=0∑∞k!vn∈H(24)
令
v
=
u
θ
,
θ
=
∥
v
∥
∈
R
\bold{v}=\bold{u}\theta,\theta=\lVert \bold{v} \rVert \in \Bbb{R}
v=uθ,θ=∥v∥∈R且
u
\bold{u}
u为单位向量,再结合式(23),将四元素分为标量和向量两个部分,如下
e
v
=
e
u
θ
=
cos
θ
+
u
sin
θ
=
[
cos
θ
u
sin
θ
]
(25)
e^{\bold{v}}=e^{\bold{u}\theta}=\cos\theta+\bold{u}\sin\theta=\begin{bmatrix} \cos\theta \\ \bold{u}\sin\theta \end{bmatrix} \tag{25}
ev=euθ=cosθ+usinθ=[cosθusinθ](25)
这就是欧拉方程 e i θ = cos θ + i sin θ e^{i\theta}=\cos\theta+i\sin\theta eiθ=cosθ+isinθ。注意, ∥ e v ∥ 2 = cos 2 θ + sin 2 θ = 1 \lVert e^{\bold{v}} \rVert^{2}=\cos^2\theta+\sin^2\theta=1 ∥ev∥2=cos2θ+sin2θ=1,纯四元素的指数是一个单位四元素。
11 普通四元素的指数
四元素乘法是不适用交换律的,对于普通四元素
p
\bold{p}
p和
q
\bold{q}
q,不能写成
e
p
+
q
=
e
p
e
q
e^{\bold{p}+\bold{q}}=e^{\bold{p}}e^{\bold{q}}
ep+q=epeq。但是,如果有任意的乘数是标量的话,交换律还是适用的,所以,有
e
q
=
e
q
w
+
q
v
=
e
q
w
e
q
v
(26)
e^{\bold{q}}=e^{q_{w}+\bold{q}_{v}}=e^{q_{w}}e^{q_{v}} \tag{26}
eq=eqw+qv=eqweqv(26)
12 单位四元素的对数
如果
∥
q
∥
=
1
\lVert \bold{q} \rVert=1
∥q∥=1,可以直接看出
log
q
=
log
(
cos
θ
+
u
sin
θ
)
=
log
(
e
u
θ
)
=
u
θ
=
[
0
u
θ
]
(28)
\log\bold{q}=\log(\cos\theta+\bold{u}\sin\theta)=\log(e^{\bold{u}\theta})=\bold{u}\theta=\begin{bmatrix} 0 \\\bold{u}\theta \end{bmatrix} \tag{28}
logq=log(cosθ+usinθ)=log(euθ)=uθ=[0uθ](28)
从上式不难看出,单位四元素的对数就是一个纯四元素。
13 普通四元素的对数
对上式拓展一下,如果
q
\bold{q}
q是一个普通四元素,
log
q
=
log
(
∥
q
∥
q
∥
q
∥
)
=
log
∥
q
∥
+
log
q
∥
q
∥
=
log
∥
q
∥
+
u
θ
=
[
log
∥
q
∥
u
θ
]
(29)
\log{\bold{q}}=\log(\lVert \bold{q} \rVert \frac{\bold{q}}{\lVert \bold{q} \rVert})=\log \lVert \bold{q} \rVert + \log\frac{\bold{q}}{\lVert \bold{q} \rVert}=\log \lVert \bold{q} \rVert +\bold{u}\theta=\begin{bmatrix} \log \lVert \bold{q} \rVert \\ \bold{u}\theta \end{bmatrix} \tag{29}
logq=log(∥q∥∥q∥q)=log∥q∥+log∥q∥q=log∥q∥+uθ=[log∥q∥uθ](29)
四元素插值
线性插值之前使用过很多,看了四元素之后才发现四元素也可以进行插值,首先如下图
图中有两个初始向量
v
0
v_{0}
v0和
v
1
v_{1}
v1,是球面上的两个向量,四元素插值也叫球面线性插值(Slerp)。Slerp插值可以解决前面的均匀角速度问题,它能够保证每两个四元数之间的⻆速度是固定的,这就从原理上保证了插值的效果。
两个初始向量
v
0
v_{0}
v0和
v
1
v_{1}
v1之间的夹角为
ω
\omega
ω,推到过程比较简单,这里就不献丑了,直接上结果
v
t
=
k
0
v
0
+
k
1
v
1
=
sin
[
(
1
−
t
)
ω
]
sin
ω
v
0
+
sin
t
ω
sin
ω
v
1
(30)
v_{t}=k_{0}v_{0}+k_{1}v_{1}=\frac{\sin[(1-t)\omega]}{\sin\omega}v_{0}+\frac{\sin t\omega}{\sin\omega}v_{1} \tag{30}
vt=k0v0+k1v1=sinωsin[(1−t)ω]v0+sinωsintωv1(30)
令
q
0
=
v
0
,
q
1
=
v
1
\bold{q_0}=v_{0},\bold{q_1}=v_{1}
q0=v0,q1=v1,则有
s
l
e
r
p
(
q
0
,
q
1
,
t
)
=
sin
[
(
1
−
t
)
ω
]
sin
ω
v
0
+
sin
t
ω
sin
ω
v
1
(31)
slerp(\bold{q}_{0},\bold{q}_{1},t)=\frac{\sin[(1-t)\omega]}{\sin\omega}v_{0}+\frac{\sin t\omega}{\sin\omega}v_{1} \tag{31}
slerp(q0,q1,t)=sinωsin[(1−t)ω]v0+sinωsintωv1(31)