Matrix 클래스

정의

기하학적 변환을 나타내는 3 x 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+ 는 3x3 유사 변형에 저장할 수 있습니다는 Matrix 개체입니다.In GDI+GDI+ you can store an affine transformation in a Matrix object. 나타내는 3x3 유사 변형 매트릭스의 세 번째 열은 항상 때문에 (0, 0, 1)을 생성 하는 경우 처음 두 열에 있는 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

복합 변환에는 뒤에 다른 하나는 변환의 시퀀스입니다.A composite transformation is a sequence of transformations, one followed by the other. 행렬 및 다음과 같은 변환을 고려 합니다.Consider the matrices and transformations in the following list:

행렬Matrix 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 1]로 표시 되는 point (2, 1)로 시작 하 고 A, B, C를 곱합니다. 점 (2, 1)은 나열 된 순서 대로 세 개의 변환을 거칩니다.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]

대신 복합 변환의 세 부분에서 세 가지 별도 행렬을 저장 하는 보다에 곱할 수 B 및 C 함께 전체 복합 변환을 저장 하는 단일 3 × 3 행렬을 가져옵니다.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 가정 = 4. 그런 다음, 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

개별 변환 행렬을 곱하여 복합 변환의 매트릭스를 구성할 수는 팩트 관계 변형 시퀀스는 단일에서 저장할 수 있다는 의미 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 클래스는 복합 변환을 구성 하는 여러 가지 방법을 제공: MultiplyRotate, RotateAtScaleShear, 및 Translate합니다.The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. 다음 예제에서는 먼저 30도 회전 하 고 2 y 방향의 배율을 5 개 단위 x 방향으로 변환 하는 복합 변환의 행렬을 만듭니다.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 클래스의 새 인스턴스를 항등 매트릭스로 초기화합니다.Initializes a new instance of the Matrix class as the identity matrix.

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 클래스의 새 인스턴스를 지정된 사각형 및 지점의 배열에 의해 정의된 기하학적 변환으로 초기화합니다.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 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Matrix class with the specified elements.

속성

Elements

Matrix의 요소를 나타내는 부동 소수점 값의 배열을 가져옵니다.Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity

Matrix가 항등 매트릭스인지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible

Matrix를 역변환할 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether this Matrix is invertible.

OffsetX

Matrix의 x 이동 값(dx 값 또는 셋째 행과 첫째 열에 있는 요소)을 가져옵니다.Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix.

OffsetY

Matrix의 y 이동 값(dy 값 또는 셋째 행과 둘째 열에 있는 요소)을 가져옵니다.Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

메서드

Clone()

Matrix의 정확한 복사본을 만듭니다.Creates an exact copy of this Matrix.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(다음에서 상속됨 MarshalByRefObject)
Dispose()

Matrix에서 사용하는 리소스를 모두 해제합니다.Releases all resources used by this Matrix.

Equals(Object)

지정된 개체가 Matrix이고 이 Matrix와 동일한지 여부를 테스트합니다.Tests whether the specified object is a Matrix and is identical to this Matrix.

Finalize()

가비지 컬렉션이 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

해시 코드를 반환합니다.Returns a hash code.

GetLifetimeService()

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
InitializeLifetimeService()

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
Invert()

역변환할 수 있으면 이 Matrix를 역변환합니다.Inverts this Matrix, if it is invertible.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

(다음에서 상속됨 MarshalByRefObject)
Multiply(Matrix)

지정된 Matrix를 앞에 추가하여 matrix 매개 변수에 지정된 매트릭스를 이 Matrix에 곱합니다.Multiplies this Matrix by the matrix specified in the matrix parameter, by prepending the specified Matrix.

Multiply(Matrix, MatrixOrder)

matrix 매개 변수에 지정된 순서대로 order 매개 변수에 지정된 매트릭스를 이 Matrix에 곱합니다.Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

Reset()

항등 매트릭스의 요소를 포함하도록 이 Matrix를 다시 설정합니다.Resets this Matrix to have the elements of the identity matrix.

Rotate(Single)

원점을 기준으로 지정된 각도만큼 이 Matrix 앞에 시계 방향 회전을 추가합니다.Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle.

Rotate(Single, MatrixOrder)

원점(X 및 Y 좌표가 0임)을 기준으로 angle 매개 변수에 지정된 각도만큼 이 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)

회전을 앞에 추가하여 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)

지정된 순서대로 지정된 지점을 기준으로 이 Matrix에 시계 방향 회전을 적용합니다.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

Scale(Single, Single)

배율 벡터를 앞에 추가하여 지정된 배율 벡터를 이 Matrix에 적용합니다.Applies the specified scale vector to this Matrix by prepending the scale vector.

Scale(Single, Single, MatrixOrder)

지정된 순서대로 지정된 배율 벡터(scaleXscaleY)를 이 Matrix에 적용합니다.Applies the specified scale vector (scaleX and scaleY) to this Matrix using the specified order.

Shear(Single, Single)

기울이기 변환을 앞에 추가하여 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder)

지정된 순서대로 지정된 기울이기 벡터를 이 Matrix에 적용합니다.Applies the specified shear vector to this Matrix in the specified order.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
TransformPoints(Point[])

Matrix가 나타내는 기하학적 변환을 지정된 지점의 배열에 적용합니다.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformPoints(PointF[])

Matrix가 나타내는 기하학적 변환을 지정된 지점의 배열에 적용합니다.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformVectors(Point[])

Matrix의 배율과 회전 구성 요소만 지정된 지점의 배열에 적용합니다.Applies only the scale and rotate components of this Matrix to the specified array of points.

TransformVectors(PointF[])

배열의 각 벡터에 매트릭스를 곱합니다.Multiplies each vector in an array by the matrix. 이 매트릭스의 이동 요소(셋째 행)는 무시됩니다.The translation elements of this matrix (third row) are ignored.

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)

지정된 순서대로 지정된 이동 벡터를 이 Matrix에 적용합니다.Applies the specified translation vector to this Matrix in the specified order.

VectorTransformPoints(Point[])

배열의 각 벡터에 매트릭스를 곱합니다.Multiplies each vector in an array by the matrix. 이 매트릭스의 이동 요소(셋째 행)는 무시됩니다.The translation elements of this matrix (third row) are ignored.

적용 대상

추가 정보