この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

Matrix クラス

 

公開日: 2016年10月

ジオメトリック変換を表現する 3 × 3 のアフィン行列をカプセル化します。 このクラスは継承できません。

名前空間:   System.Drawing.Drawing2D
アセンブリ:  System.Drawing (System.Drawing.dll 内)

System.Object
  System.MarshalByRefObject
    System.Drawing.Drawing2D.Matrix

public sealed class Matrix : MarshalByRefObject, IDisposable

名前説明
System_CAPS_pubmethodMatrix()

Matrix クラスの新しいインスタンスを単位行列として初期化します。

System_CAPS_pubmethodMatrix(Rectangle, Point[])

Matrix クラスの新しいインスタンスを初期化し、指定した四角形および点の配列で定義されたジオメトリック変換に設定します。

System_CAPS_pubmethodMatrix(RectangleF, PointF[])

Matrix クラスの新しいインスタンスを初期化し、指定した四角形および点の配列で定義されたジオメトリック変換に設定します。

System_CAPS_pubmethodMatrix(Single, Single, Single, Single, Single, Single)

指定した要素を使用して、Matrix クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_pubpropertyElements

この Matrix の要素を表す浮動小数点値の配列を取得します。

System_CAPS_pubpropertyIsIdentity

この Matrix が単位行列かどうかを示す値を取得します。

System_CAPS_pubpropertyIsInvertible

この Matrix が反転できるかどうかを示す値を取得します。

System_CAPS_pubpropertyOffsetX

この Matrix の x 方向の平行移動値 (dx 値、すなわち 3 番目の行の最初の列の要素) を取得します。

System_CAPS_pubpropertyOffsetY

この Matrix の y 方向の平行移動値 (dy 値、すなわち 3 番目の行の 2 番目の列の要素) を取得します。

名前説明
System_CAPS_pubmethodClone()

この Matrix の同一コピーを作成します。

System_CAPS_pubmethodCreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要なすべての関連情報を格納しているオブジェクトを作成します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodDispose()

この Matrix によって使用されているすべてのリソースを解放します。

System_CAPS_pubmethodEquals(Object)

指定されたオブジェクトが Matrix であるかどうか、またこの Matrix と同一であるかどうかをテストします。(Object.Equals(Object) をオーバーライドします。)

System_CAPS_protmethodFinalize()

オブジェクトが、ガベージ コレクションによって収集される前に、リソースの解放とその他のクリーンアップ操作の実行を試みることができるようにします。(Object.Finalize() をオーバーライドします。)

System_CAPS_pubmethodGetHashCode()

ハッシュ コードを返します。(Object.GetHashCode() をオーバーライドします。)

System_CAPS_pubmethodGetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodInitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodInvert()

この Matrix が反転できる場合に反転します。

System_CAPS_pubmethodMultiply(Matrix)

指定した Matrix を前に付加することで、この Matrixmatrix パラメーターで指定した行列を乗算します。

System_CAPS_pubmethodMultiply(Matrix, MatrixOrder)

この Matrixmatrix パラメーターで指定した行列を、order パラメーターで指定した順序で乗算します。

System_CAPS_pubmethodReset()

単位行列の要素を持つように対象の Matrix をリセットします。

System_CAPS_pubmethodRotate(Single)

原点を中心とする指定した角度の時計回りの回転を、この Matrix の前に付加します。

System_CAPS_pubmethodRotate(Single, MatrixOrder)

angle パラメーターで指定した量の、原点 (x 座標と y 座標が 0) を中心とする時計回りの回転を、この Matrix に適用します。

System_CAPS_pubmethodRotateAt(Single, PointF)

回転を前に付加することで、point パラメーターで指定した点を中心とする時計回りの回転を、この Matrix に適用します。

System_CAPS_pubmethodRotateAt(Single, PointF, MatrixOrder)

指定した点を中心とする時計回りの回転を、指定した順序でこの Matrix に適用します。

System_CAPS_pubmethodScale(Single, Single)

