Функция D3DXQuaternionMultiply (D3dx9math.h)

Примечание

Служебная библиотека D3DX устарела. Вместо этого рекомендуется использовать DirectXMath .

Умножает два кватерниона.

Синтаксис

D3DXQUATERNION* D3DXQuaternionMultiply(
  _Inout_       D3DXQUATERNION *pOut,
  _In_    const D3DXQUATERNION *pQ1,
  _In_    const D3DXQUATERNION *pQ2
);

Параметры

pOut [in, out]

Тип: D3DXQUATERNION*

Указатель на структуру D3DXQUATERNION , которая является результатом операции.

pQ1 [in]

Тип: const D3DXQUATERNION*

Указатель на исходную структуру D3DXQUATERNION .

pQ2 [in]

Тип: const D3DXQUATERNION*

Указатель на исходную структуру D3DXQUATERNION .

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

Тип: D3DXQUATERNION*

Указатель на структуру D3DXQUATERNION , которая является произведением двух кватернионов.

Комментарии

Результат представляет поворот Q1, за которым следует поворот Q2 (Out = Q2 * Q1). Это делается для того, чтобы D3DXQuaternionMultiply поддерживал ту же семантику, что и D3DXMatrixMultiply , так как кватернионы единиц можно рассматривать как другой способ представления матриц поворота.

Преобразования объединяются в одном порядке для функций D3DXQuaternionMultiply и D3DXMatrixMultiply . Например, если mX и mY представляют одни и те же повороты, что и qX и qY, m и q будут представлять одни и те же повороты.

D3DXMatrixMultiply(&m, &mX, &mY);
D3DXQuaternionMultiply(&q, &qX, &qY);

Умножение кватернионов не является коммутативным.

Возвращаемое значение для этой функции совпадает с значением, возвращаемым в параметре pOut . Таким образом, функцию D3DXQuaternionMultiply можно использовать в качестве параметра для другой функции.

Используйте D3DXQuaternionNormalize для любых входных данных кватерниона, которые еще не нормализованы.

Требования

Требование Значение
Заголовок
D3dx9math.h
Библиотека
D3dx9.lib

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

Математические функции

D3DXMatrixMultiply