三維空間旋轉矩陣的推導和表示方法 程式設計師常用數學

2021-07-25 18:34:23 字數 1279 閱讀 3084

我們知道繞座標軸旋轉的變換矩陣為:

(1)繞z軸旋轉  x' = xcost - ysint

(2)繞x軸旋轉  y' = ycost - zsint

(3) 繞y軸旋轉 z' = zcost - xsint

假設讓乙個向量繞x軸旋轉t度,我們知道繞x軸旋轉的旋轉矩陣如下:

1     0       0      0

0   cost   sint   0

0  -sint   cost   0

0      0      0      1

那麼,它是怎麼來的呢?

現在假設我們想讓p1繞x軸旋轉t度到達p2。我們沿著x軸指向原點方向觀察時,情況如下:

p0是當p1與y軸重合時的向量,假設p0旋轉至p1為r度,那麼很明顯,p1的值為y1 = r*cosr,z1 = r*sinr。

而現在我們是要把p1旋轉t度至p2,那麼同理,p0旋轉r+t度也至p2,那麼p2的值為y2 = r*cos(r+t),z2 = r*sin(r+t)。

我們把p2的值展開看看,y2 = r*(cosr*cost - sinr*sint),z2 = r*(sinr*cost + cosr*sint),因為p1的值y1 = r*cosr,z1 = r*sinr,所以cosr = y1/r,sinr = z1/r,代入p2的值,得:

y2 = r*(y1/r * cost - z1/r * sint ) = y1*cost - z1*sint

z2 = r*(z1/r * cost + y1/r * sint ) = y1*sint + z1*cost

即得旋轉矩陣:

1     0       0      0

0   cost   siny   0

0  -sint   cost   0

0      0      0      1

其餘的旋轉矩陣推導過程相同。

DirectX三維空間旋轉矩陣原理

三維空間的旋轉分開來看其實就是二維空間的旋轉,對於二維空間的旋轉各位同學大家高中應該都學過,這裡簡單推導一下,由於我不會製作這種圖,隨便在網上找了一下圖,意思到了就可以,我們假設一線段從如下圖所標示的x 軸旋轉到ov線段,也就是從原來的與x軸夾角為 變為 再假設 這裡我們採用極座標系思想,假設線段長...

三維空間剛體旋轉

剛體 運動過程中不會產生形變的物體,運動過程中同乙個向量的長度和夾角都不會發生變化。剛體變換也稱為歐式變換。旋轉矩陣 四元數旋轉向量 尤拉角安裝方式 eigen庫只有標頭檔案,沒有.so和.a二進位制檔案,所以在cmakelists.txt中只需要新增標頭檔案路徑,並不需要使用target link...

空間座標乘旋轉矩陣 三維空間中的旋轉變換與旋轉矩陣

在三維空間中,繞著x軸,y軸,z軸的旋轉可以使用4 4的矩陣表示,而根據左右手座標系的不同,又可分為左手座標系下的三維旋轉矩陣和右手座標系下的三維旋轉矩陣。1 左手座標系下的旋轉矩陣 設旋轉角為 角,而 角表示從軸的正方嚮往座標軸的反方向觀察,順時針旋轉的角度 在左手座標系下,順時針旋轉為旋轉的正方...