Функция D3DXPlaneTransformArray (D3DX10Math. h)

Преобразует массив плоскостей по матрице. Векторы, описывающие каждую плоскость, должны быть нормализованы.

Синтаксис

D3DXPLANE* D3DXPlaneTransformArray(
  _Inout_       D3DXPLANE  *pOut,
  _In_          UINT       OutStride,
  _In_    const D3DXPLANE  *pP,
  _In_          UINT       PStride,
  _In_    const D3DXMATRIX *pM,
  _In_          UINT       n
);

Параметры

тоска [ в, out]

Тип: D3DXPLANE*

Указатель на структуру D3DXPLANE , содержащую полученную преобразованную плоскость. См. пример.

Шаг [ окне]

Тип: uint

Шаг каждой преобразованной плоскости.

PP [ окне]

Тип: const D3DXPLANE *

Указатель на входную структуру D3DXPLANE, содержащую массив плоскостей для преобразования. Вектор (a, b, c), описывающий плоскость, должен быть нормализован перед вызовом этой функции. См. пример.

Пстриде [ окне]

Тип: uint

Шаг для каждой непреобразованной плоскости.

PM [ окне]

Тип: const D3DXMATRIX *

Указатель на исходную структуру D3DXMATRIX , которая содержит обратное преобразование значений преобразования.

n [ в]

Тип: uint

Число преобразуемых плоскостей.

Возвращаемое значение

Тип: D3DXPLANE*

Указатель на структуру D3DXPLANE, представляющую преобразованную плоскость. Это то же значение, которое возвращается в параметре тоска, чтобы эту функцию можно было использовать в качестве параметра для другой функции.

Комментарии

Этот пример преобразует одну плоскость, применяя неоднородный масштаб.

#define ARRAYSIZE 4
D3DXPLANE planeNew[ARRAYSIZE];
D3DXPLANE plane[ARRAYSIZE];

for(int i = 0; i < ARRAYSIZE; i++)
{
    plane = D3DXPLANE( 0.0f, 1.0f, 1.0f, 0.0f );
    D3DXPlaneNormalize( &plane[i], &plane[i] );
}

D3DXMATRIX  matrix;
D3DXMatrixScaling( &matrix, 1.0f, 2.0f, 3.0f ); 
D3DXMatrixInverse( &matrix, NULL, &matrix );
D3DXMatrixTranspose( &matrix, &matrix );
D3DXPlaneTransformArray( &planeNew, sizeof (D3DXPLANE), &plane, 
                         sizeof (D3DXPLANE), &matrix, ARRAYSIZE );

Плоскость описывается в AX + by + CZ + DW = 0. Первая плоскость создается с (a, b, c, d) = (0, 1, 1, 0), которая является плоскостью, описанной в разделе y + z = 0. После масштабирования новая плоскость содержит (a, b, c, d) = (0, 0.353 f, 0.235 f, 0), которая показывает новую плоскость, которая будет описываться 0.353 y + 0.235 z = 0.

Параметр pM содержит обратную перестановку матрицы преобразования. Обратная перестановка необходима этому методу, чтобы правильно преобразовать стандартный вектор преобразованной плоскости.

Требования

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

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

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