次の方法で共有


D3DXMatrixAffineTransformation

3D アフィン変換行列を作成します。引数が NULL の場合は、恒等変換と見なされます。

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

パラメータ

  • pOut
    処理の結果を表す D3DXMATRIX 構造体へのポインター
  • Scaling
    スケール係数
  • pRotationCenter
    回転の中心座標を指定する D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Mrc 単位行列は、「解説」の公式に適用されます。
  • pRotation
    回転を指定する D3DXQUATERNION 構造体へのポインターです。この引数が NULL の場合、Mr 単位行列は、「解説」の公式に適用されます。
  • pTranslation
    平行移動を表す D3DXVECTOR3 構造体へのポインターです。この引数が NULL の場合、Mt 単位行列は、「解説」の公式に適用されます。

戻り値

アフィン変換行列を表す D3DXMATRIX 構造体へのポインター

解説 

この関数は、以下の公式でアフィン変換行列を計算し、行列の連結を左から右へ順番に評価します。

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

この場合

Mout = 出力行列 (pOut)

Ms = スケーリング行列 (Scaling)

Mrc = 回転の中心行列 (pRotationCenter)

Mr = 回転行列 (pRotation)

Mt = 平行移動行列 (pTranslation)

この関数の戻り値は、pOut パラメーターに返される値と同じです。このため、D3DXMatrixAffineTransformation 関数は他の関数のパラメーターとして使用できます。

2D アフィン変換の場合は、D3DXMatrixAffineTransformation2D を使用してください。

要件

ヘッダー: D3dx9math.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

D3DXMatrixTransformation, トランスフォーム (Direct3D 9)