DirectX的常用矩阵函数

矩阵的计算

基本运算
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的常用矩阵函数)