博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

directX中常用的数学计算

Posted on 2010-03-29 16:43  Zhiyett  阅读(447)  评论(0编辑  收藏  举报
■D3DX_PI

■向量或点D3DXVECTOR3
☆ 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) 计算向量的差积

■平面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表示在面的前方,<0在后方, =0在平面上)
☆ D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE* pOut,CONST D3DXPLANE* pP)  平面的单位化

■4*4矩阵D3DXMATRIX
☆ D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX* pOut,FLOAT* pDeterminant,CONST D3DXMATRIX* pM)  矩阵求逆
☆ D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX* pOut,CONST D3DXMATRIX* pM) 矩阵转置
☆ D3DXMATRIX * D3DXMatrixIdentity (D3DXMATRIX *pout) // 将矩阵转换为单位矩阵

■坐标变换
☆ 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轴方向的旋转变换矩阵

注意: D3DX 库也提供 D3DXVec3TransformCoordArray 和 D3DXVec3TransformNormalArray 来分别 变
换一个点数组和向量数组