Matrix Sınıf

Tanım

Geometrik dönüşümü temsil eden 3'e 3 benfin matrisi kapsüller. Bu sınıf devralınamaz.

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
Devralma
Uygulamalar

Açıklamalar

Matrix sınıfı, geometrik dönüşümü temsil eden bir 3x3 afin matrisini kapsüller.

GDI+'da, bir Matrix nesnesinde bir affin dönüşümü depolayabilirsiniz. Matrisin bir benzeşim dönüşümünü temsil eden üçüncü sütunu her zaman (0, 0, 1) olduğundan, bir Matrix nesnesi oluştururken ilk iki sütunda yalnızca altı sayı belirtirsiniz. deyimi Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) , aşağıdaki şekilde gösterilen matrisi oluşturur.

Matris.

Note

.NET 6 ve sonraki sürümlerde, bu türü içeren System.Drawing.Common paketi yalnızca Windows işletim sistemlerinde desteklenir. Platformlar arası uygulamalarda bu türün kullanılması derleme zamanı uyarılarına ve çalışma zamanı özel durumlarına neden olur. Daha fazla bilgi için bkz . System.Drawing.Common yalnızca Windows'ta desteklenir.

Bileşik dönüştürmeler

Bileşik dönüştürme, biri diğeri tarafından takip edilen bir dönüşüm dizisidir. Aşağıdaki listede yer alan matrisleri ve dönüşümleri göz önünde bulundurun:

Matris Dönüşüm
Matris A 90 derece döndür
Matris B X yönünde 2 faktörüne göre ölçeklendirme
Matris C 3 birimi y yönünde çevirin

[2 1 1] matrisiyle temsil edilen nokta (2, 1) ile başlar ve A, B, sonra C ile çarpılırsanız, nokta (2, 1) listelenen sırayla üç dönüştürmeden geçer.

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

Bileşik dönüşümün üç bölümünü üç ayrı matriste depolamak yerine, bileşik dönüşümün tamamını depolayan tek bir 3×3 matrisi elde etmek için A, B ve C'yi birlikte çarpabilirsiniz. varsayalım ABC = D. Ardından D ile çarpılan bir nokta, A, B ve sonra da C ile çarpılan noktayla aynı sonucu verir.

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

Aşağıdaki çizimde A, B, C ve D matrisleri gösterilmektedir.

Matrisler A, B, C ve D

Bileşik dönüştürme matrisinin tek dönüştürme matrislerinin çarpılmasıyla oluşturulabilmesi, herhangi bir benze dönüştürme dizisinin tek bir Matrix nesnesinde depolanabileceği anlamına gelir.

Caution

Bileşik dönüşümün sırası önemlidir. Genel olarak, önce döndürmek, sonra ölçeklendirmek, sonra çevirmek ile önce ölçeklendirmek, sonra döndürmek, sonra çevirmek aynı değildir. Benzer şekilde, matris çarpımının sırası önemlidir. Genel olarak, ABC BAC ile aynı değildir.

Matrix sınıfı bileşik dönüştürme oluşturmak için çeşitli yöntemler sağlar: Multiply, Rotate, RotateAt, Scale, Shearve Translate. Aşağıdaki örnek, önce 30 derece döndüren, ardından y yönünde 2 kat ölçeklendiren ve en sonunda x yönünde 5 birim taşıyan bir bileşik dönüştürme matrisini oluşturur.

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)

Oluşturucular

Name Description
Matrix()

Kimlik matrisi Matrix olarak sınıfının yeni bir örneğini başlatır.

Matrix(Matrix3x2)

Belirtilen Matrixkullanarak bir matrix oluşturur.

Matrix(Rectangle, Point[])

Sınıfın Matrix yeni bir örneğini, belirtilen dikdörtgen ve nokta dizisi tarafından tanımlanan geometrik dönüşüme başlatır.

Matrix(RectangleF, PointF[])

Sınıfın Matrix yeni bir örneğini, belirtilen dikdörtgen ve nokta dizisi tarafından tanımlanan geometrik dönüşüme başlatır.

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

Belirtilen öğelerle sınıfının yeni bir örneğini Matrix başlatır.

Özellikler

Name Description
Elements

Bu Matrixöğesinin öğelerini temsil eden kayan nokta değerleri dizisi alır.

IsIdentity

Bunun Matrix kimlik matrisi olup olmadığını belirten bir değer alır.

IsInvertible

Bunun Matrix ters çevrilemez olup olmadığını belirten bir değer alır.

MatrixElements

Matris için öğeleri alır veya ayarlar.

OffsetX

Bu Matrixöğesinin x çeviri değerini (dx değeri veya üçüncü satır ve ilk sütundaki öğe) alır.

OffsetY

Bu Matrixöğesinin y çeviri değerini (dy değeri veya üçüncü satır ve ikinci sütundaki öğe) alır.

Yöntemler

Name Description
Clone()

Bu Matrixtam bir kopyasını oluşturur.

CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm ilgili bilgileri içeren bir nesne oluşturur.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Bu Matrixtarafından kullanılan tüm kaynakları serbest bırakır.

Equals(Object)

Belirtilen nesnenin bir Matrix olup olmadığını ve ile aynı olup olmadığını sınar Matrix.

Finalize()

Bir nesnenin, atık toplama tarafından geri kazanılmadan önce kaynakları boşaltmaya ve diğer temizleme işlemlerini gerçekleştirmeye çalışmasına izin verir.

GetHashCode()

Bir karma kodu döndürür.

GetLifetimeService()
Geçersiz.

Bu örnek için yaşam süresi ilkesini denetleen geçerli yaşam süresi hizmet nesnesini alır.

(Devralındığı yer: MarshalByRefObject)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
InitializeLifetimeService()
Geçersiz.

Bu örneğin yaşam süresi ilkesini denetlemek için bir yaşam süresi hizmet nesnesi alır.

(Devralındığı yer: MarshalByRefObject)
Invert()

Ters çevrilemezse, bu Matrixters çevirir.

MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli MarshalByRefObject nesnenin sığ bir kopyasını oluşturur.

(Devralındığı yer: MarshalByRefObject)
Multiply(Matrix, MatrixOrder)

Bunu Matrix parametresinde matrix belirtilen matrisle ve parametresinde order belirtilen sırada çarpar.

Multiply(Matrix)

Bunu Matrix parametresinde matrix belirtilen matrisle çarpar ve belirtilen Matrixdeğerini önceden uygular.

Reset()

Bunu, kimlik matrisinin öğelerine sahip olacak şekilde sıfırlar Matrix .

Rotate(Single, MatrixOrder)

Parametresinde belirtilen bir miktarın saat yönünde döndürmesini angle , bu Matrixiçin kaynağın çevresinde (sıfır x ve y koordinatları) uygular.

Rotate(Single)

Buna Matrix , çıkış noktası etrafında ve belirtilen açıya göre saat yönünde bir döndürme ekler.

RotateAt(Single, PointF, MatrixOrder)

Belirtilen nokta hakkında belirtilen sırayla buna Matrix saat yönünde döndürme uygular.

RotateAt(Single, PointF)

Parametrede Matrix belirtilen nokta etrafında ve döndürmeyi önceden uygulayarak buna point saat yönünde döndürme uygular.

Scale(Single, Single, MatrixOrder)

Belirtilen ölçek vektörlerini (scaleX ve scaleY) belirtilen sırayı kullanarak buna Matrix uygular.

Scale(Single, Single)

Ölçek vektörlerini önceden kaldırarak belirtilen ölçek vektörlerini buna Matrix uygular.

Shear(Single, Single, MatrixOrder)

Belirtilen kesme vektörlerini belirtilen sırada buna Matrix uygular.

Shear(Single, Single)

Kesme dönüştürmesini önceden uygulayarak belirtilen kesme vektörlerini buna Matrix uygular.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)
TransformPoints(Point[])

Bunun Matrix temsil ettiği geometrik dönüşümü belirtilen nokta dizisine uygular.

TransformPoints(PointF[])

Bunun Matrix temsil ettiği geometrik dönüşümü belirtilen nokta dizisine uygular.

TransformPoints(ReadOnlySpan<Point>)

Bunun Matrix temsil ettiği geometrik dönüşümü belirtilen nokta dizisine uygular.

TransformPoints(ReadOnlySpan<PointF>)

Bunun Matrix temsil ettiği geometrik dönüşümü belirtilen nokta dizisine uygular.

TransformVectors(Point[])

Bunun Matrix yalnızca ölçek ve döndürme bileşenlerini belirtilen nokta dizisine uygular.

TransformVectors(PointF[])

Bir dizideki her vektöri matrisle çarpar. Bu matrisin (üçüncü satır) çeviri öğeleri yoksayılır.

TransformVectors(ReadOnlySpan<Point>)

Bir dizideki her vektöri matrisle çarpar. Bu matrisin (üçüncü satır) çeviri öğeleri yoksayılır.

TransformVectors(ReadOnlySpan<PointF>)

Bir dizideki her vektöri matrisle çarpar. Bu matrisin (üçüncü satır) çeviri öğeleri yoksayılır.

Translate(Single, Single, MatrixOrder)

Belirtilen çeviri vektörlerini belirtilen sırada buna Matrix uygular.

Translate(Single, Single)

Belirtilen çeviri vektörlerini (offsetX ve offsetY) çeviri vektörlerini önceden uygulayarak buna Matrix uygular.

VectorTransformPoints(Point[])

Bir dizideki her vektöri matrisle çarpar. Bu matrisin (üçüncü satır) çeviri öğeleri yoksayılır.

VectorTransformPoints(ReadOnlySpan<Point>)

Bir dizideki her vektöri matrisle çarpar. Bu matrisin (üçüncü satır) çeviri öğeleri yoksayılır.

Şunlara uygulanır

Ayrıca bkz.