Поделиться через


Функция 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 содержит обратный транспон матрицы преобразования. Обратный транспон требуется для этого метода, чтобы нормальный вектор преобразованной плоскости также можно было правильно преобразовать.

Требования

Требование Значение
Заголовок
D3dx9math.h
Библиотека
D3dx9.lib

См. также раздел

Математические функции

D3DXPlaneNormalize

D3DXMatrixRotationX

D3DXMatrixRotationY

D3DXMatrixRotationZ

D3DXMatrixInverse

D3DXMatrixTranspose