次の方法で共有


Matrix 構造体

Matrix 構造体

使用例

  • y 軸を中心として一定速度でオブジェクトを回転する
  • 射影行列を設定する

行列を記述する。

定義

Visual Basic Public Structure Matrix
C# public struct Matrix
Managed C++ public __value struct Matrix
JScript 構造体は使えるが、独自に定義することはできない。

メンバ テーブル

次のテーブルは、Matrix オブジェクトによって公開されているメンバの一覧である。左側のタブをクリックし、表示したいメンバの種類を選ぶこと。

フィールド

フィールド 説明
M11
M12
M13
M14
M21
M22
M23
M24
M31
M32
M33
M34
M41
M42
M43
M44

メソッド

メソッド 説明
Add 2 つの行列を加算する。
AffineTransformation アフィン変換行列を作成する。
Equals このインスタンスが指定されたオブジェクトと同じものかどうかを示す値を返す。
GetHashCode このインスタンスに対するハッシュ コードを返す。
Invert 行列の逆行列を計算する。
LookAtLH 左手座標系ビュー行列を作成する。
LookAtRH 右手座標系ビュー行列を作成する。
Matrix オブジェクトの新しいインスタンスを初期化する。
Multiply 2 つの行列の積を計算する。
MultiplyTranspose 2 つの行列の積を計算した後、行列を転置する。
op_Addition
op_Equality
op_Inequality
op_Multiply
op_Subtraction
OrthoLH 左手座標系正射影行列を作成する。
OrthoOffCenterLH カスタマイズした左手座標系正射影行列を作成する。
OrthoOffCenterRH カスタマイズした右手座標系正射影行列を作成する。
OrthoRH 右手座標系正射影行列を作成する。
PerspectiveFovLH 視野 (FOV) に基づいて、左手座標系パースペクティブ射影行列を作成する。
PerspectiveFovRH 視野 (FOV) に基づいて、右手座標系パースペクティブ射影行列を作成する。
PerspectiveLH 左手座標系パースペクティブ射影行列を作成する。
PerspectiveOffCenterLH カスタマイズした左手座標系パースペクティブ射影行列を作成する。
PerspectiveOffCenterRH カスタマイズした右手座標系パースペクティブ射影行列を作成する。
PerspectiveRH 右手座標系パースペクティブ射影行列を作成する。
Reflect 平面の座標系を反転した行列を作成する。
RotateAxis 任意の軸を回転軸にして回転する行列を作成する。
RotateQuaternion クォータニオンから行列を作成する。
RotateX x 軸を回転軸にして回転する行列を作成する。
RotateY y 軸を回転軸にして回転する行列を作成する。
RotateYawPitchRoll ヨー、ピッチ、およびロールを指定して行列を作成する。
RotateZ z 軸を回転軸にして回転する行列を作成する。
RotationAxis 任意の軸を回転軸にして回転する行列を作成する。
RotationQuaternion クォータニオンから行列を作成する。
RotationX x 軸を回転軸にして回転する行列を作成する。
RotationY y 軸を回転軸にして回転する行列を作成する。
RotationYawPitchRoll ヨー、ピッチ、およびロールを指定して行列を作成する。
RotationZ z 軸を回転軸にして回転する行列を作成する。
Scale x 軸、y 軸、z 軸に沿ってスケーリングする行列を作成する。
Scaling x 軸、y 軸、z 軸に沿ってスケーリングする行列を作成する。
Shadow ジオメトリを平面に射影する行列を作成する。
Subtract 2 つの行列を減算する。
ToString このインスタンスの文字列表現を取得する。
Transform トランスフォーム行列を作成する。
Transformation トランスフォーム行列を作成する。
Translate オフセットを指定して行列を作成する。
Translation オフセットを指定して行列を作成する。
Transpose 行列の転置行列を返す。

プロパティ

プロパティ 説明
Determinant 行列の行列式を返す。
Identity 単位行列。
Zero 空行列。

使用例

y 軸を中心として一定速度でオブジェクトを回転する

この例では、y 軸を中心に一定の速度でポリゴン モデルを回転させる方法を示す。

回転行列トランスフォームを使って、回転角度を規則的に変化させる。この場合、回転行列 Matrix.RotationY への回転の入力角度 (ラジアン単位) を簡単な式で更新する。この式では、Environment.TickCount プロパティが返す、経過したミリ秒数を使う。次に、Device.Transform.World プロパティを回転行列で更新する。

using Microsoft.DirectX.Direct3D;

Device device = null;  // Create rendering device

// For the world matrix, rotate the object about the y-axis.

device.Transform.World = Microsoft.DirectX.Matrix.RotationY(
                         System.Environment.TickCount / 150.0f );

射影行列を設定する

この例では、3D カメラ空間 (ビュー空間) 座標を 2D スクリーン座標にトランスフォームする射影トランスフォーム行列の設定方法を示す。

ここでは、射影トランスフォーム行列 Projection を、左手座標系 (LH) の PerspectiveFovLH 行列と等しくなるように設定している。PerspectiveFovLH の入力引数は次のようになる。

  1. 視野角 (ラジアン単位)。この場合は π/4。
  2. アスペクト比 (空間の高さを幅で割った値)。この場合は 1 で、正方形のウィンドウを表す。
  3. 近クリップ面の距離。この場合は 1 単位。
  4. 遠クリップ面の距離。この場合は 100 単位。
using Microsoft.DirectX;

Direct3D.Device device = null;  // Create rendering device

// For the projection matrix, you set up a perspective transform (which
//   transforms geometry from 3-D view space to 2-D viewport space, with
//   a perspective divide making objects smaller in the distance).To build
//   a perspective transform, you need the field of view (1/4 pi is common),
//   the aspect ratio, and the near and far clipping planes (which define at
//   what distances geometry should be no longer be rendered).
device.Transform.Projection = Matrix.PerspectiveFovLH(
                              (float)Math.PI / 4, 1.0f, 1.0f, 100.0f );

構造体の情報

名前空間 Microsoft.DirectX
アセンブリ Microsoft.DirectX (microsoft.directx.dll)
厳密名 Microsoft.DirectX,  Version=0293,  Culture=neutral,  PublicKeyToken=d3231b57b74a1492

© 2002 Microsoft Corporation. All rights reserved. Terms of use.