羅德里格斯(Rodrigues)旋轉方程
此公式有2種形式,故而也有2種推導方法。具體的推導過程如下

一、條件
定義向量k是旋轉軸的單位矢量,圖中初始向量v繞k軸旋轉Θ角得vrot
二、說明
所謂推導旋轉方程,實則求出一個旋轉矩陣R,使得vrot=Rv。所以我們要做的就是找出vrot與v之間的關系,並用矩陣來表示。
三、推導
1. 推導一
對v進行向量分解: v = v⊥+ v//
由點乘的投影幾何意義可得: v// = (v • k)k (v•k為標量,所以再乘k得到一個矢量)
根據向量減法可得: v⊥= v - v//
由旋轉過程平行向量不變得: vrot //= v//
為計算方便,對vrot⊥進行向量分解:vrot⊥=a+b
由圖中的向量關系經推導可得:b= cosΘ v⊥ a=sinΘ k x v (推導在文章末尾)
綜上可得:vrot = vrot⊥+vrot //
= a + b + v//
= sinΘ k x v + cosΘ v⊥ + (v • k)k
= sinΘ k x v + cosΘ (v - v//)+ (v • k)k
= sinΘ k x v + cosΘ (v - (v • k)k)+ (v • k)k
= cosΘ v + (1 - cosΘ )(v • k)k + sinΘ k x v
顯然:到此步,我們還無法將其用矩陣來表示,所以需要對 (v • k)k 和 k x v 進行矩陣轉換
由結合律和點乘的交換律得(v • k)k=k •(v • k)=k • (kτ • v)=k•kτ•v ,其中的向量都是列向量
對於k x v可用叉乘矩陣來化簡為Kv

所以,cosΘ v + (1 - cosΘ )(v • k)k + sinΘ k x v
= cosΘ v + (1 - cosΘ )kkτv + sinΘKv
=( cosΘ I + (1 - cosΘ )kkτ + sinΘK ) v
=Rv
所以,旋轉矩陣R=cosΘ I + (1 - cosΘ )kkτ + sinΘK,其中I為單位矩陣。
2.推導二
與推導一相比,推導二的不同主要在於用叉乘去表示一些數據
用叉乘來表示v⊥可得:v⊥= -k x (k x v)
所以聯立推導一中各式得: vrot = vrot⊥+ vrot //
= a + b + v//
= sinΘ k x v + cosΘ v⊥ + v - v⊥
= sinΘ k x v - cosΘk x (k x v) + v + k x (k x v)
= v + (1 - cosΘ)k x (k x v) + sinΘ k x v
= v + (1 - cosΘ)K2v + sinΘ Kv (叉乘矩陣表示)
=(I + (1 - cosΘ)K2 + sinΘ K) v
=Rv
從而得出第二種表達式R=I + (1 - cosΘ)K2 + sinΘ K
顯然,第二種表達式更為簡便,在計算的過程中涉及的參數更少,所以這也是在進行旋轉操作時常用的公式。
關於a和b的推導

a和b是由Vrot⊥正交分解得到的矢量,既有大小又有方向,所以在求解時,我們要對其大小和方向分別求解。
一、b的求解
1.大小
由圖得:|b| = cosΘ' |Vrot⊥| ( Θ'為b和Vrot⊥的夾角 )
又因為|Vrot⊥| = |V⊥| ,Θ'=PI - Θ
所以:|b| = cos(PI - Θ) |V⊥| = (- cosΘ)|V⊥|
2.方向
由b的方向與V⊥方向相反可得
b的單位方向向量為:-V⊥ / |V⊥|
綜上可得:b= (-V⊥ / |V⊥| ) |b| = cosΘV⊥
二、a的求解
1.大小
|a| = sinΘ' |Vrot⊥| = sinΘ' |V⊥| = sin(PI-Θ) |V⊥| = sinΘ|V⊥|
= sinΘsinΘ''|V| (Θ''為V和k的夾角)
= sinΘsinΘ''|V| |K| (因為 |K|=1,所以可直接加上)
其中sinΘ''|V| |K| = |K x V|
所以:|a| = sinΘ |K x V|
2.方向
由叉乘方向可得a的單位方向向量為
K x V / |K x V|
綜上可得:a=(K x V / |K x V|) sinΘ |K x V| = sinΘ K x V
