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


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

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

Требования

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

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

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