脐带章制作:D3DXMATRIX

来源:百度文库 编辑:九乡新闻网 时间:2024/04/30 01:46:25
D3DXMATRIX重载了很多运算符,使得矩阵的运算很简单。矩阵的运算方法我不打算多说了,下面只介绍和矩阵性质有关的三个函数。
产生一个单位矩阵:D3DXMATRIX *D3DXMatrixIdentity(
D3DXMATRIX *pout);//返回结果
求转置矩阵:D3DXMATRIX *D3DXMatrixTranspose(
D3DXMATRIX *pOut,//返回的结果
CONST D3DXMATRIX *pM );//目标矩阵
求逆矩阵:D3DXMATRIX *D3DXMatrixInverse(
D3DXMATRIX *pOut,//返回的结果
FLOAT *pDeterminant,//设为0
CONST D3DXMATRIX *pM );//目标矩阵
至于什么是单位矩阵,什么是转置矩阵,什么是逆矩阵我就不说了,可以看一下线性代数的书,一看就明白了。简单的加减乘除法可以使用D3DXMATRIX结构体里面重载的运算符。两个矩阵相乘也可以用函数来实现,这将在接下来的矩阵变换中讲到。
·矩阵变换
矩阵的基本变换有三种:平移,旋转和缩放。
平移:
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轴上缩放的量
);
利用IDirect3DDevice9接口的SetRenderState函数可修改或重新设置Direct3D设备的背面剔除的渲染状态,当然该函数的功能是十分丰富的,不局限于设置背面剔除状态,