openGL矩陣複習 旋轉矩陣的原理

2021-10-20 12:38:56 字數 922 閱讀 9027

以繞x軸旋轉為例:

很明顯,繞x軸旋轉,x值是不會變化的,所以矩陣第一行是和單位矩陣一樣的.

繞x軸旋轉,實際上就是在下圖的座標系裡面旋轉乙個二維向量.從紅色向量旋轉到綠色向量.

通常我們以(x,y)這種形式來表示向量,但在旋轉向量這裡,使用三角函式來表示,更加容易理解,也更方便計算.

紅色向量用三角函式表示如下:

z0 = -r * cosα

y0 = r * sinα

綠色向量:

z1 = -r * cos(α + θ) = -r * cosα * cosθ + r * sinα * sinθ

y1 = r * sin(α + θ) = r * sinα * cosθ + r * cosα * sinθ

上面的推導用到了兩角公式:

sin(a+b) = sinacosb+cosasinb

cos(a+b) = cosacosb-sinasinb

用已知的z0,y0替換:

z1 = z0cosθ + y0sinθ

y1 = y0cosθ - z0sinθ

回到矩陣這裡,為了能修改向量的值,將上面公式中的值放入矩陣相應的位置,通過矩陣乘以向量,即可達到和上面公式相同的旋轉的效果了

y,z軸的旋轉同理.

用 Scilab 計算OpenGL 的旋轉矩陣

scilab http www.scilab.org 是一款免費的,類似於matlab的軟體。進行矩陣運算的時候比較方便。opengl的三維座標系中,分別繞 x,y,z 三座標軸旋轉xangle,yangle,zangle之後的旋轉矩陣,可以用下列公式計算。function glrotatematr...

推到 旋轉矩陣公式 旋轉矩陣公式推導

1.在二維平面中 如下圖所示,在xoyxoy平面中有一向量op x,y top x,y t,旋轉 角後變為向量op x y top x y t。據圖可得 x op cos y op sin x op cos y op sin 經旋轉 角後有 x op cos op cos cos sin sin x...

旋轉矩陣演算法

question 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 void func int n 要求 通過傳入的n,輸出乙個4 4的矩陣,順序如上圖所示.code nxn矩陣 include using namespace std include define max...