D3DVECTOR3:d3d提供的向量
向量的点积函数
FLOAT D3DXVec3Dot(CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2);
向量的叉乘函数
FLOAT D3DXVec3Cross(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2);
D3D矩阵
通常只使用4×4的矩阵和1×4的行向量
矩阵的乘法不具有交换性
D3DX中表示4×4的矩阵:D3DXMATRIX
矩阵的转置D3DMATRIX A(...);
D3DMATRIX B;
D3DMatrixTranspose(&B,&A) ; //B=A的转置
矩阵求逆
D3DXMATRIX *D3DXMatrixInverse(
D3DXMATRIX *pOut;
FLOAT* pDeterminant,
CONST D3DXMATRIX *pM
);
矩阵的平移
D3DXMATRIX *D3DXMatrixTranslation(
D3DXMATRIX* pOut,
FLOAT x,//沿x轴平移距离
FLOAT y,//沿y轴平移距离
FLOAT z//沿z轴平移距离
);
绕X轴旋转
D3DXMATRIX* D3DXMatrixRotationX(
D3DXMATRIX *pOut;
FLOAT Angle;
);
绕y,z轴转动同理
矩阵的比例变换
D3DXMATRIX* D3DXMatrixScaling(
D3DXMATRIX* pOut,
FLOAT sx,//沿x轴缩放比例
FLOAT sy,沿y轴缩放比例
FLOAT sz//沿z轴缩放比例
);
d3d进行点的变换
D3DXVECTOR* D3DXVec3TransformCoord(
D3DXVECTOR* pOut,
CONST D3DXVECTOR* pV,
CONST D3DXMATRIX* pM //变换矩阵
);
D3DXVECTOR* D3DXVec3TransformNormal(
D3DXVECTOR* pOut,
CONST D3DXVECTOR* pV,
CONST D3DXMATRIX* pM //变换矩阵
);