XMQuaternionMultiply 函数 (directxmath.h)

计算两个四元数的乘积。

语法

XMVECTOR XM_CALLCONV XMQuaternionMultiply(
  [in] FXMVECTOR Q1,
  [in] FXMVECTOR Q2
) noexcept;

参数

[in] Q1

第一个四元数。

[in] Q2

第二个四元数。

返回值

返回 Q2*Q1 形式的两个四元数的乘积。

注解

DirectXMath 四元数函数使用 XMVECTOR 4 向量表示四元数,其中 X、Y 和 Z 分量是矢量部分,W 分量是标量部分。

结果表示旋转 Q1 后跟旋转 Q2,以便与 XMMatrixMulplity 串联保持一致,因为此函数通常用于串联表示旋转 (即返回 Q2*Q1) 。

此函数计算与以下伪代码等效的 :


XMVECTOR Result;
Result.x = (Q2.w * Q1.x) + (Q2.x * Q1.w) + (Q2.y * Q1.z) - (Q2.z * Q1.y);
Result.y = (Q2.w * Q1.y) - (Q2.x * Q1.z) + (Q2.y * Q1.w) + (Q2.z * Q1.x);
Result.z = (Q2.w * Q1.z) + (Q2.x * Q1.y) - (Q2.y * Q1.x) + (Q2.z * Q1.w);
Result.w = (Q2.w * Q1.w) - (Q2.x * Q1.x) - (Q2.y * Q1.y) - (Q2.z * Q1.z);
return Result;
    

平台要求

Microsoft Visual Studio 2010 或 Microsoft Visual Studio 2012 与 Windows SDK for Windows 8。 支持 Win32 桌面应用、Windows 应用商店应用和 Windows Phone 8 应用。

要求

要求
目标平台 Windows
标头 directxmath.h

另请参阅

DirectXMath 库四元数函数