分享

D3DXMATRIX

 haodafeng_org 2011-01-08

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设备的背面剔除的渲染状态,当然该函数的功能是十分丰富的,不局限于设置背面剔除状态,

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多