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为初始化状态,渲染出错!

原文地址:https://www.cnblogs.com/hhdllhflower/p/2711733.html