证明的过程会比较繁琐。
首先看定义。假设两个四元数:
q⃗ a=[sa,v⃗ a]=sa+xai+yaj+zak
q⃗ b=[sb,v⃗ b]=sb+xbi+ybj+zbk
乘法
定义为:
q⃗ aq⃗ b=[sasb−v⃗ ⊤av⃗ b,sav⃗ b+sbv⃗ b+v⃗ a×v⃗ b]
其中,
×
符号表示向量外积。
共轭
:
q⃗ ∗a=[sa,−v⃗ a]=sa−(xai+yaj+zak)
则:
q⃗ aq⃗ ∗a=[sasb−v⃗ ⊤a(−v⃗ a),sa(−v⃗ a)+sav⃗ a+v⃗ a×(−v⃗ a)]=[s2a+v⃗ ⊤av⃗ a,0⃗ ]
这是因为:
v⃗ a×(−v⃗ a)=⎡⎣⎢⎢ixa−xajya−yakza−za⎤⎦⎥⎥=[ya(−za)−za(−ya)]i+[xa(−za)−za(−xa)](−j)+[xa(−ya)−ya(−xa)]k=0∗i+0∗j+0∗k=0
模长
:
‖q⃗ a‖=s2a+x2a+y2a+z2a‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾√
逆
:
q⃗ −1=q⃗ ∗/‖q⃗ ‖2
计算
q⃗ q⃗ −1
:
q⃗ q⃗ −1=q⃗ q⃗ ∗/‖q⃗ ‖2=q⃗ q⃗ ∗‖q⃗ ‖2=[sa,a⃗ ][sa,−a⃗ ]‖q⃗ ‖2=[sasa−v⃗ ⊤a(−v⃗ a),−sav⃗ a+sav⃗ a+v⃗ a×(−v⃗ a)]=sasa+v⃗ ⊤av⃗ as2a+x2a+y2a+z2a=1
假设点坐标为
p⃗ =[0,x,y,z]=[0,v⃗ ]
(
[x,y,z]∈ℝ3
), 旋转轴及角度为
n⃗ ,θ
,其中
n⃗ =[nx,ny,nz]
旋转用四元数表示
为
q⃗ =[cosθ2,n⃗ sinθ2]
.
由上述定义,可知:
q⃗ −1=q⃗ ∗/‖q⃗ ‖2q⃗ ∗=[cosθ2,−n⃗ sinθ2]‖q⃗ ‖2=cos2θ2+sin2θ2(n2x+n2y+n2z)=1
旋转后的点
p⃗ ′
可计算为:
p⃗ ′=q⃗ p⃗ q⃗ −1=[cosθ2,n⃗ sinθ2][0,v⃗ ]q⃗ −1=[−sinθ2n⃗ ⊤v⃗ ,cosθ2v⃗ +sinθ2n⃗ ×v⃗ ][cosθ2,−n⃗ sinθ2]=[−sinθ2cosθ2n⃗ ⊤v⃗ +[cosθ2n⃗ ×v⃗ ]⊤n⃗ sinθ2,⋯]=[−sinθ2cosθ2n⃗ ⊤v⃗ +sinθ2cosθ2v⃗ ⊤n⃗ +(sinθ2)2(n⃗ ×v⃗ )⊤n⃗ ,⋯]=[(sinθ2)2(n⃗ ×v⃗ )⊤n⃗ ,⋯]
因为:
(v⃗ ⊤×n⃗ )n⃗ =⎡⎣⎢⎢⎢inxxjnyyknzz⎤⎦⎥⎥⎥n⃗ =[(nyz−nzy)i−(nxz−nzx)j+(nxy−nyx)k].∗[nx,ny,nz]=[(nyz−nzy),−(nxz−nzx),(nxy−nyx)].∗[nx,ny,nz]=nxnyz−nxnzy−nxnyz+nynzx+nxnzy−nznyx=0
所以
p⃗ ′=q⃗ p⃗ q⃗ −1
的实部为0.