D3D中的矩阵变换公式

【平移矩阵】
1     0     0     0
0     1     0     0
0     0     1     0
x      y      z    1

 

◆DirectX 9.0 函数实现◆
D3DXMATRIX* D3DXMatrixTranslation(
                        D3DXMATRIX *pOut,   // 返回的平移后的结果
                        FLOAT x,                    // x轴上的平移量
                        FLOAT y,                   // y轴上的平移量
                        FLOAT z);                  // z轴上的平移量

 

 

 

 

【绕X轴的旋转矩阵】
1      0         0      0
0   cosΘ   sinΘ    0
0   -sinΘ   cosΘ   0
0      0         0      1

 

 

 

 

【绕Y轴的旋转矩阵】
cosΘ   0   -sinΘ    0
   0      1       0      0
sinΘ    0   cosΘ    0
   0      0       0      1

 

 

 

 

【绕Z轴的旋转矩阵】
cosΘ   sinΘ    0    0
-sinΘ  cosΘ   0     0
   0        0      1     0
   0        0      0     1

 

◆DirectX 9.0 函数实现◆

// 创建一个绕X轴旋转的矩阵
D3DXMATRIX * D3DXMatrixRotationX(
                    D3DXMATRIX *pOut, // 指向D3DXMATRIX 结构的操作结果矩阵
                    FLOAT Angle);          // 绕着X轴旋转的角度(单位是弧度)。角度计算方法是当朝着旋转轴的原点看去时,顺时针方向为正值

 

// 创建一个绕Y轴旋转的矩阵
D3DXMATRIX * D3DXMatrixRotationY(
                    D3DXMATRIX *pOut, // 指向D3DXMATRIX 结构的操作结果矩阵
                    FLOAT Angle);          // 绕着Y轴旋转的角度(单位是弧度)

// 创建一个绕Z轴旋转的矩阵
D3DXMATRIX * D3DXMatrixRotationZ(
                    D3DXMATRIX *pOut, // 指向D3DXMATRIX 结构的操作结果矩阵
                    FLOAT Angle);          // 绕着Z轴旋转的角度(单位是弧度)

 

 

其他:

// 创建一个可以绕着任意轴旋转的旋转矩阵
D3DXMATRIX * D3DXMatrixRotationAxis(
                    D3DXMATRIX *pOut,               // 指向D3DXMATRIX 结构的操作结果矩阵
                    CONST D3DXVECTOR3 *pV, // 指向任意轴向量
                    FLOAT Angle);                       // 绕着任意轴旋转的角度(单位是弧度)。

// 用指定的绕Y轴角度,绕X轴角度和Z轴角度创建旋转矩阵
D3DXMATRIX * D3DXMatrixRotationYawPitchRoll(
                    D3DXMATRIX *pOut,  // 指向D3DXMATRIX 结构的操作结果矩阵
                    FLOAT Yaw,     // 绕着Y轴旋转角度(单位弧度)
                    FLOAT Pitch,    // 绕着X轴旋转角度(单位弧度)
                    FLOAT Roll);    // 绕着Z轴旋转角度(单位弧度)

 

// 从一个四元组创建一个旋转矩阵
D3DXMATRIX * D3DXMatrixRotationQuaternion(
                    D3DXMATRIX *pOut,                         // 指向D3DXMATRIX 结构的操作结果矩阵
                    CONST D3DXQUATERNION *pQ);    // 指向 D3DXQUATERNION 结构的四元组

 

 

 

 

【放大/缩小矩阵】
sx    0   0    0
 0   sy   0    0
 0    0   sz   0
 0    0    0   1

 

◆DirectX 9.0 函数实现◆

// 创建一个沿着X,Y和Z轴方向缩放矩阵
D3DXMATRIX * D3DXMatrixScaling(
                    D3DXMATRIX *pOut,      // 指向D3DXMATRIX 结构的操作结果矩阵
                    FLOAT sx,      // 沿着X轴的缩放系数
                    FLOAT sy,      // 沿着Y轴的缩放系数
                    FLOAT sz);     // 沿着Z轴的缩放系数

 

 

 

 

【坐标系变换矩阵】

px    qx    rx   0
py    qy    ry   0
pz    qz    rz   0
0      0     0    1   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值