Matrix Matrix Matrix Matrix Class

定義

ジオメトリック変換を表現する 3 × 3 のアフィン行列をカプセル化します。 Encapsulates a 3-by-3 affine matrix that represents a geometric transform. このクラスは継承できません。 This class cannot be inherited.

public ref class Matrix sealed : MarshalByRefObject, IDisposable
public sealed class Matrix : MarshalByRefObject, IDisposable
type Matrix = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class Matrix
Inherits MarshalByRefObject
Implements IDisposable
継承
実装

注釈

GDI+GDI+でアフィン変換を格納することができます、Matrixオブジェクト。In GDI+GDI+ you can store an affine transformation in a Matrix object. アフィン変換を表す行列の 3 番目の列は常にあるため (0, 0, 1) を構築するとき、最初の 2 つの列に 6 桁の数字のみを指定する、Matrixオブジェクト。Because the third column of a matrix that represents an affine transformation is always (0, 0, 1), you specify only the six numbers in the first two columns when you construct a Matrix object. ステートメントMatrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4)次の図に示すように、マトリックスを作成します。The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

変換Transformations

複合変換Composite Transformations

複合変換とは、変換後にもう 1 つのシーケンスです。A composite transformation is a sequence of transformations, one followed by the other. マトリックスと、次の一覧で変換を考慮してください。Consider the matrices and transformations in the following list:

行列 AMatrix A 90 度回転します。Rotate 90 degrees
行列 BMatrix B X 方向に 2 倍でスケーリングします。Scale by a factor of 2 in the x direction
マトリックス CMatrix C Y 方向のユニット 3 つを変換します。Translate 3 units in the y direction

ポイント (2, 1) でまず — マトリックス [2 1 1] によって表される、C、点 (2, 1) が行われる順序で 3 つの変換し、A、B、乗算。If we start with the point (2, 1) — represented by the matrix [2 1 1] — and multiply by A, then B, then C, the point (2, 1) will undergo the three transformations in the order listed.

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

はなく 3 つの独立した行列に複合変換の 3 つの部分を格納するよりは、A を乗算できます複合変換全体を格納する 1 つの 3 つ × 3 行列を取得するには、まとめて、B、および C。Rather than store the three parts of the composite transformation in three separate matrices, you can multiply A, B, and C together to get a single 3×3 matrix that stores the entire composite transformation. たとえば、ABC D. を =D を掛けたポイントが A、B、C の乗算ポイントと同じ結果を提供し、Suppose ABC = D. Then a point multiplied by D gives the same result as a point multiplied by A, then B, then C.

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

次の図は、A、B、C および D のマトリックスThe following illustration shows the matrices A, B, C, and D.

変換Transformations

複合変換の行列は、個々 の変換行列を掛け合わせることで形成できますファクトは 1 つの任意のアフィン変換のシーケンスを格納できることを意味Matrixオブジェクト。The fact that the matrix of a composite transformation can be formed by multiplying the individual transformation matrices means that any sequence of affine transformations can be stored in a single Matrix object.

注意事項

複合変換の順序が重要です。The order of a composite transformation is important. 一般に、回転、拡大縮小、変換が同じではありません、スケーリング、回転、順に変換します。In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. 同様に、行列乗算の順序が重要です。Similarly, the order of matrix multiplication is important. 一般に、ABC はバックアップと同じです。In general, ABC is not the same as BAC.

Matrixクラスが複合変換を構築するためのいくつかのメソッドを提供します。 MultiplyRotateRotateAtScaleShear、およびTranslateします。The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. 次の例では、30 ° 度回転し、y 方向の 2 倍で拡大または縮小し、x 方向に 5 つのユニットを変換する複合変換の行列を作成します。The following example creates the matrix of a composite transformation that first rotates 30 degrees, then scales by a factor of 2 in the y direction, and then translates 5 units in the x direction:

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

コンストラクター

Matrix() Matrix() Matrix() Matrix()

Matrix クラスの新しいインスタンスを単位行列として初期化します。 Initializes a new instance of the Matrix class as the identity matrix.

Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[])

Matrix クラスの新しいインスタンスを初期化し、指定した四角形および点の配列で定義されたジオメトリック変換に設定します。 Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[])

Matrix クラスの新しいインスタンスを初期化し、指定した四角形および点の配列で定義されたジオメトリック変換に設定します。 Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single)

指定した要素を使用して、Matrix クラスの新しいインスタンスを初期化します。 Initializes a new instance of the Matrix class with the specified elements.

プロパティ

Elements Elements Elements Elements

この Matrix の要素を表す浮動小数点値の配列を取得します。 Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity IsIdentity IsIdentity IsIdentity

この Matrix が単位行列かどうかを示す値を取得します。 Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible IsInvertible IsInvertible IsInvertible

この Matrix が反転できるかどうかを示す値を取得します。 Gets a value indicating whether this Matrix is invertible.

OffsetX OffsetX OffsetX OffsetX

この Matrix の x 方向の平行移動値 (dx 値、すなわち 3 番目の行の最初の列の要素) を取得します。 Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix.

OffsetY OffsetY OffsetY OffsetY

