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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值