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 |