Функция D3DXPlaneTransform (D3dx9math.h)
Примечание
Служебная библиотека D3DX является устаревшей. Вместо этого рекомендуется использовать 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, чтобы эту функцию можно было использовать в качестве параметра для другой функции.
Remarks
Примеры
В этом примере выполняется преобразование плоскости путем применения неоднородной шкалы.
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 содержит обратный транспон матрицы преобразования. Обратный транспон требуется для этого метода, чтобы нормальный вектор преобразованной плоскости также можно было правильно преобразовать.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел