D3DXVec4CatmullRom-Funktion (D3DX10Math.h)

Führt eine Catmull-Rom Interpolation mit den 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 D3DXVECTOR4, das 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 ist.

Hinweise

Suchen Sie bei 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 durch Festlegen von vom Hermite-Spline abgeleitet werden:

v1 = p2
v2 = p3
t1 = (p3 - p1) / 2
t2 = (p4 - p2) / 2

Dabei gilt:

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 der Ersatz für v1, v2, t1, t2 ergibt:

Q(s) = (2s3 - 3s2 + 1)p2 + (-2s3 + 3s2)p3 + (s3 - 2s2 + s)(p3 - p1) / 2 + (s3 - s2)(p4 - p2) / 2

Dies kann neu angeordnet werden wie:

Q(s) = [(-s3 + 2s2 - s)p1 + (3s3 - 5s2 + 2)p2 + (-3s3 + 4s2 + s)p3 + (s3 - s2)p4] / 2

Anforderungen

Anforderung Wert
Header
D3DX10Math.h

Weitere Informationen

Mathematische Funktionen