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 D3DX-Hilfsprogrammbibliothek ist veraltet. Es wird empfohlen, stattdessen DirectXMath zu verwenden.
Führt eine Catmull-Rom Interpolation unter Verwendung der angegebenen 2D-Vektoren aus.
Syntax
D3DXVECTOR2* D3DXVec2CatmullRom(
_Inout_ D3DXVECTOR2 *pOut,
_In_ const D3DXVECTOR2 *pV0,
_In_ const D3DXVECTOR2 *pV1,
_In_ const D3DXVECTOR2 *pV2,
_In_ const D3DXVECTOR2 *pV3,
_In_ FLOAT s
);
Parameter
-
pOut [ein, aus]
-
Typ: D3DXVECTOR2*
Zeiger auf die D3DXVECTOR2-Struktur , die das Ergebnis des Vorgangs ist.
-
pV0 [in]
-
Typ: const D3DXVECTOR2*
Zeiger auf eine D3DXVECTOR2-Quellstruktur , einen Positionsvektor.
-
pV1 [in]
-
Typ: const D3DXVECTOR2*
Zeiger auf eine D3DXVECTOR2-Quellstruktur , einen Positionsvektor.
-
pV2 [in]
-
Typ: const D3DXVECTOR2*
Zeiger auf eine D3DXVECTOR2-Quellstruktur , einen Positionsvektor.
-
pV3 [in]
-
Typ: const D3DXVECTOR2*
Zeiger auf eine D3DXVECTOR2-Quellstruktur , einen Positionsvektor.
-
s [in]
-
Typ: FLOAT
Gewichtungsfaktor. Siehe Hinweise.
Rückgabewert
Typ: D3DXVECTOR2*
Zeiger auf eine D3DXVECTOR2-Struktur , die das Ergebnis der Catmull-Rom Interpolation ist.
Bemerkungen
Suchen Sie anhand von vier Punkten (p1, p2, p3, p4) 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 Hermite-Spline 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 ist der Inhalt von pV1.
p3 ist der Inhalt von pV2.
p4 ist der Inhalt von pV3.
Verwenden der Hermite-Spline-Gleichung:
Q(s) = (2s3 - 3s2 + 1)v1 + (-2s3 + 3s2)v2 + (s3 - 2s2 + s)t1 + (s3 - s2)t2
und ersetzen durch v1, v2, t1, t2 Erträge:
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