Функция D3DXMatrixTransformation (D3dx9math.h)

Примечание

Служебная библиотека D3DX устарела. Вместо этого рекомендуется использовать DirectXMath .

Создает матрицу преобразования. Аргументы NULL обрабатываются как преобразования удостоверений.

Синтаксис

D3DXMATRIX* D3DXMatrixTransformation(
  _Inout_       D3DXMATRIX     *pOut,
  _In_    const D3DXVECTOR3    *pScalingCenter,
  _In_    const D3DXQUATERNION *pScalingRotation,
  _In_    const D3DXVECTOR3    *pScaling,
  _In_    const D3DXVECTOR3    *pRotationCenter,
  _In_    const D3DXQUATERNION *pRotation,
  _In_    const D3DXVECTOR3    *pTranslation
);

Параметры

pOut [in, out]

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX , которая является результатом операции.

pScalingCenter [in]

Тип: const D3DXVECTOR3*

Указатель на структуру D3DXVECTOR3 , определяющую центральную точку масштабирования. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрица идентификатора Msc .

pScalingRotation [in]

Тип: const D3DXQUATERNION*

Указатель на структуру D3DXQUATERNION , указывающую поворот масштабирования. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрица идентификатора Msr .

pScaling [in]

Тип: const D3DXVECTOR3*

Указатель на структуру D3DXVECTOR3 , вектор масштабирования. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрица идентификаторов Ms.

pRotationCenter [in]

Тип: const D3DXVECTOR3*

Указатель на структуру D3DXVECTOR3 , точку, определяющую центр поворота. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрицаrc identity M.

pRotation [in]

Тип: const D3DXQUATERNION*

Указатель на структуру D3DXQUATERNION , указывающую поворот. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрица идентификатора Mr .

pTranslation [in]

Тип: const D3DXVECTOR3*

Указатель на структуру D3DXVECTOR3 , представляющую перевод. Если этот аргумент имеет значение NULL, к формуле в примечаниях применяется матрица удостоверений Mt.

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

Тип: D3DXMATRIX*

Указатель на структуру D3DXMATRIX , которая является матрицей преобразования.

Комментарии

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

Mout = (Msc)⁻¹ * (Msr)⁻¹* Ms * Msr * Msc * (Mrc)⁻¹* Mr * Mrc * Mt

где:

Mout = матрица вывода (pOut)

Msc = матрица центра масштабирования (pScalingCenter)

Msr = матрица поворота масштабирования (pScalingRotation)

Ms = матрица масштабирования (pScaling)

Mrc = центр матрицы поворота (pRotationCenter)

Mr = матрица поворота (pRotation)

Mt = матрица перевода (pTranslation)

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

Для двухмерных преобразований используйте D3DXMatrixTransformation2D.

Требования

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

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

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

D3DXMatrixAffineTransformation

Преобразования (Direct3D 9)