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

要求

要求
标头
D3dx9math.h

D3dx9.lib

另请参阅

数学函数

D3DXMatrixAffineTransformation

转换 (Direct3D 9)