左右手座標系轉換

2021-07-31 21:47:27 字數 736 閱讀 5953

**

假定sz是乙個縮放矩陣,能把z取反,也就是

sz =  1  0  0

0  1  0

0  0 -1

p = (x,y,z),p' = (x,y,-z) 也就是p 和 p'在不同手性下表示相同位置的乙個點 那麼 p = sz * p',反之也成立,也就是 p' = sz * p

平移變換的變換同上

現在考慮y軸的旋轉,也就是yaw 假定在左手系下, p1 是 p變換後的結果,假定旋轉矩陣是 r 也就是 p1 = r * p

那麼 p1在右手系下對應位置的點為p1' p1' = sz * p1 = sz*(r * p) = sz * (r * sz * p') 根據可結合性 可以得到 p1' = (sz * r * sz) * p' 所以 如果已知在某手性座標系下的選擇為 r,則在另乙個手性下的旋轉矩陣為 r' = sz * r * sz; 上面的計算相當於將 r的 m02,m12,m20,m21取反

不管使用什麼選擇順序,任意乙個選擇都可以變換為 三個軸向旋轉矩陣的乘

也就是說 對饒任意軸的選擇 r = rz*ry*rx 根據上面的推導,在另乙個手性下的旋轉應為 r' =  (sz * rz * sz) * (sz * ry * sz) * (sz * rx * sz); 結合性 和 sz的逆是本身 那麼 r' = sz * r * sz;

將上面的結果擴充套件到一般變換

p1 = r*p  + t

p1' = sz*r*sz*p' + sz * t;

左右手座標系

眾所周知,opengl使用的是右手座標系,而direct3d使用的是左手座標系。除了上面z軸的方向不一樣外,左右手座標系的還有其他區別 正向旋轉方向 在左手系中用left hand rule判別,正方向是順時針方向。在右手系中,用right hand rule判別,是逆時針方向。叉積的方向 在右手座...

左右手座標系與旋轉正向

這兩個問題很容易弄混淆。要確定旋轉正向必須先確定是左手座標系還是右手座標系 1,判定座標系 1.左手座標系 伸開我們的左手,掌心向外,大拇指與食指成90度,中指 無名指和小指彎曲,大拇指指向的方向就是x軸正方向,食指指向的方向就是y軸正方向,中指 無名指和小指指向的方向就是z軸正方向 2.右手座標系...

OpenGL(四) 左右手座標系及基本座標變換

左手座標系 伸開左手,大拇指指向x軸正方向,食指指向y軸正方向,其他三個手指指向z軸正方向。右手座標系 伸開右手,大拇指指向x軸正方向,食指指向y軸正方向,其他三個手指指向z軸正方向。左右手座標系的示意圖如下 左手和右手座標註系的區別在於兩者z軸的方向是相反的。在高等數學中使用的三維空間是笛卡爾座標...