スケール ベクターを前に付加することで、指定したスケール ベクターをこの Matrix に適用します。

System_CAPS_pubmethodScale(Single, Single, MatrixOrder)

指定した順序を使用して、指定したスケール ベクター (scaleXscaleY) をこの Matrix に適用します。

System_CAPS_pubmethodShear(Single, Single)

傾斜変換を前に付加することで、指定した傾斜ベクターをこの Matrix に適用します。

System_CAPS_pubmethodShear(Single, Single, MatrixOrder)

指定した順序で、指定した傾斜ベクターをこの Matrix に適用します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

System_CAPS_pubmethodTransformPoints(Point[])

この Matrix が表すジオメトリック変換を、指定した点の配列に適用します。

System_CAPS_pubmethodTransformPoints(PointF[])

この Matrix が表すジオメトリック変換を、指定した点の配列に適用します。

System_CAPS_pubmethodTransformVectors(Point[])

この Matrix のスケールおよび回転の成分だけを、指定した点の配列に適用します。

System_CAPS_pubmethodTransformVectors(PointF[])

配列内の各ベクターを行列で乗算します。 この行列の平行移動要素 (3 番目の行) は無視されます。

System_CAPS_pubmethodTranslate(Single, Single)

平行移動ベクターを前に付加することで、指定した平行移動ベクター (offsetXoffsetY) をこの Matrix に適用します。

System_CAPS_pubmethodTranslate(Single, Single, MatrixOrder)

指定した順序で、指定した平行移動ベクターをこの Matrix に適用します。

System_CAPS_pubmethodVectorTransformPoints(Point[])

配列内の各ベクターを行列で乗算します。 この行列の平行移動要素 (3 番目の行) は無視されます。

GDI+ でアフィン変換を格納する、 Matrix オブジェクトです。 表すアフィン変換行列の 3 番目の列は常にので (0, 0, 1) を構築するときに、最初の 2 つの列で 6 桁の数字のみを指定する、 Matrix オブジェクトです。 ステートメント Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) 次の図に示すようにマトリックスを作成します。

変換

複合変換では、変換、他の後に 1 つのシーケンスです。 マトリックスおよび次の一覧で、変換を考慮してください。

行列 A

90 度回転します。

マトリックス B

X 方向の 2 倍の規模の設定します。

マトリックス C

Y 方向の 3 つの単位に変換します。

まずかどうかは、点 (2, 1)、-行列 [2 1 1] で表される — 掛け合わせます A、B、C、点 (2, 1) が行われる順に 3 つの変換、およびします。

[2 1 1]ABC = [-2 5 1]

はなく 3 つの独立した行列に複合変換の 3 つの部分を格納は、A を乗算できます複合変換全体を格納する 1 つの 3 × 3 行列を取得するには、まとめて、B、および C です。 たとえば、ABC D. =ポイント D を掛けた値が A、B、C の乗算ポイントと同じ結果を提供し、

[2 1 1]D = [-2 5 1]

次の図は、A、B、C および D のマトリックスを示しています。

変換

複合変換の行列は、個々 の変換行列を乗算することによって確立できるという事実では、1 つのアフィン変換の任意のシーケンスを格納できることを意味 Matrix オブジェクトです。

System_CAPS_caution注意

複合変換の順序が重要です。 一般に、回転、拡大縮小、変換は異なりますとして、スケール、回転し、変換します。 同様に、行列乗算の順序が重要です。 一般に、ABC はこうと同じです。

Matrix クラスが複合変換を構築するためのいくつかの方法を提供します。 Multiply, 、Rotate, 、RotateAt, 、Scale, 、Shear, 、および Translateです。 次の例では、30 度の回転し、y 方向の 2 倍のスケールを設定し、x 軸方向の 5 つのユニットを変換する複合変換の行列を作成します。

Matrix myMatrix = new Matrix();
myMatrix.Rotate(30);
myMatrix.Scale(1, 2, MatrixOrder.Append);
myMatrix.Translate(5, 0, MatrixOrder.Append);

.NET Framework
1.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: