Matrix Klasa

Definicja

Hermetyzuje macierz afinicznym 3-by-3, która reprezentuje transformację geometryczną.Encapsulates a 3-by-3 affine matrix that represents a geometric transform. Klasa ta nie może być dziedziczona.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
Dziedziczenie
Implementuje

Uwagi

W programie GDI+ można przechowywać transformację afinicznym w Matrix obiekcie.In GDI+ you can store an affine transformation in a Matrix object. Ponieważ trzecia kolumna macierzy, która reprezentuje transformację afinicznym, jest zawsze (0, 0, 1), podczas konstruowania obiektu należy określić tylko sześć cyfr w pierwszych dwóch kolumnach 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. Instrukcja Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) konstruuje tablicę pokazaną na poniższym rysunku.The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

PrzekształceniaTransformations

Przekształcenia złożoneComposite Transformations

Transformacja złożona to sekwencja przekształceń, po której następują inne.A composite transformation is a sequence of transformations, one followed by the other. Rozważ macierze i przekształcenia na poniższej liście:Consider the matrices and transformations in the following list:

Macierz AMatrix A Obróć o 90 stopniRotate 90 degrees
Macierz BMatrix B Skalowanie według współczynnika 2 w kierunku xScale by a factor of 2 in the x direction
Macierz CMatrix C Translacja 3 jednostek w kierunku yTranslate 3 units in the y direction

Jeśli zaczynamy od punktu (2, 1) — reprezentowanego przez macierz [2 1 1] — i pomnóż przez, a następnie B, a następnie C, punkt (2, 1) przejdzie trzy przekształcenia w podanej kolejności.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]

Zamiast przechowywać trzy części transformacji złożonej w trzech oddzielnych macierzach, można pomnożyć A, B i C, aby uzyskać jedną macierz 3 × 3, w której jest przechowywana cała transformacja złożona.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. Załóżmy, że ABC = D. Następnie punkt pomnożony przez D daje ten sam wynik jako punkt pomnożony przez, a następnie 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]

Na poniższej ilustracji przedstawiono macierze A, B, C i D.The following illustration shows the matrices A, B, C, and D.

PrzekształceniaTransformations

Fakt, że macierz transformacji złożonej można utworzyć przez pomnożenie pojedynczych macierzy transformacji oznacza, że każda sekwencja transformacji afinicznym może być przechowywana w pojedynczym Matrix obiekcie.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.

Przestroga

Kolejność transformacji złożonej jest ważna.The order of a composite transformation is important. Ogólnie rzecz biorąc, Obróć, a następnie Skaluj, a następnie Przekształć nie jest taki sam jak skala, a następnie Obróć, a następnie Przekształć.In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. Podobnie kolejność mnożenia macierzy jest ważna.Similarly, the order of matrix multiplication is important. Ogólnie rzecz biorąc, ABC nie jest taka sama jak BK.In general, ABC is not the same as BAC.

MatrixKlasa zawiera kilka metod tworzenia transformacji złożonej: Multiply ,,,, Rotate RotateAt Scale Shear i Translate .The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. Poniższy przykład tworzy macierz transformacji złożonej, która najpierw obraca 30 stopni, a następnie skaluje współczynnik 2 w kierunku y, a następnie tłumaczy 5 jednostek w kierunku 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)

Konstruktory

Matrix()

Inicjuje nowe wystąpienie Matrix klasy jako macierz tożsamości.Initializes a new instance of the Matrix class as the identity matrix.

Matrix(Rectangle, Point[])

Inicjuje nowe wystąpienie Matrix klasy do transformacji geometrycznej zdefiniowanej przez określony prostokąt i tablicę punktów.Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(RectangleF, PointF[])

Inicjuje nowe wystąpienie Matrix klasy do transformacji geometrycznej zdefiniowanej przez określony prostokąt i tablicę punktów.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)

Inicjuje nowe wystąpienie Matrix klasy z określonymi elementami.Initializes a new instance of the Matrix class with the specified elements.

Właściwości

Elements

Pobiera tablicę wartości zmiennoprzecinkowych reprezentujących elementy tego elementu Matrix .Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity

Pobiera wartość wskazującą Matrix , czy jest to macierz tożsamości.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible

Pobiera wartość wskazującą, czy Matrix jest to odwracalna.Gets a value indicating whether this Matrix is invertible.

OffsetX

