Fungsi D3DXVec2Hermite (D3dx9math.h)

Catatan

Pustaka utilitas D3DX tidak digunakan lagi. Kami menyarankan agar Anda menggunakan DirectXMath sebagai gantinya.

Melakukan interpolasi spline Hermite, menggunakan vektor 2D yang ditentukan.

Sintaks

D3DXVECTOR2* D3DXVec2Hermite(
  _Inout_       D3DXVECTOR2 *pOut,
  _In_    const D3DXVECTOR2 *pV1,
  _In_    const D3DXVECTOR2 *pT1,
  _In_    const D3DXVECTOR2 *pV2,
  _In_    const D3DXVECTOR2 *pT2,
  _In_          FLOAT       s
);

Parameter

pOut [masuk, keluar]

Jenis: D3DXVECTOR2*

Arahkan ke struktur D3DXVECTOR2 yang merupakan hasil operasi.

pV1 [in]

Jenis: const D3DXVECTOR2*

Penunjuk ke struktur D3DXVECTOR2 sumber, vektor posisi.

pT1 [in]

Jenis: const D3DXVECTOR2*

Penunjuk ke struktur D3DXVECTOR2 sumber, vektor tangen.

pV2 [in]

Jenis: const D3DXVECTOR2*

Penunjuk ke struktur D3DXVECTOR2 sumber, vektor posisi.

pT2 [in]

Jenis: const D3DXVECTOR2*

Penunjuk ke struktur D3DXVECTOR2 sumber, vektor tangen.

s [in]

Jenis: FLOAT

Faktor pembobotan. Lihat Keterangan.

Nilai kembali

Jenis: D3DXVECTOR2*

Pointer ke struktur D3DXVECTOR2 yang merupakan hasil dari interpolasi spline Hermite.

Keterangan

Fungsi D3DXVec2Hermite menginterpolasi dari (posisiA, tangentA) ke (posisiB, tangenB) menggunakan interpolasi spline Hermite.

Interpolasi spline adalah generalisasi spline kemudahan dan kemudahan keluar. Ramp adalah fungsi Q dengan properti berikut.

T=As³ + Bs² + Cs + D (dan oleh karena itu, Q's) = 3As² + 2B + C)

a) T(0) = v1, jadi T'(0) = t1

b) T(1) = v2, jadi T'(1) = t2

v1 adalah konten pV1, v2 dalam konten pV2, t1 adalah konten pT1, dan t2 adalah konten pT2.

Properti ini digunakan untuk memecahkan masalah untuk A, B, C, D.

D = v1  (from a)
C = t1  (from a)
3A + 2B = t2 - t-1 (substituting for C)
A + B = v2 - v1 - t1 (substituting for C and D)

Colokkan solusi untuk A,B,C, dan D untuk menghasilkan Q.

A = 2v1 - 2v2 + t2 + t1
B = 3v2 - 3v1 - 2t1 - t2
C = t1
D = v1

Ini menghasilkan:

T= (2v1 - 2v2 + t2 + t1)s³ + (3v2 - 3v1 - 2t1 - t2)s² + t1s + v1

Yang dapat disusun ulang sebagai:

T= (2s³ - 3s² + 1)v1 + (-2s³ + 3s²)v2 + (s³ - 2s² + s)t1 + (s³ - s²)t2

Spline pertapi berguna untuk mengontrol animasi karena kurva berjalan melalui semua titik kontrol. Selain itu, karena posisi dan tangen secara eksplisit ditentukan di ujung setiap segmen, mudah untuk membuat kurva berkelanjutan C2 selama Anda memastikan bahwa posisi awal dan tangen Anda cocok dengan nilai akhir segmen terakhir.

Nilai yang dikembalikan untuk fungsi ini adalah nilai yang sama yang dikembalikan dalam parameter pOut. Dengan cara ini, fungsi D3DXVec2Hermite dapat digunakan sebagai parameter untuk fungsi lain.

Persyaratan

Persyaratan Nilai
Header
D3dx9math.h
Pustaka
D3dx9.lib

Lihat juga

Fungsi matematika