Matrix Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
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.
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(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 |
| Multiply(Matrix) |
Bunu Matrix parametresinde |
| 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 |
| 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 |
| Scale(Single, Single, MatrixOrder) |
Belirtilen ölçek vektörlerini ( |
| 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 ( |
| 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. |