View 座標を回転する

C# DirectX でティーポットをライトで照らして、カメラ(View)座標を回転しながら描画します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. プロジェクトの作成は トーラスをライトで照らして描画する に準じます。
  2. カメラ(View)座標を回転する SetupMatrices() です。
    タイマを取得して自動的にティーポットを中心に回転します。
    光源を固定しているので、影の状態からカメラが回転していることが解るでしょう。
        void SetupMatrices()
        {
            Matrix  view, w;
            w= Matrix.RotationY(Environment.TickCount / 1000.0f);
            view = Matrix.Translation(0, 0, 5);
            view = w * view;
            device.SetTransform(TransformType.View, view);
            device.Transform.Projection = Matrix.PerspectiveFovLH((float)(Math.PI / 4), 1.0f, 1.0f, 1000.0f);
        }
        

【演習】

  1. マウスの操作で View 座標を回転しながら描画して下さい。
    マウスの操作は マウスをキャプチャする を参照して下さい。
    DirectX では常に描画しているので Invalidate(); は不要です。
  2. マウスの左右の動きでY軸を中心に、上下の動きでX軸を中心に回転して下さい。
  3. 乗算の順序に気を付けて下さい。
    Matrix では順番が変わると演算結果も変わります。
        wy = Matrix.RotationY(rotx / 50.0f);
        wx = Matrix.RotationX(roty / 50.0f);
        view = Matrix.Translation(0, 0, 5);
        view = wy * wx * view;
        device.SetTransform(TransformType.View, view);
        

超初心者のプログラム入門(C# Frame Work)