Función XMQuaternionSquad (directxmath.h)

Interpola entre cuatro cuaterniones de unidad, usando interpolación esférica cuadrángulo.

Sintaxis

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

Parámetros

[in] Q0

Primer cuaternión de unidad.

[in] Q1

Segundo cuaternión de unidad.

[in] Q2

Tercer cuaternión de unidad.

[in] Q3

Cuarto cuaternión de unidad.

[in] t

Factor de control de interpolación.

Valor devuelto

Devuelve el cuaternión interpolado. Si Q0, Q1, Q2 y Q3 no son todos los cuaterniones de unidad, el cuaternión devuelto no está definido.

Comentarios

Las funciones de cuaternión directXMath usan un vector XMVECTOR 4 para representar cuaterniones, donde los componentes X, Y y Z son la parte vectorial y el componente W es la parte escalar.

El uso de este método requiere alguna configuración antes de su uso. Consulte XMQuaternionSquadSetup para obtener más información.

En el ejemplo siguiente se muestra cómo usar un conjunto de claves de cuaternión (Q0, Q1, Q2, Q3) para calcular los puntos cuadrángulos internos (A, B, C). Esto garantiza que las tangentes sean continuas entre segmentos adyacentes.

// 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 de la plataforma

Compatible con aplicaciones de escritorio Win32, aplicaciones de la Tienda Windows y Windows Phone 8 aplicaciones.

Requisitos

   
Plataforma de destino Windows
Encabezado directxmath.h

Consulte también