Funzione D3DXVec4Hermite (D3dx9math.h)

Nota

La libreria di utilità D3DX è deprecata. È consigliabile usare invece DirectXMath .

Esegue un'interpolazione spline hermite usando i vettori 4D specificati.

Sintassi

D3DXVECTOR4* D3DXVec4Hermite(
  _Inout_       D3DXVECTOR4 *pOut,
  _In_    const D3DXVECTOR4 *pV1,
  _In_    const D3DXVECTOR4 *pT1,
  _In_    const D3DXVECTOR4 *pV2,
  _In_    const D3DXVECTOR4 *pT2,
  _In_          FLOAT       s
);

Parametri

pOut [in, out]

Tipo: D3DXVECTOR4*

Puntatore alla struttura D3DXVECTOR4 risultante dall'operazione.

pV1 [in]

Tipo: const D3DXVECTOR4*

Puntatore a una struttura D3DXVECTOR4 di origine, vettore di posizione.

pT1 [in]

Tipo: const D3DXVECTOR4*

Puntatore a una struttura D3DXVECTOR4 di origine, un vettore tangente.

pV2 [in]

Tipo: const D3DXVECTOR4*

Puntatore a una struttura D3DXVECTOR4 di origine, vettore di posizione.

pT2 [in]

Tipo: const D3DXVECTOR4*

Puntatore a una struttura D3DXVECTOR4 di origine, un vettore tangente.

s [in]

Tipo: FLOAT

Fattore di ponderazione. Vedere la sezione Osservazioni.

Valore restituito

Tipo: D3DXVECTOR4*

Puntatore a una struttura D3DXVECTOR4 che è il risultato dell'interpolazione spline di Hermite.

Commenti

La funzione D3DXVec4Hermite esegue l'interpolazione da (positionA, tangentA) a (positionB, tangentB) usando l'interpolazione spline hermite.

L'interpolazione spline è una generalizzazione della spline di facilità e facilità. La rampa è una funzione di Q(s) con le proprietà seguenti.

Q(s) = As² + Bs² + Cs + D (e quindi Q's) = 3As² + 2Bs + C)

a) Q(0) = v1, quindi Q'(0) = t1

b) Q(1) = v2, quindi Q'(1) = t2

v1 è il contenuto di pV1, v2 nel contenuto di pV2, t1 è il contenuto di pT1 e t2 è il contenuto di pT2.

Queste proprietà vengono usate per risolvere A, B, C, D.

Collegare le soluzioni per A, B, C e D per generare Q(s).

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

Il risultato è il seguente:

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

Che può essere riorganiato come segue:

Q(s) = (2s² - 3s² + 1)v1 + (-2s² + 3s²)v2 + (s Lt - 2s² + s)t1 + (s² - s²)t2

Le spline emite sono utili per controllare l'animazione perché la curva scorre attraverso tutti i punti di controllo. Inoltre, poiché la posizione e la tangente vengono specificate in modo esplicito alle estremità di ogni segmento, è facile creare una curva continua C2 purché si assicuri che la posizione iniziale e la tangente corrispondano ai valori finali dell'ultimo segmento.

Il valore restituito per questa funzione è lo stesso valore restituito nel parametro pOut. In questo modo, la funzione D3DXVec4Hermite può essere usata come parametro per un'altra funzione.

Requisiti

Requisito Valore
Intestazione
D3dx9math.h
Libreria
D3dx9.lib

Vedi anche

Funzioni matematiche