次の方法で共有


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 内容

関連項目

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