四元數旋轉公式的證明

2021-05-22 11:33:12 字數 2979 閱讀 5706

有很多文章和帖子討論四元數在3d

命題:設四元數

u

= a*i + b*j + c*k

,且u

^2= -1

;對於任意四元數

p

,以u

為軸正向旋轉(右手座標系中逆時針方向,左手座標系中順時針方向)θ角度,得到向量

p'

,則:p'

=r*p*r^(-1)

,其中r =

cos(

θ/2)+sin(

θ/2)* u

證明

r*r^(-1)= 1 =r^(-1)* r......(1)

在方程(1)兩邊同時乘以r的共軛r*,可以得到:

r*=  r^(-1)* r * r*= r^(-1)* |r|^2  ......

(2)又由:|r|^2 = (cos(

θ/2))^2 + (sin(

θ/2))^2*

(a^2 + b^2 + c^2)= 1

r^(-1)= r*/ |r|^2= r*=cos(

θ/2)-sin(

θ/2)* u

如圖所示, 設四元數vu垂直,與u,p共面,且v^2 = -1;四元數w=u*v,則u,v,w組成乙個直角座標系。

r*p*r^(-1) = (cos(

θ/2)+sin(

θ/2)* u) * ( s *u+ t *v) * (cos(

θ/2)-sin(

θ/2)* u)

= ( s * cos(

θ/2)* u +t*cos(

θ/2)*v -s*sin(

θ/2)+t*sin(

θ/2)*w) * (cos(

θ/2)-sin(

θ/2)* u)

= s* (cos(

θ/2))^2* u + t*(cos(

θ/2))^2*v -s*sin(

θ/2)*cos(

θ/2)+t*sin(

θ/2)*cos(

θ/2)*w

+s*sin(

θ/2)*cos(

θ/2)+t*sin(

θ/2)*cos(

θ/2)*w -s*(sin(

θ/2))^2*u - t*(sin(

θ/2))^2*v

=s*u +t* cos(

θ)*v +t*sin(

θ)*w

由此可知,p

是由pu正向旋轉

θ角度而得。

四元數旋轉的計算

最近剛好又用到四元數,又深感生疏。複習一下記錄記錄。情形 對於三維向量p,繞著某軸v旋轉 角度 1.先考慮p垂直於v的情況 p所在的旋轉平面的另乙個軸為 v q,在這個旋轉平面內,使用二維情況下的旋轉公式就可以得到結果了 p cos p sin v q 2.v為任意方向的情況 把p分解為平行於v和垂...

四元數乘法 剛體旋轉中的四元數

四元數博大精深,用途之一圖形學中的三維旋轉。單純從應用角度考慮,四元數可以以如下方式應用於旋轉。旋轉示意圖 假定我們有乙個經過原點的旋轉軸 其中 則,3d旋轉可以通過四元數乘法來表示 1 其中,為單位四元數,等價於 和 分別為 的共軛和逆。對於單位四元數而言 根據式 1 結合四元數的乘法,可以完成一...

四元數乘法 旋轉之四 四元數

用 表示四元數是為了紀念其發明者 hamilton.其中 可以根據 來推導以下式子 跟複數類似,我們可以把四元數寫成 它的基是 或者 類似複數,四元數的模長 範數norm 定義為 也可寫成 同複數的乘法不同,四元數乘法不遵守交換律,所以有左乘和右乘的說法,結合律和分配律還是滿足的。類似的,我們也可以...