D3D 常用矩阵转化函数

来源:互联网 发布:mysql教程linux 编辑:程序博客网 时间:2024/05/18 18:01

#1 单位矩阵

D3DXMATRIX *D3DXMatrixIdentity(
D3DXMATRIX *pout // 将矩阵转换为单位矩阵
);

例子

D3DXMATRIX M; D3DXMatrixIdentity( &M ); // M = 单位矩阵

 

#2 转置矩阵

D3DXMATRIX *D3DXMatrixTranspose(
D3DXMATRIX *pOut, // 输出的转置矩阵
CONST D3DXMATRIX *pM // 原矩阵
);

例子

D3DXMATRIX A(...); // 初始化矩阵A

D3DXMATRIX B;

D3DXMatrixTranspose( &B, &A ); // B = 输出的转置矩阵

 

#3 逆矩阵

D3DXMATRIX *D3DXMatrixInverse(
D3DXMATRIX *pOut, // 输出的逆矩阵
FLOAT *pDeterminant, // 除非是必需的,一般设为0
CONST D3DXMATRIX *pM // 原矩阵
);

例子

D3DXMATRIX A(...); // 初始化矩阵

D3DXMATRIX B;

D3DXMatrixInverse( &B, 0, &A ); // B = A的逆矩阵

 

#4 矩阵平移

 D3DXMATRIX *D3DXMatrixTranslation(

D3DXMATRIX* pOut, // 返回平移后的矩阵

FLOAT x, // x轴移动的单位

FLOAT y, // y轴移动的单位

FLOAT z // z轴移动的单位 );

 

#5 矩阵绕着x轴旋转(Y Z类似)

D3DXMATRIX *D3DXMatrixRotationX(

D3DXMATRIX* pOut, // 返回旋转后的矩阵

FLOAT Angle // Angle是旋转的弧度 );

 

#6 矩阵缩放

D3DXMATRIX *D3DXMatrixScaling(

D3DXMATRIX* pOut, // 返回缩放后的矩阵

FLOAT sx, // x轴缩放的比例

FLOAT sy, // y轴缩放的比例

FLOAT sz // z轴缩放的比例 );

 

#7 视图坐标的变换矩阵

D3DXMATRIX *D3DXMatrixLookAtLH(

D3DXMATRIX* pOut, // 指向返回的视图矩阵

CONST D3DXVECTOR3* pEye, // 照相机在世界坐标系的位置

CONST D3DXVECTOR3* pAt, // 照相机在世界坐标系的目标点

CONST D3DXVECTOR3* pUp // 世界坐标系的上方向(0, 1, 0)

);

Device->SetTransform(D3DTS_VIEW, &V);

#8 投影矩阵

D3DXMATRIX *D3DXMatrixPerspectiveFovLH(

D3DXMATRIX* pOut, // 返回的投影矩阵

FLOAT fovY, // 用弧度表示的视野角度vertical field of view angle in radians

FLOAT Aspect, // 宽高比

FLOAT zn, // 前裁剪面距离

FLOAT zf // 后裁剪面距离

);

Device->SetTransform(D3DTS_PROJECTION, &proj);

原创粉丝点击