DirectX的常用矩陣函式

2021-05-09 20:02:45 字數 1757 閱讀 7935

矩陣的計算

基本運算

1)相等(a=b):如果兩個矩陣維數相同且對應元素也相同

2)矩陣與標量相乘:kd

3)加減法必須維數相同

4)ab≠ba

單位矩陣:(identity matrix)

主對角線上的元素為1其餘為0,而且是方陣!乘其它數不變

逆矩陣:(inverse matrix)

1)只有方陣才可能有逆矩陣

2)mm-1=m-1m =i

3)(ab)-1 = a-1b-1

矩陣的轉置:

m*n =n*m維

注意

3d中我們用4*4矩陣來描述,最後一列的值是用來判斷是否可以進行矩陣變化的值.

1.單位矩陣

計算pout的單位矩陣

d3dxmatrixidentity

d3dxmatrix * d3dxmatrixidentity(

d3dxmatrix * pout);

2.轉置

把pm轉置成pout

d3dxmatrixtranspose

d3dxmatrix * d3dxmatrixtranspose(

d3dxmatrix *pout,

const d3dxmatrix *pm);

3.求逆

計算pm的逆矩陣pout, pdeterminant為0

d3dxmatrixinverse

d3dxmatrix * d3dxmatrixinverse(

d3dxmatrix *pout,

float *pdeterminant,

const d3dxmatrix *pm);

4.建立平移矩陣

產生乙個平移矩陣pout,把其結果與要平移的矩陣進行叉乘

d3dxmatrixtranslation

d3dxmatrix* d3dxmatrixtranslation(

d3dxmatrix *pout,

float x,

float y,

float z);

5.建立旋轉矩陣

產生乙個旋轉矩陣pout,把其結果與要旋轉的矩陣進行叉乘

d3dxmatrixrotationx

builds a matrix that rotates around the x-axis.

d3dxmatrix * d3dxmatrixrotationx(

d3dxmatrix *pout,

float angle);

6.建立放大&縮放矩陣

產生乙個放大&縮放矩陣pout,把其結果與要放大&縮放的矩陣進行叉乘

d3dxmatrixscaling

d3dxmatrix * d3dxmatrixscaling(

d3dxmatrix *pout,

float sx,

float sy,

float sz);

注意4,5,6都是建立乙個變化矩陣,而不是把原來的矩陣進行變化!

相關**參考見:http://download.csdn.net/source/1777759

DirectX常用巨集

收集於網路 一 多重取樣 列舉 d3dmultisample type 極別選擇 d3dmultisample none 禁用s d3dmultisample 1 sample d3dmultisample 2 sample d3dmultisample 3 sample d3dmultisampl...

矩陣 DirectX與OpenGL的不同

矩陣是三維圖形學中不可或缺的部分,幾乎所有和變換相關的操作都涉及矩陣,世界變換,檢視變換,投影變換,視口變換無一不需要矩陣,但是當今的兩大主流圖形庫directx和opengl對矩陣操作卻有著細微的差別,大多數的圖形學書籍都以opengl為基礎進行闡述,遊戲程式設計類的書籍則更多使用directx,...

矩陣 DirectX與OpenGL的不同

矩陣是三維圖形學中不可或缺的部分,幾乎所有和變換相關的操作都涉及矩陣,世界變換,檢視變換,投影變換,視口變換無一不需要矩陣,但是當今的兩大主流圖形庫directx和opengl對矩陣操作卻有著細微的差別,大多數的圖形學書籍都以opengl為基礎進行闡述,遊戲程式設計類的書籍則更多使用directx,...