DirectX三維空間旋轉矩陣原理

2021-06-20 09:16:48 字數 1507 閱讀 3082

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

β變為α,再假設α-β=θ。

這裡我們採用極座標系思想,假設線段長度為ρ,那麼原來的v座標(x1,y1)為(ρcosβ,ρsinβ),變換之後的v座標為(ρcosα,ρsinα),即(ρcos(β+θ),ρsin(β+θ)),把公式拆開就是(ρcosβcosθ-ρsinβsinθ,ρsinβcosθ+ρcosβsinθ),又因為ρcosβ=x1,ρsinβ=y1,所以變換之後v的座標(x2,y2)為(x1cosθ-y1sinθ,x1sinθ+y1cosθ),所以旋轉矩陣為

cosθ sinθ

-sinθ cosθ

同理,逆矩陣為

下面再來看三維座標的旋轉變換。directx3d採用的是左手座標系,也就是與我們數學課上學的座標系只有z軸是相反的(數學課上學的是右手座標系)下面的這些旋轉是我用程式親自試驗過看過的旋轉方向,在directx3d系統中,它的旋轉如下:

1、如果是圍繞x軸旋轉,那麼從x軸正半軸看過去它是順時針旋轉(即從y軸正半軸旋轉向z軸正半軸),所以旋轉矩陣是

1        0         0      0

0    cosθ

sinθ    0

0    -sinθ    cosθ   0

0        0       0        1

2、如果是圍繞y軸旋轉,那麼從y軸正半軸看過去它是順時針旋轉(即從z軸正半軸旋轉向x軸正半軸),所以旋轉矩陣是

cosθ   0     -sinθ    0

0         0       0       0

sinθ

0    cosθ    0

0        0       0        1

3、如果是圍繞z軸旋轉,那麼從z軸正半軸看過去它是順時針旋轉(即從x軸正半軸旋轉向y軸正半軸),所以旋轉矩陣是

cosθ   sinθ    0      0

-sinθ  cosθ   0       0

0          0       1      0

0          0       0      1

三維空間剛體旋轉

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

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

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

三維空間幾何變換矩陣

轉 三維空間幾何變換矩陣 標籤 矩陣變換 繼之前的繞軸旋轉,這裡彙總了一下三維空間中的平移變換,比例變化,旋轉變換等數學知識 基本三維幾何變換 平移變換 若空間平移量為 tx,ty,tz 則平移變換為 比例變換 相對座標原點的比例變換 乙個點p x,y,z 相對於座標原點的比例變換的矩陣可表示為 繞...