Partager via


Fonction XMVectorLerp (directxmath.h)

Effectue une interpolation linéaire entre deux vecteurs.

Syntaxe

XMVECTOR XM_CALLCONV XMVectorLerp(
  [in] FXMVECTOR V0,
  [in] FXMVECTOR V1,
  [in] float     t
) noexcept;

Paramètres

[in] V0

Premier vecteur à partir duquel interpoler.

[in] V1

Deuxième vecteur à partir duquel interpoler.

[in] t

Facteur de contrôle d’interpolation.

Valeur retournée

Retourne un vecteur contenant l’interpolation.

Remarques

Le pseudocode suivant illustre le fonctionnement de la fonction :

XMVECTOR Result;

Result.x = V0.x + t * (V1.x - V0.x);
Result.y = V0.y + t * (V1.y - V0.y);
Result.z = V0.z + t * (V1.z - V0.z);
Result.w = V0.w + t * (V1.w - V0.w);

return Result;

Notez qu’il est assez simple d’utiliser cette fonction pour effectuer une interpolation cubique au lieu d’une interpolation linéaire comme suit :


XMVECTOR SmoothStep( XMVECTOR V0, XMVECTOR V1, float t )
{
    t = (t > 1.0f) ? 1.0f : ((t < 0.0f) ? 0.0f : t);  // Clamp value to 0 to 1
    t = t*t*(3.f - 2.f*t);
    return XMVectorLerp( V0, V1, t );
}

Configuration requise pour la plateforme

Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 avec le Kit de développement logiciel (SDK) Windows pour Windows 8. Pris en charge pour les applications de bureau Win32, les applications du Windows Store et Windows Phone 8 applications.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête directxmath.h (inclure DirectXMath.h)

Voir aussi

Fonctions vectorielles géométriques

XMVectorLerpV