Compartir a través de


Función D3DXPlaneTransform (D3dx9math.h)

Nota

La biblioteca de utilidades D3DX está en desuso. Se recomienda usar DirectXMath en su lugar.

Transforma un plano por una matriz. La matriz de entrada es la transposición inversa de la transformación real.

Sintaxis

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

Parámetros

pOut [in, out]

Tipo: D3DXPLANE*

Puntero a la estructura D3DXPLANE que contiene el plano transformado resultante. Vea el ejemplo.

pP [in]

Tipo: const D3DXPLANE*

Puntero a la estructura D3DXPLANE de entrada, que contiene el plano que se transformará. El vector (a,b,c) que describe el plano debe normalizarse antes de llamar a esta función. Vea el ejemplo.

pM [in]

Tipo: const D3DXMATRIX*

Puntero a la estructura D3DXMATRIX de origen, que contiene los valores de transformación. Esta matriz debe contener la transposición inversa de los valores de transformación.

Valor devuelto

Tipo: D3DXPLANE*

Puntero a una estructura D3DXPLANE , que representa el plano transformado. Este es el mismo valor devuelto en el parámetro pOut para que esta función se pueda usar como parámetro para otra función.

Observaciones

Ejemplos

En este ejemplo se transforma un plano aplicando una escala no 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 plano se describe mediante ax + by + cz + dw = 0. El primer plano se crea con (a,b,c,d) = (0,1,1,0), que es un plano descrito por y + z = 0. Después del escalado, el nuevo plano contiene (a,b,c,d) = (0, 0,353f, 0,235f, 0), que muestra el nuevo plano que se describirá en 0,353y + 0,235z = 0.

El parámetro pM contiene la transposición inversa de la matriz de transformación. Este método requiere la transposición inversa para que el vector normal del plano transformado también se pueda transformar correctamente.

Requisitos

Requisito Value
Encabezado
D3dx9math.h
Biblioteca
D3dx9.lib

Consulte también

Funciones matemáticas

D3DXPlaneNormalize

D3DXMatrixRotationX

D3DXMatrixRotationY

D3DXMatrixRotationZ

D3DXMatrixInverse

D3DXMatrixTranspose