Compartilhar via


Função XMQuaternionSquad (directxmath.h)

Interpola entre quatro quatérnios de unidade, usando interpolação de quadrângulo esférico.

Sintaxe

XMVECTOR XM_CALLCONV XMQuaternionSquad(
  [in] FXMVECTOR Q0,
  [in] FXMVECTOR Q1,
  [in] FXMVECTOR Q2,
  [in] GXMVECTOR Q3,
  [in] float     t
) noexcept;

Parâmetros

[in] Q0

Quatérnio da primeira unidade.

[in] Q1

Quatérnio de segunda unidade.

[in] Q2

Quatérnio de terceira unidade.

[in] Q3

Quatérnio de quarta unidade.

[in] t

Fator de controle de interpolação.

Valor retornado

Retorna o quatérnio interpolado. Se Q0, Q1, Q2 e Q3 não forem todos quatérnios de unidade, o quatérnio retornado será indefinido.

Comentários

As funções de quatérnio DirectXMath usam um vetor XMVECTOR 4 para representar quatérnios, em que os componentes X, Y e Z são a parte vetor e o componente W é a parte escalar.

O uso desse método requer alguma configuração antes de seu uso. Consulte XMQuaternionSquadSetup para obter detalhes.

O exemplo a seguir mostra como usar um conjunto de chaves de quatérnio (Q0, Q1, Q2, Q3) para calcular os pontos de quadrângulo interno (A, B, C). Isso garante que as tangentes sejam contínuas entre segmentos adjacentes.

// Rotation about the z-axis
XMVECTOR Q0 = XMVectorSet(0,  0, 0.707f, -.707f);
XMVECTOR Q1 = XMVectorSet(0,  0, 0.000f, 1.000f);
XMVECTOR Q2 = XMVectorSet(0,  0, 0.707f, 0.707f);
XMVECTOR Q3 = XMVectorSet(0,  0, 1.000f, 0.000f);

XMVECTOR A, B, C;
XMQuaternionSquadSetup(&A, &B, &C, Q0, Q1, Q2, Q3);

XMVECTOR result = XMQuaternionSquad(Q1, A, B, C, 0.5f);
// result is a rotation of 45 degrees around the z-axis

Requisitos da plataforma

Com suporte para aplicativos da área de trabalho Win32, aplicativos da Windows Store e aplicativos Windows Phone 8.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho directxmath.h

Confira também