directx9学習(モデルの移動・回転・拡大縮小)

  • 変更前


  • 行列作成関数

D3DXMatrixIdentity(D3DXMATRIX *pOut);
  単位行列を作成します。
D3DXMatrixTranslation(D3DXMATRIX *pOut, FLOAT x, FLOAT y, FLOAT z);
  オフセットを指定して行列を作成します。
D3DXMatrixRotationX(D3DXMATRIX* pOut, FLOAT Angle);
  X 軸まわりに Angle ラジアン回転する行列を作成します。
D3DXMatrixRotationY(D3DXMATRIX* pOut, FLOAT Angle);
  Y 軸まわりに Angle ラジアン回転する行列を作成します。
D3DXMatrixRotationZ(D3DXMATRIX* pOut, FLOAT Angle);
  Z 軸まわりに Angle ラジアン回転する行列を作成します。
D3DXMatrixRotationYawPitchRoll(D3DXMATRIX* pOut, FLOAT Yaw, FLOAT Pitch, FLOAT Roll);
  Y 軸、X 軸、Z 軸まわりの回転角を指定して、回転行列を作成します。
D3DXMatrixScaling(D3DXMATRIX *pOut, FLOAT sx, FLOAT sy, FLOAT sz);
  x 軸、y 軸、z 軸に沿ってスケーリングする行列を作成します。

  • 縮小(SetupMatrices関数内)

  // Set up world matrix
  D3DXMATRIXA16 matWorld;
  D3DXMatrixIdentity(&matWorld);
  D3DXMatrixScaling(&matWorld, 0.5f, 1.0f, 1.0f);
  g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );

  • 変更後