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 の入力引数は次のようになる。
- 視野角 (ラジアン単位)。この場合は π/4。
- アスペクト比 (空間の高さを幅で割った値)。この場合は 1 で、正方形のウィンドウを表す。
- 近クリップ面の距離。この場合は 1 単位。
- 遠クリップ面の距離。この場合は 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.