以繞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...