Функция XMQuaternionMultiply (directxmath.h)

Вычисляет произведение двух кватернионов.

Синтаксис

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

Параметры

[in] Q1

Первый кватернион.

[in] Q2

Второй кватернион.

Возвращаемое значение

Возвращает произведение двух кватернионов как Q2*Q1.

Комментарии

Функции кватерниона DirectXMath используют 4-векторный XMVECTOR для представления кватернионов, где компоненты 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 для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и Windows Phone 8 приложений.

Требования

Требование Значение
Целевая платформа Windows
Header directxmath.h

См. также раздел

Функции кватерниона библиотеки DirectXMath