D3DXVec4CatmullRom-Funktion (D3dx9math.h)
Hinweis
Die D3DX-Hilfsprogrammbibliothek ist veraltet. Es wird empfohlen, stattdessen DirectXMath zu verwenden.
Führt eine Catmull-Rom Interpolation unter Verwendung der angegebenen 4D-Vektoren aus.
Syntax
D3DXVECTOR4* D3DXVec4CatmullRom(
_Inout_ D3DXVECTOR4 *pOut,
_In_ const D3DXVECTOR4 *pV0,
_In_ const D3DXVECTOR4 *pV1,
_In_ const D3DXVECTOR4 *pV2,
_In_ const D3DXVECTOR4 *pV3,
_In_ FLOAT s
);
Parameter
-
pOut [in, out]
-
Typ: D3DXVECTOR4*
Zeiger auf die D3DXVECTOR4-Struktur , die das Ergebnis des Vorgangs ist.
-
pV0 [in]
-
Typ: const D3DXVECTOR4*
Zeiger auf eine D3DXVECTOR4-Quellstruktur , einen Positionsvektor.
-
pV1 [in]
-
Typ: const D3DXVECTOR4*
Zeiger auf eine D3DXVECTOR4-Quellstruktur , einen Positionsvektor.
-
pV2 [in]
-
Typ: const D3DXVECTOR4*
Zeiger auf eine D3DXVECTOR4-Quellstruktur , einen Positionsvektor.
-
pV3 [in]
-
Typ: const D3DXVECTOR4*
Zeiger auf eine D3DXVECTOR4-Quellstruktur , einen Positionsvektor.
-
s [in]
-
Typ: FLOAT
Gewichtungsfaktor. Siehe Hinweise.
Rückgabewert
Typ: D3DXVECTOR4*
Zeiger auf eine D3DXVECTOR4-Struktur , die das Ergebnis der Catmull-Rom Interpolation ist.
Bemerkungen
Bei vier Punkten (p1, p2, p3, p4) finden Sie eine Funktion Q(s) so, dass:
Q(s) is a cubic function.
Q(s) interpolates between p2 and p3 as s ranges from 0 to 1.
Q(s) is parallel to the line joining p1 to p3 when s is 0.
Q(s) is parallel to the line joining p2 to p4 when s is 1.
Die Catmull-Rom Spline kann von der Spline Hermite abgeleitet werden, indem Sie Folgendes festlegen:
v1 = p2
v2 = p3
t1 = (p3 - p1) / 2
t2 = (p4 - p2) / 2
Dabei gilt Folgendes:
v1 ist der Inhalt von pV0.
v2 im Inhalt von pV1.
p3 ist der Inhalt von pV2.
p4 ist der Inhalt von pV3.
Verwenden der Splinegleichung hermite:
Q(s) = (2s3 - 3s2 + 1)v1 + (-2s3 + 3s2)v2 + (s3 - 2s2 + s)t1 + (s3 - s2)t2
und das Ersetzen von v1, v2, t1, t2 ergibt Folgendes:
Q(s) = (2s3 - 3s2 + 1)p2 + (-2s3 + 3s2)p3 + (s3 - 2s2 + s)(p3 - p1) / 2 + (s3 - s2)(p4 - p2) / 2
Dies kann wie folgt neu angeordnet werden:
Q(s) = [(-s3 + 2s2 - s)p1 + (3s3 - 5s2 + 2)p2 + (-3s3 + 4s2 + s)p3 + (s3 - s2)p4] / 2
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|
Siehe auch