Функция D3DXMatrixTransformation (D3DX10Math.h)
Примечание
Служебная библиотека D3DX10 устарела. Вместо этого рекомендуется использовать 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.
Требования
Требование | Значение |
---|---|
Заголовок |
|
Библиотека |
|
См. также раздел