D3DXMatrixTransformation
トランスフォーム行列を作成します。引数が NULL の場合は、恒等変換と見なされます。
D3DXMATRIX *
D3DXMatrixTransformation(
D3DXMATRIX * pOut,
CONST D3DXVECTOR3 * pScalingCenter,
CONST D3DXQUATERNION * pScalingRotation,
CONST D3DXVECTOR3 * pScaling,
CONST D3DXVECTOR3 * pRotationCenter,
CONST D3DXQUATERNION * pRotation,
CONST D3DXVECTOR3 * pTranslation
);
パラメータ
- pOut
処理の結果を表す D3DXMATRIX 構造体へのポインター - pScalingCenter
スケーリング中心点を表す D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Msc 単位行列は、「解説」の公式に適用されます。 - pScalingRotation
スケーリング回転を指定する D3DXQUATERNION 構造体へのポインターです。この引数が NULL の場合、Msr 単位行列は、「解説」の公式に適用されます。 - pScaling
スケーリング ベクトルを示す D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Ms 単位行列は、「解説」の公式に適用されます。 - pRotationCenter
回転の中心座標を指定する D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Mrc 単位行列は、「解説」の公式に適用されます。 - pRotation
回転を指定する D3DXQUATERNION 構造体へのポインターです。この引数が NULL の場合、Mr 単位行列は、「解説」の公式に適用されます。 - pTranslation
平行移動を表す D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Mt 単位行列は、「解説」の公式に適用されます。
戻り値
トランスフオーム行列を示す D3DXMATRIX 構造体へのポインターを返します。
解説
この関数は、以下の公式でトランスフォーム行列を計算し、行列の連結を左から右へ順番に評価します。
Mout = (Msc)-1 * (Msr)-1* Ms * Msr * Msc * (Mrc)-1* Mr * Mrc * Mt
この場合
Mout = 出力行列 (pOut)
Msc = スケーリング中心行列 (pScalingCenter)
Msr = スケーリング回転行列 (pScalingRotation)
Ms = スケーリング行列 (pScaling)
Mrc = 回転の中心行列 (pRotationCenter)
Mr = 回転行列 (pRotation)
Mt = 平行移動行列 (pTranslation)
この関数の戻り値は、pOut パラメーターに返される値と同じです。このため、D3DXMatrixTransformation 関数は他の関数のパラメーターとして使用できます。
2D トランスフォームの場合は、D3DXMatrixTransformation2D を使用してください。
要件
ヘッダー: D3dx9math.h 宣言
ライブラリ: D3dx9.lib 内容