Bagikan melalui


Fungsi XMQuaternionSquad (directxmath.h)

Menginterpolasi antara empat kuaternion unit, menggunakan interpolasi kuadrangle bulat.

Sintaks

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

Parameter

[in] Q0

Kuaternion unit pertama.

[in] Q1

Kuaternion unit kedua.

[in] Q2

Kuaternion unit ketiga.

[in] Q3

Kuaternion unit keempat.

[in] t

Faktor kontrol interpolasi.

Nilai kembali

Mengembalikan kuaternion terinterpolasi. Jika Q0, Q1, Q2, dan Q3 tidak semua kuaternion unit, kuaternion yang dikembalikan tidak terdefinisi.

Keterangan

Fungsi kuaternion DirectXMath menggunakan XMVECTOR 4-vektor untuk mewakili kuaternion, di mana komponen X, Y, dan Z adalah bagian vektor dan komponen W adalah bagian skalar.

Penggunaan metode ini memerlukan beberapa penyiapan sebelum digunakan. Lihat XMQuaternionSquadSetup untuk detailnya.

Contoh berikut menunjukkan cara menggunakan sekumpulan kunci kuaternion (Q0, Q1, Q2, Q3) untuk menghitung titik quadrangle dalam (A, B, C). Ini memastikan bahwa tangen terus menerus di seluruh segmen yang berbatasan.

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

Persyaratan Platform

Didukung untuk aplikasi desktop Win32, aplikasi Windows Store, dan aplikasi Windows Phone 8.

Persyaratan

   
Target Platform Windows
Header directxmath.h

Lihat juga