D3DXPlaneTransform 函式 (D3DX10Math.h)
注意
D3DX10 公用程式程式庫已被取代。 建議您改用 DirectXMath 。
依矩陣轉換平面。 輸入矩陣是實際轉換的反向轉置。
語法
D3DXPLANE* D3DXPlaneTransform(
_Inout_ D3DXPLANE *pOut,
_In_ const D3DXPLANE *pP,
_In_ const D3DXMATRIX *pM
);
參數
-
pOut [in, out]
-
類型: D3DXPLANE*
包含所產生轉換平面之 D3DXPLANE 的指標。 請參閱範例。
-
pP [in]
-
類型:const D3DXPLANE*
輸入 D3DXPLANE 結構的指標,其中包含將轉換的平面。 描述平面的向量 (a,b,c) 必須先正規化,才能呼叫此函式。 請參閱範例。
-
pM [in]
-
類型:const D3DXMATRIX*
來源 D3DXMATRIX 結構的指標,其中包含轉換值。 此矩陣必須包含轉換值的反向轉置。
傳回值
類型: D3DXPLANE*
D3DXPLANE 結構的指標,代表轉換的平面。 這是 pOut 參數中傳回的相同值,因此此函式可作為另一個函式的參數。
備註
範例
此範例會套用非統一小數位數來轉換平面。
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);
平面是由 ax + by + cz + dw = 0 描述。 第一個平面是使用 (a,b,c,d) = (0,1,1,0) 來建立,這是 y + z = 0 所描述的平面。 調整之後,新平面 (會包含 a,b,c,d) = (0, 0.353f, 0.235f, 0) ,其中顯示 0.353y + 0.235z = 0 所描述的新平面。
參數 pM 包含轉換矩陣的反向轉置。 此方法需要反向轉置,因此轉換平面的一般向量也可以正確轉換。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|
另請參閱