XMVector3TransformCoord 函数是 DirectXMath 库中的一个函数,用于对一个3D向量进行仿射变换,但是只考虑变换后的坐标部分,不考虑齐次坐标。

以下是 XMVector3TransformCoord 函数的声明:
XMVECTOR XMVector3TransformCoord(
  FXMVECTOR V,
  CXMMATRIX M
);

  •  V: 要变换的3D向量。

  •  M: 变换矩阵。


函数返回一个向量,表示输入向量经过矩阵变换后的坐标部分。

以下是一个简单的示例:
#include <DirectXMath.h>

// ...

XMVECTOR vector = XMVectorSet(1.0f, 2.0f, 3.0f, 1.0f); // 注意:这里的 w 分量设置为 1.0f
XMMATRIX transformationMatrix = XMMatrixTranslation(1.0f, 2.0f, 3.0f);

// 对向量进行仿射变换,但只考虑坐标部分
XMVECTOR transformedVector = XMVector3TransformCoord(vector, transformationMatrix);

// transformedVector 包含了 vector 经过 transformationMatrix 变换后的坐标部分

在这个示例中,transformedVector 包含了 vector 经过 transformationMatrix 变换后的坐标部分。这对于执行平移、旋转等变换并获取变换后坐标非常有用。




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