D3DXMatrixTransformation 函数 (D3dx9math.h)
注意
D3DX 实用工具库已弃用。 建议改用 DirectXMath 。
生成转换矩阵。 NULL 参数被视为标识转换。
语法
D3DXMATRIX* D3DXMatrixTransformation(
_Inout_ D3DXMATRIX *pOut,
_In_ const D3DXVECTOR3 *pScalingCenter,
_In_ const D3DXQUATERNION *pScalingRotation,
_In_ const D3DXVECTOR3 *pScaling,
_In_ const D3DXVECTOR3 *pRotationCenter,
_In_ const D3DXQUATERNION *pRotation,
_In_ const D3DXVECTOR3 *pTranslation
);
参数
-
pOut [in, out]
-
类型: D3DXMATRIX*
指向操作结果的 D3DXMATRIX 结构的指针。
-
pScalingCenter [in]
-
类型: const D3DXVECTOR3*
指向 D3DXVECTOR3 结构的指针,标识缩放中心点。 如果此参数为 NULL,则标识 Msc 矩阵将应用于“备注”中的公式。
-
pScalingRotation [in]
-
类型: const D3DXQUATERNION*
指向指定缩放旋转的 D3DXQUATERNION 结构的指针。 如果此参数为 NULL,则标识 Msr 矩阵将应用于“备注”中的公式。
-
pScaling [in]
-
类型: const D3DXVECTOR3*
指向 D3DXVECTOR3 结构的指针,即缩放向量。 如果此参数为 NULL,则标识 Ms 矩阵将应用于“备注”中的公式。
-
pRotationCenter [in]
-
类型: const D3DXVECTOR3*
指向 D3DXVECTOR3 结构的指针,该结构是一个标识旋转中心的点。 如果此参数为 NULL,则标识 Mrc 矩阵将应用于“备注”中的公式。
-
pRotation [in]
-
类型: const D3DXQUATERNION*
指向指定旋转的 D3DXQUATERNION 结构的指针。 如果此参数为 NULL,则标识 Mr 矩阵将应用于“备注”中的公式。
-
pTranslation [in]
-
类型: const D3DXVECTOR3*
指向表示转换的 D3DXVECTOR3 结构的指针。 如果此参数为 NULL,则将标识 Mt 矩阵应用于“备注”中的公式。
返回值
类型: D3DXMATRIX*
指向作为转换矩阵的 D3DXMATRIX 结构的指针。
备注
此函数使用以下公式计算转换矩阵,矩阵串联按从左到右的顺序计算:
Mout = (Msc) ⁻¹ * (Msr) ⁻¹* Ms * Msr * Msc * (Mrc) ⁻¹* Mr * Mrc * Mt
其中:
Mout = 输出矩阵 (pOut)
Msc = 缩放中心矩阵 (pScalingCenter)
Msr = 缩放旋转矩阵 (pScalingRotation)
Ms = 缩放矩阵 (pScaling)
Mrc = 旋转矩阵中心 (pRotationCenter)
Mr = 旋转矩阵 (pRotation)
Mt = 转换矩阵 (pTranslation)
此函数的返回值与 pOut 参数中返回的值相同。 这样, D3DXMatrixTransformation 函数可用作另一个函数的参数。
对于 2D 转换,请使用 D3DXMatrixTransformation2D。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