System.Drawing.Drawing2D.Matrix sınıfı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
sınıfı, Matrix geometrik dönüşümü temsil eden 3'e 3 benfin matrisini kapsüller.
GDI+'da, bir nesnede Matrix bir benze dönüştürme depolayabilirsiniz. Bir matrisin bir benzeşim dönüşümünü temsil eden üçüncü sütunu her zaman (0, 0, 1) olduğundan, nesneyi Matrix 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.
Not
.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 matrisleri çarpılarak oluşturulabilmesi, herhangi bir benze dönüştürme dizisinin tek Matrix bir nesnede depolanabileceği anlamına gelir.
Dikkat
Bileşik dönüşümün sırası önemlidir. Genel olarak döndürün, sonra ölçeklendirin, sonra çevirin ölçekle aynı değildir, sonra döndürün ve çevirin. 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çeklendirerek x yönünde 5 birim çeviren 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)
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin