头文件: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 //远平面的距离
); //三维物体投影到平面