다음을 통해 공유


XMQuaternionSquad 함수(directxmath.h)

구형 사분면 보간을 사용하여 4개의 단위 쿼터니언 사이를 보간합니다.

구문

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

매개 변수

[in] Q0

첫 번째 단위 쿼터니언.

[in] Q1

두 번째 단위 쿼터니언.

[in] Q2

세 번째 단위 쿼터니언.

[in] Q3

네 번째 단위 쿼터니언.

[in] t

보간 제어 요소입니다.

반환 값

보간된 쿼터니언을 반환합니다. Q0, Q1, Q2Q3이 모든 단위 쿼터니언이 아닌 경우 반환된 쿼터니언은 정의되지 않습니다.

설명

DirectXMath 쿼터니언 함수는 XMVECTOR 4-벡터를 사용하여 쿼터니언을 나타냅니다. 여기서 X, Y 및 Z 구성 요소는 벡터 부분이고 W 구성 요소는 스칼라 부분입니다.

이 메서드를 사용하려면 사용하기 전에 몇 가지 설정이 필요합니다. 자세한 내용은 XMQuaternionSquadSetup 을 참조하세요.

다음 예제에서는 쿼터니언 키 집합(Q0, Q1, Q2, Q3)을 사용하여 내부 사분면 지점(A, B, C)을 계산하는 방법을 보여 줍니다. 이렇게 하면 인접한 세그먼트에서 탄젠트가 연속됩니다.

// 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

플랫폼 요구 사항

Win32 데스크톱 앱, Windows 스토어 앱 및 Windows Phone 8개 앱에서 지원됩니다.

요구 사항

   
대상 플랫폼 Windows
헤더 directxmath.h

추가 정보