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


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

Примечание

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

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

Синтаксис

D3DXMATRIX* D3DXMatrixAffineTransformation(
  _In_       D3DXMATRIX     *pOut,
  _In_       FLOAT          Scaling,
  _In_ const D3DXVECTOR3    *pRotationCenter,
  _In_ const D3DXQUATERNION *pRotation,
  _In_ const D3DXVECTOR3    *pTranslation
);

Параметры

pOut [in]

Тип: D3DXMATRIX*

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

Масштабирование [в]

Тип: FLOAT

Коэффициент масштабирования.

pRotationCenter [in]

Тип: const D3DXVECTOR3*

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

pRotation [in]

Тип: const D3DXQUATERNION*

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

pTranslation [in]

Тип: const D3DXVECTOR3*

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

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

Тип: D3DXMATRIX*

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

Комментарии

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

Mout = Ms * (Mrc)-1 * Mr * Mrc * Mt

где:

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

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

Mrc = центр матрицы вращения (pRotationCenter)

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

Mt = матрица преобразования (pTranslation)

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

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

Требования

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

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

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