Direct3D中常用的数学计算方法总结

头文件:d3dx9math.h
1.结构体D3DXVECTOR3
    说明:用以表示3D向量
    相关方法:
 +、-、*、/均已重载
 FLOAT D3DXVec3Length(CONST D3DXVECTOR3* pV) 计算向量长度
 D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV) 向量单位化
 FLOAT D3DXVec3Dot(CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2) 计算向量点积
 D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2) 计算向量的差积
2.结构体D3DXMATRIX
    说明:用以表示4X4矩阵
    相关方法:
 +、-、*、/均已重载
 D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX* pOut,FLOAT* pDeterminant,CONST D3DXMATRIX* pM)  矩阵求逆
 D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX* pOut,CONST D3DXMATRIX* pM)  矩阵转置
3.坐标变换
    相关方法:
 D3DXMATRIX* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV,CONST D3DXMATRIX* pM)   计算方法
 D3DXMATRIX* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV,CONST D3DXMATRIX* pM)    计算方法

 D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX* pOut,FLOAT x,FLOAT y,FLOAT z)  获得平移变换矩阵
 
 D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX* pOut,FLOAT sx,FLOAT sy,FLOAT sz)  获得缩放变换矩阵

 D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX* pOut,FLOAT Angle)  获得X轴方向的旋转变换矩阵
 D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX* pOut,FLOAT Angle)  获得Y轴方向的旋转变换矩阵
 D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX* pOut,FLOAT Angle)  获得Z轴方向的旋转变换矩阵
 D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX* pOut,CONST D3DXVECTOR3* pV,FLOAT Angle)  获得pV轴方向的旋转变换矩阵
4.结构体D3DXPLANE
    说明:用以表示一个平面
    相关方法:
 +、-、*、/均已重载
 D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE* pOut,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2,CONST D3DXVECTOR3* pV3)  三点确定一个平面
 D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE* pOut,CONST D3DXVECTOR3* pV,CONST D3DXVECTOR3* pNormal)  一点和一个法向量确定一个平面
 D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3* pOut,CONST D3DXPLANE* pP,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2) 求直线和平面的交点
 FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE* pP,CONST D3DXVECTOR3* pV)  确定点和平面的关系(>0表示在面的前方,反之在后方)  
 D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE* pOut,CONST D3DXPLANE* pP)   平面的单位化
5.一些具体的数学问题
    相关方法:
 D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(
  D3DXMATRIX* pOut,         //输出变换矩阵
  CONST D3DXVECTOR3* pEye,  //观察者位置点
  CONST D3DXVECTOR3* pAt,   //观察者的目标位置点
  CONST D3DXVECTOR3* pUp    //说明摄影坐标系的Y轴正方向
 );                                //世界坐标系向摄影坐标系转换
 
 D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(
  D3DXMATRIX* pOut,         //透视投影变换矩阵
  FLOAT fovy,               //y方向的张角
  FLOAT Aspect,             //投影窗口的宽高比
  FLOAT zn,                 //近平面的距离
  FLOAT zf    //远平面的距离
 );      //三维物体投影到平面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值