Partilhar via


Função D3DXPlaneTransform (D3dx9math.h)

Observação

A biblioteca do utilitário D3DX foi preterida. Em vez disso, recomendamos que você use DirectXMath .

Transforma um plano por uma matriz. A matriz de entrada é a transposição inversa da transformação real.

Sintaxe

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

Parâmetros

pOut [in, out]

Tipo: D3DXPLANE*

Ponteiro para a estrutura D3DXPLANE que contém o plano transformado resultante. Confira o exemplo.

pP [in]

Tipo: const D3DXPLANE*

Ponteiro para a estrutura D3DXPLANE de entrada, que contém o plano que será transformado. O vetor (a,b,c) que descreve o plano deve ser normalizado antes que essa função seja chamada. Confira o exemplo.

pM [in]

Tipo: const D3DXMATRIX*

Ponteiro para a estrutura D3DXMATRIX de origem, que contém os valores de transformação. Essa matriz deve conter a transposição inversa dos valores de transformação.

Valor retornado

Tipo: D3DXPLANE*

Ponteiro para uma estrutura D3DXPLANE , representando o plano transformado. Esse é o mesmo valor retornado no parâmetro pOut para que essa função possa ser usada como um parâmetro para outra função.

Comentários

Exemplos

Este exemplo transforma um plano aplicando uma escala não 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);

Um plano é descrito por ax + by + cz + dw = 0. O primeiro plano é criado com (a,b,c,d) = (0,1,1,0), que é um plano descrito por y + z = 0. Após o dimensionamento, o novo plano contém (a,b,c,d) = (0, 0,353f, 0,235f, 0), que mostra o novo plano a ser descrito por 0,353y + 0,235z = 0.

O parâmetro pM contém a transposição inversa da matriz de transformação. A transposição inversa é exigida por esse método para que o vetor normal do plano transformado também possa ser transformado corretamente.

Requisitos

Requisito Valor
parâmetro
D3dx9math.h
Biblioteca
D3dx9.lib

Confira também

Funções Matemáticas

D3DXPlaneNormalize

D3DXMatrixRotationX

D3DXMatrixRotationY

D3DXMatrixRotationZ

D3DXMatrixInverse

D3DXMatrixTranspose