Fungsi D3DXVec3Hermite (D3dx9math.h)
Catatan
Pustaka utilitas D3DX tidak digunakan lagi. Kami menyarankan agar Anda menggunakan DirectXMath sebagai gantinya.
Melakukan interpolasi spline Hermite, menggunakan vektor 3D yang ditentukan.
Sintaks
D3DXVECTOR3* D3DXVec3Hermite(
_Inout_ D3DXVECTOR3 *pOut,
_In_ const D3DXVECTOR3 *pV1,
_In_ const D3DXVECTOR3 *pT1,
_In_ const D3DXVECTOR3 *pV2,
_In_ const D3DXVECTOR3 *pT2,
_In_ FLOAT s
);
Parameter
-
pOut [masuk, keluar]
-
Jenis: D3DXVECTOR3*
Arahkan ke struktur D3DXVECTOR3 yang merupakan hasil operasi.
-
pV1 [in]
-
Jenis: const D3DXVECTOR3*
Penunjuk ke struktur D3DXVECTOR3 sumber, vektor posisi.
-
pT1 [in]
-
Jenis: const D3DXVECTOR3*
Penunjuk ke struktur D3DXVECTOR3 sumber, vektor tangen.
-
pV2 [in]
-
Jenis: const D3DXVECTOR3*
Penunjuk ke struktur D3DXVECTOR3 sumber, vektor posisi.
-
pT2 [in]
-
Jenis: const D3DXVECTOR3*
Penunjuk ke struktur D3DXVECTOR3 sumber, vektor tangen.
-
s [in]
-
Jenis: FLOAT
Faktor pembobotan. Lihat Keterangan.
Nilai kembali
Jenis: D3DXVECTOR3*
Penunjuk ke struktur D3DXVECTOR3 yang merupakan hasil dari interpolasi spline Hermite.
Keterangan
Fungsi D3DXVec3Hermite menginterpolasi dari (positionA, tangentA) ke (positionB, tangentB) 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 - t1 (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 D3DXVec3Hermite dapat digunakan sebagai parameter untuk fungsi lain.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk