OpenGL應用開發 向量

2021-07-16 15:40:30 字數 2318 閱讀 8717

向量是一種具有大小和方向的數學列表、向量的大小代表了向量本身的長度,而向量的方向描述了指向的方位。

通常向量使用乙個帶有箭頭的線段來表示乙個向量,線段的長度則是向量的大小,箭頭則表示向量的方向

因此向量可以用來表示位移、速度、角色的觀察方向、光線傳播方向、光反射方向等

在數學書寫上通過使用乙個方括號括起來表示乙個向量,而在程式中通常使用乙個陣列來表示乙個向量

乙個向量的維度表示具有多少個分量,向量的每個分量表示在座標系中每個座標軸的變換量

向量能夠用來描述位移即從乙個點移動到另乙個點的方向和距離,向量還能夠描述乙個點在座標系中的具體位置即從座標系原點到這個點的距離和方向。
1、取反運算

將向量的每個分量乘以-1則得到乙個與原來的向量的方向相反,大小相同的負向量

2、零向量

零向量是乙個特殊的向量,它表示的是乙個沒有大小、沒有方向的向量,零向量並不是表示某乙個點的座標位置

3、向量的大小

向量的大小表示了乙個點到另乙個點的距離

4、向量與標量相乘或者相除

向量與標量相乘時,這個標量就是這個向量的縮放因子,向量的每個分量與縮放因子相乘或者相除以達到向量的縮放功能。當縮放因子大於0時則向量被放大,當縮放因子小於0時向量的方向被倒轉

5、向量的歸一化

當在使用向量時我們只需要使用到向量指向的方向,我們就可以將向量歸一化來實現,向量的歸一化原理則是將向量的變成乙個單位向量,即各個分量的平方和為1。

6、向量的點積

向量的點積是向量是向量乘積的一種表現形式,向量的點積的結果是乙個標量,簡而言之向量的點積就是兩個向量各個分量的乘積之和。

從公式可以看出當兩個向量為單位向量時兩個向量的點積就是乙個cos@值,這個值表示的就是兩個向量之間的夾角。夾角的取值範圍 為 0 ~ π,使用的是弧度制表示

若兩個向量是單位向量時的一些特殊的點積值 :

6、向量的叉乘

兩個向量的叉乘也是向量相乘的一種特殊形式,兩個向量叉乘得到的結果是乙個向量,向量的叉乘只適用於3d向量不適用於2d向量,這個向量垂直於叉乘的兩個向量。

當兩個向量首尾相連時,若使用 左手或者右手從第乙個向量出發,四指彎向第二個向量,此時大指姆指向的方向就是向量的方向。

7、向量在另乙個向量上的投影

由於向量u在向量v上的投影,所以它們的方向相同,所以投影向量的方向單位向量為:

u= v / | v|

投影向量的長度為:

更據兩個向量之間的點積可得兩個向量之間的夾角的cos值為:

所以向量在座標軸上的投影為:

8、判斷兩個向量相等:

當兩個向量的長度和方向都相同時則這個向量相等。在數學中我們通常通過判斷向量的幾個分量值是否相等來判斷兩個向量是否相等。

9、通過乙個向量建立座標系

在3d世界中任何乙個座標點都需要在乙個指定的座標系中才能夠表示,我們通過乙個座標原點和三個相互垂直的單位向量組成。

10、向量與向量之間的加減運算

向量的加法可以被定義為是分量的(component-wise)相加,即將乙個向量中的每乙個分量加上另乙個向量的對應分量:

OpenGL應用開發 矩陣

矩陣是一種具有m行n列的多維陣列,矩陣的行和列指定了矩陣的維度,矩陣中的每個原始通過行和列下標來進行元素的訪問 1 方陣方陣是一種行和列相同的矩陣。方陣的對角元素是指行和列下標都相同的元素,其他都是非對角元素 2 對角矩陣 當除開對角元素外其他元素都是0則稱這種矩陣為對角矩陣 3 單位矩陣 單位矩陣...

OpenGL應用開發 紋理

在進行模型渲染的時候為了使模型看起來更加的逼真,細節更加的真實我們使用紋理貼在物體的表面。使用紋理我們可以不用再為每個頂點指定顏色,通過紋理對映到頂點上然後對紋理進行操作,和配色。然模型顯得更加的漂亮 真實。為了能夠使紋理能夠正確的對映到模型的每乙個頂點上,在我們定義模型座標時,額外還要指定每個頂點...

qgis二次開發向量資料點選擇的方法

qgis網上的資料比較少,能找到的資料就那麼幾篇基本的載入圖層之類的,最主要還是參考qgis本身的原始碼和其api文件。在這裡感謝qgis群同時也是地大群的大哥的指導。qgis程式是c 和qt平台編譯出來的可執行檔案。其中mapcanvas儲存了乙個指標指向當前的tool,tool裡面有各種響應滑鼠...