四元数表示旋转
1.我們首先認識四元數(shù)
1.1定義
這里我們可以看到這個其實就是一個虛數(shù)定義的結(jié)構(gòu)
仔細看一下我們其實可以發(fā)現(xiàn)這三個虛數(shù)的任意兩個相乘其實得到的都是另外一個,這就想兩個向量相乘得到那個和這兩個向量相互垂直的向量是很相似的,所以這個xyz其實是可以表達一個向量的。
1.2 運算
- 1.加法運算,其實我們加法運算比較容易想到直接按照每一位相加就行,這個和正常的虛數(shù)運算是完全一致的
- 2.乘法運算,其實這個東西也比較簡單,就是每一位依次握手的問題,但是我們可以化簡這個東西大致結(jié)果如下:
當然上面的形式看起來就非常讓人頭大,所以就有了下面的形式:
- 3 求逆
這個東西其實我們是利用一個復數(shù)乘上他的共軛等于他的模長的方法得到的他的逆。只不過這里比較特別的是,我們這里四元數(shù)的定義當中就說了模長就是1,所以我們在計算的過程當中其實直接取一個共軛就完成任務了。
2.思考這個東西為什么和旋轉(zhuǎn)聯(lián)系起來
我們在表達一個旋轉(zhuǎn)的過程中其實我們是可以用一個旋轉(zhuǎn)軸和旋轉(zhuǎn)多少度來確定一個旋轉(zhuǎn)的。上面我們又說四元數(shù)就是一個向量加上一個標量所以恰好可以表示一個旋轉(zhuǎn)。
那么我們直接讓這個xyz的位置表示一個向量,w的位置表示一個角度行不行呢?還真不行因為非常不方便。所以我們大多采用下面的表達方法,看了下面的定義方式大家就能理解這里為什么直接使用很不方便了。
3.具體怎么表示一個旋轉(zhuǎn)
當然我們在開始之前我們關(guān)鍵是得理解這個繞一個軸進行旋轉(zhuǎn)到底是個什么東西?
這個u就是這個旋轉(zhuǎn)軸seita就是這個旋轉(zhuǎn)的角度
我們像這樣定義的話:
就可以用下面的式子便捷的實現(xiàn)q這個四元數(shù)表達的旋轉(zhuǎn)
另外我們其實通過這個旋轉(zhuǎn)實現(xiàn)的式子我們其實很容易就能看出來:
- 1.這里,我們在往回旋轉(zhuǎn)的時候只要對這個四元數(shù)取一個逆就可以轉(zhuǎn)回去。
- 2.我們在也可以通過兩個四元數(shù)的相乘得到一個新的四元數(shù),而這個新的四元數(shù)就表達著這兩個四元數(shù)共同作用的效果。不過這里我們注意我們旋轉(zhuǎn)角度的問題是不能交換順序的。而從上面的式子可以看出兩個四元數(shù)相乘是先進行后面那個四元數(shù)的旋轉(zhuǎn),再進行前面四元數(shù)的旋轉(zhuǎn)。
- 3.我們可以便捷的實現(xiàn)插值,這里我們只需要:
總結(jié)
- 上一篇: 怎么寻找科研论文?(二)
- 下一篇: 安卓惯性传感器(二)