SetTransform
求转置矩阵:
D3DXMATRIX *D3DXMatrixTranspose(
D3DXMATRIX *pOut,//返回的结果
CONST D3DXMATRIX *pM );//目标矩阵
求逆矩阵:
D3DXMATRIX *D3DXMatrixInverse(
D3DXMATRIX *pOut,//返回的结果
FLOAT *pDeterminant,//设为0
CONST D3DXMATRIX *pM );//目标矩阵
平移:
D3DXMATRIX *D3DXMatrixTranslation(
D3DXMATRIX* pOut,//返回的结果
FLOAT x, //X轴上的平移量
FLOAT y, //Y轴上的平移量
FLOAT z) //Z轴上的平移量
绕X轴旋转:
D3DXMATRIX *D3DXMatrixRotationX(
D3DXMATRIX* pOut, //返回的结果
FLOAT Angle //旋转的弧度
);
绕Y轴旋转:
D3DXMATRIX *D3DXMatrixRotationY(
D3DXMATRIX* pOut, //返回的结果
FLOAT Angle //旋转的弧度
);
绕Z轴旋转:
D3DXMATRIX *D3DXMatrixRotationZ(
D3DXMATRIX* pOut, //返回的结果
FLOAT Angle //旋转的弧度
);
绕指定轴旋转:
D3DXMATRIX *D3DXMatrixRotationAxis(
D3DXMATRIX *pOut,//返回的结果
CONST D3DXVECTOR3 *pV,//指定轴的向量
FLOAT Angle//旋转的弧度
);
缩放:
D3DXMATRIX *D3DXMatrixScaling(
D3DXMATRIX* pOut, //返回的结果
FLOAT sx, //X轴上缩放的量
FLOAT sy, //Y轴上缩放的量
FLOAT sz //Z轴上缩放的量
);
遇到的问题:
1.自转=旋转矩阵*平移矩阵
2.公转=平移矩阵*旋转矩阵
3.D3DXMatrixTranslation(&A,…)等矩阵变换如果写在if中那么A为初始化状态,渲染出错!