XMMatrixTransformation 是DirectX 数学库(DirectXMath)中的一个函数,用于构建一个仿射变换矩阵。这个函数的原型如下:
XMMATRIX XMMatrixTransformation(
  FXMVECTOR ScalingOrigin, 
  FXMVECTOR ScalingOrientationQuaternion, 
  FXMVECTOR Scaling, 
  FXMVECTOR RotationOrigin, 
  FXMVECTOR RotationQuaternion, 
  FXMVECTOR Translation
);

这个函数用于创建一个仿射变换矩阵,该矩阵可以包含缩放、旋转和平移。参数的含义如下:

  •  ScalingOrigin: 缩放的原点。

  •  ScalingOrientationQuaternion: 缩放的方向,使用四元数表示。

  •  Scaling: 缩放的因子。

  •  RotationOrigin: 旋转的原点。

  •  RotationQuaternion: 旋转的四元数。

  •  Translation: 平移的向量。


这个函数返回一个 XMMATRIX 类型的矩阵,表示通过指定的变换参数构建的仿射变换矩阵。

以下是一个使用 XMMatrixTransformation 函数的简单示例:
#include <DirectXMath.h>

// ...

// 创建一个仿射变换矩阵,其中包含缩放、旋转和平移
XMMATRIX transformationMatrix = XMMatrixTransformation(
    XMVectorSet(0, 0, 0, 0),        // ScalingOrigin
    XMVectorSet(0, 0, 0, 1),        // ScalingOrientationQuaternion
    XMVectorSet(2, 2, 2, 0),        // Scaling
    XMVectorSet(0, 0, 0, 0),        // RotationOrigin
    XMQuaternionRotationRollPitchYaw(0, XM_PI / 4, 0),  // RotationQuaternion (45 degrees around Y-axis)
    XMVectorSet(1, 2, 3, 0)         // Translation
);

这里的示例将创建一个包含缩放、绕 Y 轴旋转 45 度和平移的仿射变换矩阵。


转载请注明出处:http://www.zyzy.cn/article/detail/26961/Win32 API/Directxmath.h/XMMatrixTransformation