Pobiera wartość tłumaczenia x (wartość DX lub element w trzecim wierszu i pierwszej kolumnie) Matrix .Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix.

OffsetY

Pobiera wartość tłumaczenia y (wartość dy lub element w trzecim wierszu i drugiej kolumnie) tego elementu Matrix .Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

Metody

Clone()

Tworzy dokładną kopię tego elementu Matrix .Creates an exact copy of this Matrix.

CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez ten program Matrix .Releases all resources used by this Matrix.

Equals(Object)

Testuje, czy określony obiekt jest Matrix i jest identyczny z tym Matrix .Tests whether the specified object is a Matrix and is identical to this Matrix.

Finalize()

Umożliwia obiektowi podjęcie próby zwolnienia zasobów i wykonywanie innych operacji czyszczenia przed odinstalowaniem ich przez wyrzucanie elementów bezużytecznych.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

Zwraca kod skrótu.Returns a hash code.

GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
Invert()

Odwraca to Matrix , jeśli jest odwracalna.Inverts this Matrix, if it is invertible.

MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
Multiply(Matrix)

Mnoży tę Matrix wartość przez macierz określoną w matrix parametrze, w zależności od określonej Matrix .Multiplies this Matrix by the matrix specified in the matrix parameter, by prepending the specified Matrix.

Multiply(Matrix, MatrixOrder)

Mnoży tę Matrix wartość przez macierz określoną w matrix parametrze i w kolejności określonej w order parametrze.Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

Reset()

Resetuje ten Matrix element tak, aby miał elementy macierzy tożsamości.Resets this Matrix to have the elements of the identity matrix.

Rotate(Single)

Dołącz do tego Matrix obrotu w prawo, wokół źródła i według określonego kąta.Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle.

Rotate(Single, MatrixOrder)

Stosuje obrót w prawo do wartości określonej w angle parametrze wokół źródła (współrzędne zerowe x i y) 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)

Stosuje obrót w prawo do tego Matrix wokół punktu określonego w point parametrze i w zależności od obrotu.Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

RotateAt(Single, PointF, MatrixOrder)

Stosuje obrót w prawo o określony punkt do tego Matrix w określonej kolejności.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

Scale(Single, Single)

Stosuje określony wektor skali do tego Matrix , w zależności od wektora skali.Applies the specified scale vector to this Matrix by prepending the scale vector.

Scale(Single, Single, MatrixOrder)

Stosuje określony wektor skali ( scaleX i scaleY ) do tego Matrix przy użyciu określonej kolejności.Applies the specified scale vector (scaleX and scaleY) to this Matrix using the specified order.

Shear(Single, Single)

Stosuje określony wektor ścinania do tego Matrix przez zaczekanie na przekształcenie ścinania.Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder)

Stosuje określony wektor ścinania do tego Matrix w określonej kolejności.Applies the specified shear vector to this Matrix in the specified order.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
TransformPoints(Point[])

Stosuje transformację geometryczną reprezentowaną przez tę wartość Matrix do określonej tablicy punktów.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformPoints(PointF[])

Stosuje transformację geometryczną reprezentowaną przez tę wartość Matrix do określonej tablicy punktów.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformVectors(Point[])

Stosuje tylko składniki skala i obrót tego elementu Matrix do określonej tablicy punktów.Applies only the scale and rotate components of this Matrix to the specified array of points.

TransformVectors(PointF[])

Mnoży każdy wektor w tablicy przez macierz.Multiplies each vector in an array by the matrix. Elementy tłumaczenia tej macierzy (trzeci wiersz) są ignorowane.The translation elements of this matrix (third row) are ignored.

Translate(Single, Single)

Stosuje określone wektory tłumaczenia ( offsetX i offsetY ) do tego w Matrix zależności od wektora tłumaczenia.Applies the specified translation vector (offsetX and offsetY) to this Matrix by prepending the translation vector.

Translate(Single, Single, MatrixOrder)

Stosuje określony wektor tłumaczenia do tego Matrix w określonej kolejności.Applies the specified translation vector to this Matrix in the specified order.

VectorTransformPoints(Point[])

Mnoży każdy wektor w tablicy przez macierz.Multiplies each vector in an array by the matrix. Elementy tłumaczenia tej macierzy (trzeci wiersz) są ignorowane.The translation elements of this matrix (third row) are ignored.

Dotyczy