Partager via


Fonction D3DXPlaneTransform (D3dx9math.h)

Notes

La bibliothèque utilitaire D3DX est déconseillée. Nous vous recommandons d’utiliser DirectXMath à la place.

Transforme un plan par une matrice. La matrice d’entrée est la transpose inverse de la transformation réelle.

Syntaxe

D3DXPLANE* D3DXPlaneTransform(
  _Inout_       D3DXPLANE  *pOut,
  _In_    const D3DXPLANE  *pP,
  _In_    const D3DXMATRIX *pM
);

Paramètres

pOut [in, out]

Type : D3DXPLANE*

Pointeur vers la structure D3DXPLANE qui contient le plan transformé résultant. Consultez les exemples.

pP [in]

Type : const D3DXPLANE*

Pointeur vers la structure D3DXPLANE d’entrée, qui contient le plan qui sera transformé. Le vecteur (a,b,c) qui décrit le plan doit être normalisé avant que cette fonction soit appelée. Consultez les exemples.

pM [in]

Type : const D3DXMATRIX*

Pointeur vers la structure D3DXMATRIX source, qui contient les valeurs de transformation. Cette matrice doit contenir la transpose inverse des valeurs de transformation.

Valeur retournée

Type : D3DXPLANE*

Pointeur vers une structure D3DXPLANE , représentant le plan transformé. Il s’agit de la même valeur retournée dans le paramètre pOut afin que cette fonction puisse être utilisée comme paramètre pour une autre fonction.

Notes

Exemples

Cet exemple transforme un plan en appliquant une échelle non uniforme.

D3DXPLANE   planeNew;
D3DXPLANE   plane(0,1,1,0);
D3DXPlaneNormalize(&plane, &plane);

D3DXMATRIX  matrix;
D3DXMatrixScaling(&matrix, 1.0f,2.0f,3.0f);
D3DXMatrixInverse(&matrix, NULL, &matrix);
D3DXMatrixTranspose(&matrix, &matrix);
D3DXPlaneTransform(&planeNew, &plane, &matrix);

Un plan est décrit par ax + by + cz + dw = 0. Le premier plan est créé avec (a,b,c,d) = (0,1,1,0), qui est un plan décrit par y + z = 0. Après la mise à l’échelle, le nouveau plan contient (a,b,c,d) = (0, 0,353f, 0,235f, 0), ce qui montre le nouveau plan à décrire par 0,353y + 0,235z = 0.

Le paramètre pM contient la transpose inverse de la matrice de transformation. La transpose inverse est requise par cette méthode afin que le vecteur normal du plan transformé puisse également être correctement transformé.

Spécifications

Condition requise Valeur
En-tête
D3dx9math.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions mathématiques

D3DXPlaneNormalize

D3DXMatrixRotationX

D3DXMatrixRotationY

D3DXMatrixRotationZ

D3DXMatrixInverse

D3DXMatrixTranspose