Fonction D3DXVec3CatmullRom (D3dx9math.h)
Notes
La bibliothèque d’utilitaireS D3DX est déconseillée. Nous vous recommandons d’utiliser DirectXMath à la place.
Effectue une interpolation Catmull-Rom à l’aide des vecteurs 3D spécifiés.
Syntaxe
D3DXVECTOR3* D3DXVec3CatmullRom(
_Inout_ D3DXVECTOR3 *pOut,
_In_ const D3DXVECTOR3 *pV0,
_In_ const D3DXVECTOR3 *pV1,
_In_ const D3DXVECTOR3 *pV2,
_In_ const D3DXVECTOR3 *pV3,
_In_ FLOAT s
);
Paramètres
-
pOut [in, out]
-
Type : D3DXVECTOR3*
Pointeur vers la structure D3DXVECTOR3 qui est le résultat de l’opération.
-
pV0 [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 source, vecteur de position.
-
pV1 [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 source, vecteur de position.
-
pV2 [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 source, vecteur de position.
-
pV3 [in]
-
Type : const D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 source, vecteur de position.
-
s [in]
-
Type : FLOAT
Facteur de pondération. Consultez la section Notes.
Valeur de retour
Type : D3DXVECTOR3*
Pointeur vers une structure D3DXVECTOR3 qui est le résultat de l’interpolation Catmull-Rom.
Notes
Avec quatre points (p1, p2, p3, p4), recherchez une fonction Q(s) telle que :
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.
La spline Catmull-Rom peut être dérivée de la spline Hermite en définissant :
v1 = p2
v2 = p3
t1 = (p3 - p1) / 2
t2 = (p4 - p2) / 2
où :
v1 est le contenu de pV0.
v2 est le contenu de pV1.
p3 est le contenu de pV2.
p4 est le contenu de pV3.
Utilisation de l’équation spline Hermite :
Q(s) = (2s3 - 3s2 + 1)v1 + (-2s3 + 3s2)v2 + (s3 - 2s2 + s)t1 + (s3 - s2)t2
et en remplaçant v1, v2, t1, t2 donne :
Q(s) = (2s3 - 3s2 + 1)p2 + (-2s3 + 3s2)p3 + (s3 - 2s2 + s)(p3 - p1) / 2 + (s3 - s2)(p4 - p2) / 2
Cela peut être réorganisé comme suit :
Q(s) = [(-s3 + 2s2 - s)p1 + (3s3 - 5s2 + 2)p2 + (-3s3 + 4s2 + s)p3 + (s3 - s2)p4] / 2
Spécifications
Condition requise | Valeur |
---|---|
En-tête |
|
Bibliothèque |
|
Voir aussi