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