Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Die D3DX10-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 den D3DXVECTOR4 , der 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 |
|
Siehe auch