D3DXPlaneTransform-Funktion (D3DX10Math.h)

Transformiert eine Ebene durch eine Matrix. Die Eingabematrix ist die umgekehrte Transponieren der tatsächlichen Transformation.

Syntax

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

Parameter

pOut [ in, out]

Typ: D3DXPLANE*

Zeiger auf die D3DXPLANE,die die resultierende transformierte Ebene enthält. Weitere Informationen sind im Beispiel enthalten.

pP [ In]

Typ: const D3DXPLANE *

Zeiger auf die D3DXPLANE-Eingabestruktur, die die ebene enthält, die transformiert wird. Der Vektor (a,b,c), der die Ebene beschreibt, muss normalisiert werden, bevor diese Funktion aufgerufen wird. Weitere Informationen sind im Beispiel enthalten.

pM [ In]

Typ: const D3DXMATRIX *

Zeiger auf die D3DXMATRIX-Quellstruktur, die die Transformationswerte enthält. Diese Matrix muss die umgekehrte Transponieren der Transformationswerte enthalten.

Rückgabewert

Typ: D3DXPLANE*

Zeiger auf eine D3DXPLANE-Struktur, die die transformierte Ebene darstellt. Dies ist der gleiche Wert, der im pOut-Parameter zurückgegeben wird, sodass diese Funktion als Parameter für eine andere Funktion verwendet werden kann.

Bemerkungen

Beispiele

In diesem Beispiel wird eine Ebene durch Anwenden einer nicht einheitlichen Skala transformiert.

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);

Eine Ebene wird durch ax + by + dw + dw = 0 beschrieben. Die erste Ebene wird mit (a,b,c,d) = (0,1,1,0) erstellt. Dies ist eine Ebene, die von y + z = 0 beschrieben wird. Nach der Skalierung enthält die neue Ebene (a,b,c,d) = (0, 0,353f, 0,235f, 0), die die neue Ebene zeigt, die von 0,353y + 0,235z = 0 beschrieben werden soll.

Der Parameter pM enthält die umgekehrte Transponierung der Transformationsmatrix. Die umgekehrte Transponierung ist für diese Methode erforderlich, damit auch der normale Vektor der transformierten Ebene ordnungsgemäß transformiert werden kann.

Anforderungen

Anforderung Wert
Header
D3DX10Math.h
Bibliothek
D3DX10.lib

Siehe auch

Mathematische Funktionen