求問物體從a位置到b位置,怎麼求其沿x y z軸的旋轉角度。?
01-09
以簡單三角形為例,平動+旋轉,從A位置到B位置,怎麼求其沿x y z 軸的旋轉角度?
求大神指點。謝謝!
這是個特別典型的描述剛體運動+旋轉的問題。
描述的方法不唯一。我只提供一種我認為方便的描述方法。把運動+旋轉分解成剛體中心在坐標系的平移,以及剛體繞中心的旋轉。題主給的三角形的例子很好(很省事),設三角形的三個頂點分別是ABC,最方便的用來做其中心的點當然是重心
(A、B、C和P都是xyz坐標系的三維向量)剛體運動後頂點是,所以三角形中心的位移是接下來說旋轉。根據歐拉關於剛體轉動的歐拉定理,剛體在三維空間中的任意旋轉(單次旋轉、多次旋轉)的最終效果,都可以分解為剛體繞某個軸的一次旋轉。前面已經把剛體的運動拆成了中心位移和繞中心兩步。中心位移是整體運動,與剛體自身繞中心的旋轉無關(相當於地球繞太陽公轉);旋轉和中心位移無關(相當於地球自轉),所以考慮旋轉時,就把坐標系建在剛體自身。為方便起見,另其中心P為坐標系原點,繞P點旋轉。題主問的繞x、y、z旋轉,不管怎麼轉,最後都等價於繞某個軸旋轉。
描述三維旋轉,有以下三種常見、常用、等價的方法:- 四元數
- 軸、角
- 旋轉矩陣
我認為,軸、角是比較直觀的,所以這裡就只說軸、角。
根據歐拉定理,我們只要找到旋轉軸和繞旋轉軸轉過的角度就行了。所謂旋轉軸,是一個單位矢量(我們用來表示,U是坐標系一點,u是P到U的矢量,也就是u=PU)。頂點A繞u旋轉了角度(根據右手規則,拇指沿旋轉軸u,旋轉順著四根指頭),也就是說旋轉前後矢量積滿足:(PA、PA『和PU都是矢量)
剛體的「剛」就意味著,整體繞一個軸u旋轉,那麼所有點都繞u旋轉.所以有:,以及.
計算出來了旋轉軸u和旋轉角, 就可以用四元數來表示旋轉:(關於四元數,要注意約定,分為剛體旋轉四元數和坐標系旋轉四元數,四元數q與矢量r的乘法表示旋轉矢量r,要看清楚約定的到底是還是,關係到上面式子中的正負號)分別是U的坐標分量,ijk是坐標矢量。而有了四元數,就有旋轉矩陣了。有了旋轉矩陣,就知道繞x、y、z坐標軸各自旋轉了多少角度。這裡不寫了。題主可以作為練習題...簡單小結一下,軸、角表述旋轉便於人類理解;四元數表述旋轉便於編程序;矩陣表示旋轉便於拆解為繞其他軸的旋轉。我補充一個計算四元數的比較簡單的公式吧。任何一個四元數可以看做一個標量部分和三維向量部分組成的,同樣的一個三維歐式空間的向量也可以看做標量部分為的四元數。以向量為軸,將一個向量旋轉角的旋轉公式為,其中。所以如果要求把單位向量旋轉到單位向量的朝向的話,注意夾角,那麼軸線法向量為那麼有,於是於是最終表示旋轉的四元數
推薦閱讀:
※可以可以推薦一些CATIA自學教程?
※下載那個catia比較好?最近想學學
※為什麼達索公司同時開發Catia和SolidWorks?