この Matrix の y 方向の平行移動値 (dy 値、すなわち 3 番目の行の 2 番目の列の要素) を取得します。 Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

方法

Clone() Clone() Clone() Clone()

この Matrix の同一コピーを作成します。 Creates an exact copy of this Matrix.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

この Matrix によって使用されているすべてのリソースを解放します。 Releases all resources used by this Matrix.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定されたオブジェクトが Matrix であるかどうか、またこの Matrix と同一であるかどうかをテストします。 Tests whether the specified object is a Matrix and is identical to this Matrix.

Finalize() Finalize() Finalize() Finalize()

オブジェクトが、ガベージ コレクションによって収集される前に、リソースの解放とその他のクリーンアップ操作の実行を試みることができるようにします。 Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

ハッシュ コードを返します。 Returns a hash code.

GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。 Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
Invert() Invert() Invert() Invert()

この Matrix が反転できる場合に反転します。 Inverts this Matrix, if it is invertible.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。 Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Multiply(Matrix) Multiply(Matrix) Multiply(Matrix) Multiply(Matrix)

指定した Matrix を前に付加することで、この Matrixmatrix パラメーターで指定した行列を乗算します。 Multiplies this Matrix by the matrix specified in the matrix parameter, by prepending the specified Matrix.

Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder)

この Matrixmatrix パラメーターで指定した行列を、order パラメーターで指定した順序で乗算します。 Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

Reset() Reset() Reset() Reset()

単位行列の要素を持つように対象の Matrix をリセットします。 Resets this Matrix to have the elements of the identity matrix.

Rotate(Single) Rotate(Single) Rotate(Single) Rotate(Single)

原点を中心とする指定した角度の時計回りの回転を、この Matrix の前に付加します。 Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle.

Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder)

angle パラメーターで指定した量の、原点 (x 座標と y 座標が 0) を中心とする時計回りの回転を、この Matrix に適用します。 Applies a clockwise rotation of an amount specified in the angle parameter, around the origin (zero x and y coordinates) for this Matrix.

RotateAt(Single, PointF) RotateAt(Single, PointF) RotateAt(Single, PointF) RotateAt(Single, PointF)

回転を前に付加することで、point パラメーターで指定した点を中心とする時計回りの回転を、この Matrix に適用します。 Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder)

指定した点を中心とする時計回りの回転を、指定した順序でこの Matrix に適用します。 Applies a clockwise rotation about the specified point to this Matrix in the specified order.

Scale(Single, Single) Scale(Single, Single) Scale(Single, Single) Scale(Single, Single)

スケール ベクターを前に付加することで、指定したスケール ベクターをこの Matrix に適用します。 Applies the specified scale vector to this Matrix by prepending the scale vector.

Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder)

指定した順序を使用して、指定したスケール ベクター (scaleXscaleY) をこの Matrix に適用します。 Applies the specified scale vector (scaleX and scaleY) to this Matrix using the specified order.

Shear(Single, Single) Shear(Single, Single) Shear(Single, Single) Shear(Single, Single)

傾斜変換を前に付加することで、指定した傾斜ベクターをこの Matrix に適用します。 Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder)

指定した順序で、指定した傾斜ベクターをこの Matrix に適用します。 Applies the specified shear vector to this Matrix in the specified order.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。 Returns a string that represents the current object.

(Inherited from Object)
TransformPoints(PointF[]) TransformPoints(PointF[]) TransformPoints(PointF[]) TransformPoints(PointF[])

この Matrix が表すジオメトリック変換を、指定した点の配列に適用します。 Applies the geometric transform represented by this Matrix to a specified array of points.

TransformPoints(Point[]) TransformPoints(Point[]) TransformPoints(Point[]) TransformPoints(Point[])

この Matrix が表すジオメトリック変換を、指定した点の配列に適用します。 Applies the geometric transform represented by this Matrix to a specified array of points.

TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[])

配列内の各ベクターを行列で乗算します。 Multiplies each vector in an array by the matrix. この行列の平行移動要素 (3 番目の行) は無視されます。 The translation elements of this matrix (third row) are ignored.

TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[])

この Matrix のスケールおよび回転の成分だけを、指定した点の配列に適用します。 Applies only the scale and rotate components of this Matrix to the specified array of points.

Translate(Single, Single) Translate(Single, Single) Translate(Single, Single) Translate(Single, Single)

平行移動ベクターを前に付加することで、指定した平行移動ベクター (offsetXoffsetY) をこの Matrix に適用します。 Applies the specified translation vector (offsetX and offsetY) to this Matrix by prepending the translation vector.

Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder)

指定した順序で、指定した平行移動ベクターをこの Matrix に適用します。 Applies the specified translation vector to this Matrix in the specified order.

VectorTransformPoints(Point[]) VectorTransformPoints(Point[]) VectorTransformPoints(Point[]) VectorTransformPoints(Point[])

配列内の各ベクターを行列で乗算します。 Multiplies each vector in an array by the matrix. この行列の平行移動要素 (3 番目の行) は無視されます。 The translation elements of this matrix (third row) are ignored.

適用対象

こちらもご覧ください