次の方法で共有


D3DXMatrixTransformation2D

xy 平面でのトランスフォームを表す 2D トランスフォーム行列を作成します。引数が NULL の場合は、恒等変換と見なされます。

D3DXMATRIX * 
D3DXMatrixTransformation2D(
  D3DXMATRIX * pOut,
  CONST D3DXVECTOR2 * pScalingCenter,
  FLOAT pScalingRotation,
  CONST D3DXVECTOR2 * pScaling,
  CONST D3DXVECTOR2 * pRotationCenter,
  FLOAT Rotation,
  CONST D3DXVECTOR2 * pTranslation
);

パラメータ

  • pOut
    トランスフォームの結果を表す D3DXMATRIX 構造体へのポインター
  • pScalingCenter
    スケーリング中心点を表す D3DXVECTOR2 構造体へのポインターです。この引数が NULL の場合、Msc 単位行列は、「解説」の公式に適用されます。
  • pScalingRotation
    スケーリング回転係数です。
  • pScaling
    スケーリングを表す D3DXVECTOR2 構造体へのポインターです。この引数が NULL の場合、Ms 単位行列は、「解説」の公式に適用されます。
  • pRotationCenter
    回転中心点を表す D3DXVECTOR2 構造体へのポインターです。この引数が NULL の場合、Mrc 単位行列は、「解説」の公式に適用されます。
  • Rotation
    回転の角度 (ラジアン単位)
  • pTranslation
    平行移動を表す D3DXVECTOR2 構造体へのポインターです。この引数が 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 = 回転行列 (Rotation)

Mt = 平行移動行列 (pTranslation)

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

3D トランスフォームの場合は、D3DXMatrixTransformation を使用してください。

要件

ヘッダー: D3dx9math.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

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