Funzione D3DXVec2Hermite (D3DX10Math.h)
Nota
La libreria di utilità D3DX10 è deprecata. È consigliabile usare invece DirectXMath .
Esegue un'interpolazione spline hermite usando i vettori 2D specificati.
Sintassi
D3DXVECTOR2* D3DXVec2Hermite(
_Inout_ D3DXVECTOR2 *pOut,
_In_ const D3DXVECTOR2 *pV1,
_In_ const D3DXVECTOR2 *pT1,
_In_ const D3DXVECTOR2 *pV2,
_In_ const D3DXVECTOR2 *pT2,
_In_ FLOAT s
);
Parametri
-
pOut [in, out]
-
Tipo: D3DXVECTOR2*
Puntatore all'oggetto D3DXVECTOR2 risultante dall'operazione.
-
pV1 [in]
-
Tipo: const D3DXVECTOR2*
Puntatore a una struttura D3DXVECTOR2 di origine, vettore di posizione.
-
pT1 [in]
-
Tipo: const D3DXVECTOR2*
Puntatore a una struttura D3DXVECTOR2 di origine, un vettore tangente.
-
pV2 [in]
-
Tipo: const D3DXVECTOR2*
Puntatore a una struttura D3DXVECTOR2 di origine, vettore di posizione.
-
pT2 [in]
-
Tipo: const D3DXVECTOR2*
Puntatore a una struttura D3DXVECTOR2 di origine, un vettore tangente.
-
s [in]
-
Tipo: FLOAT
Fattore di ponderazione. Vedere la sezione Osservazioni.
Valore restituito
Tipo: D3DXVECTOR2*
Puntatore a una struttura D3DXVECTOR2 risultante dall'interpolazione spline hermite.
Commenti
La funzione D3DXVec2Hermite 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.
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)
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 D3DXVec2Hermite può essere usata come parametro per un'altra funzione.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche