D3DXMatrixAffineTransformation 函数 (D3dx9math.h)

注意

D3DX 实用工具库已弃用。 建议改用 DirectXMath

生成 3D 仿射转换矩阵。 NULL 参数被视为标识转换。

语法

D3DXMATRIX* D3DXMatrixAffineTransformation(
  _Inout_       D3DXMATRIX     *pOut,
  _In_          FLOAT          Scaling,
  _In_    const D3DXVECTOR3    *pRotationCenter,
  _In_    const D3DXQUATERNION *pRotation,
  _In_    const D3DXVECTOR3    *pTranslation
);

参数

pOut [in, out]

类型: D3DXMATRIX*

指向操作结果的 D3DXMATRIX 结构的指针。

缩放 [in]

类型: FLOAT

缩放因子。

pRotationCenter [in]

类型: const D3DXVECTOR3*

指向 D3DXVECTOR3 结构的指针,该结构是标识旋转中心的点。 如果此参数为 NULL,则标识 Mrc 矩阵将应用于“备注”中的公式。

pRotation [in]

类型: const D3DXQUATERNION*

指向指定旋转的 D3DXQUATERNION 结构的指针。 如果此参数为 NULL,则标识 Mr 矩阵将应用于“备注”中的公式。

pTranslation [in]

类型: const D3DXVECTOR3*

指向表示翻译的 D3DXVECTOR3 结构的指针。 如果此参数为 NULL,则将标识 Mt 矩阵应用于“备注”中的公式。

返回值

类型: D3DXMATRIX*

指向作为仿射转换矩阵的 D3DXMATRIX 结构的指针。

备注

此函数使用以下公式计算仿射转换矩阵,矩阵串联按从左到右的顺序计算:

Mout = Ms * (Mrc) ⁻¹ * Mr * Mrc * Mt

其中:

Mout = 输出矩阵 (pOut)

Ms = 缩放矩阵 (缩放)

Mrc = 旋转矩阵中心 (pRotationCenter)

Mr = 旋转矩阵 (pRotation)

Mt = 转换矩阵 (pTranslation)

此函数的返回值与 pOut 参数中返回的值相同。 这样, D3DXMatrixAffineTransformation 函数可用作另一个函数的参数。

对于 2D 仿射转换,请使用 D3DXMatrixAffineTransformation2D

要求

要求
标头
D3dx9math.h

D3dx9.lib

另请参阅

数学函数

D3DXMatrixTransformation

转换 (Direct3D 9)