前言
矩陣的定義
先從2d場景說起.先從乙個最簡單的問題開始.
q1:乙個點p(x,y)它關於原點o的對稱點為p'(x',y'),請問x',y'與x,y有什麼關係?
下面兩個問題稍微難一些。
q2:點
繞o逆時針旋轉45°,得到點p'(x', y'),求p'的座標。
a2:設p座標為p(x,y),且滿足
由題意
p旋轉45°後得到p'(x',y'),由三角函式知識可得
由公式,
可得
所以p'座標為
.q3:點p(x,y)繞o逆時針旋轉且旋轉角為α,得到p(x',y'),請問x',y'與x,y有什麼關係?
a3:設
則即
設p(x,y)經過某種變換之後得到點p'(x',y'),且滿足
,則這種變換被稱為線性變換(linear transformation).為方便,我們把這種變換記作乙個正方形數表
這種數表被稱為矩陣(matrix)。這裡這個數表是2x2的,因此被稱為二階矩陣。例如q1中,矩陣為
;q2中,矩陣為
q3中,矩陣為
。為方便,我們將點p(x,y)理解為乙個從o指向p的向量,將(x,y)稱為向量op的座標。討論矩陣時,可以認為點p和向量op是等價的,不區分它們。點p(x,y)經過某種變換後得到點p'(x',y'),與向量v(x,y)經過某種變換後得到向量v'(x',y')兩種說法等價。
像矩陣一樣,(x,y)也可以寫成一列的形式
這種形式的向量被稱為列向量。
矩陣運算(矩陣乘向量)
如果向量v經過矩陣m的變換後得到乙個新的向量v',我們為方便,就會說向量v'是矩陣m與向量v的乘積,記為v'=mv.注意矩陣要在前面,不能寫成v'=vm.
如果矩陣m1,m2分別和向量v相乘(也就是向量v經過m1,m2的變換後),得到乙個新的向量v',記作
.矩陣運算(矩陣乘矩陣)
如果有3個矩陣m1、m2和m,對於向量v,m2m1v得到的結果和mv相等,可以認為矩陣m1、m2所共同產生的變換等於矩陣m的變換。這種情況下,我們會說m1與m2的乘積等於m,用公式表示就是m1m2=m。
(to be continued)
opengl的轉換矩陣
矩陣真的是乙個很神奇的數學工具,雖然單純從數學上看,它並沒有什麼特別的意義,但一旦用到空間中的座標變換,它就 一遇風雲便成龍 大顯神威了。簡單的工具實現了複雜的功能,便預示著要理解它我們還是要花上點功夫的。下面就簡單介紹一下opengl中的轉換矩陣。1 轉換矩陣的原理 opengl中的轉換矩陣是這樣...
opengl的矩陣理解
矩陣真的是乙個很神奇的數學工具,雖然單純從數學上看,它並沒有什麼特別的意義,但一旦用到空間中的座標變換,它就 一遇風雲便成龍 大顯神威了。簡單的工具實現了複雜的功能,便預示著要理解它我們還是要花上點功夫的。下面就簡單介紹一下opengl中的轉換矩陣。1 轉換矩陣的原理 opengl中的轉換矩陣是這樣...
OpenGL從1 0開始 繪製二次曲面
glutwiresphere r,nlongitudes,nlatitudes 球面線框圖,引數分別為半徑,經緯度數目 glutsolidsphere r,nlongitudes,nlatitudes 球面實體圖 glutwirecone rbase,height,nlongitudes,nlati...