Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Windows 10'daki uygulamalar için DirectComposition yerine Windows.UI.Composition API'lerini kullanmanızı öneririz. Daha fazla bilgi için bkz. Görsel katmanını kullanarak masaüstü uygulamanızı modernleştirme.
Bu konu, iki boyutlu (2B) benfin (doğrusal) dönüşümler için Microsoft DirectComposition desteğini açıklar ve DirectComposition'ın desteklediği dönüşüm türlerini açıklar.
DirectComposition, 3B perspektif dönüşümlerini de destekler, ancak ara bit eşlem oluşturulmasını gerektirdiğinden, DirectComposition bunları dönüşümler yerine efektler olarak kabul eder. 3B perspektif dönüştürme efektleri hakkında bilgi için bkz. Efektler.
Bu konu aşağıdaki bölümleri içerir:
- DirectComposition 2D dönüşümü nedir?
- DirectComposition 2B koordinat alanı
- 2B dönüşümler için destek
- Matris 2B dönüştürmeleri
- Grupları Dönüştürme
- Dönüştürme animasyonu
- İlgili konular
DirectComposition 2D dönüşümü nedir?
2B dönüştürme, görseli başka bir konuma taşıyarak (çeviri), büyütme veya küçültme (ölçeklendirme), döndürme (döndürme) veya şeklini bozarak (eğriltme) görselin konumunu, boyutunu veya doğasını iki boyutta değiştirmenize olanak tanır.
2B dönüşüm, bir görselin noktalarını aynı koordinat alanı içindeki bir konumdan diğerine veya bir koordinat alanından diğerine eşleyerek elde edilir. Bu eşleme, aşağıdaki tabloda gösterildiği gibi üç sütun kayan nokta değerleri içeren üç satırdan oluşan bir koleksiyon olarak tanımlanan, dönüştürme matrisi olarak adlandırılan değerler tablosu tarafından açıklanmıştır.
M11Default: 1.0
M21Default: 0.0
M31OffsetX: 0.0
M12Default: 0.0
M22Default: 1.0
M32Offsety: 0.0
0.0
0.0
1.0
Affine 2D dönüşümleri için dönüştürme matrisi, önceki dönüştürme matrisinden üçüncü sütunu atlayan 3'e 2 matristir. Aşağıdaki tabloda bu matrisin düzeni gösterilmektedir.
M11Default: 1.0
M21Default: 0.0
M31OffsetX: 0.0
M12Default: 0.0
M22Default: 1.0
M32Offsety: 0.0
Not
DirectComposition, stereo içeriğe 2B dönüşümler uygularken özel bir işlem yapmaz. Bu, bir 2B dönüşüm uygulandığında 3B içeriğin bozuk görünebileceği anlamına gelir.
DirectComposition 2D koordinat alanı
DirectComposition solak 2B koordinat alanı kullanır; yani pozitif x ekseni değerleri sağa, pozitif y ekseni değerleri aşağı doğru artar. Görseller, aşağıdaki çizimde gösterildiği gibi x ekseni ve y ekseninin kesiştiği nokta olan (0, 0) çıkış noktasına göre konumlandırılır.
Sol elle kullanılan koordinat alanının x eksenini ve y eksenini 
3'e 2 dönüştürme matrisindeki değerleri değiştirerek, nesneyi iki boyutta döndürebilir, ölçeklendirebilir, eğebilir ve çevirebilirsiniz. Örneğin, OffsetX değerini 100 ve OffsetY değerini 200 olarak ayarlarsanız, nesneyi 100 piksel sağa ve 200 piksel aşağı taşırsınız.
Affine 2D dönüşümleri desteği
Aşağıdaki tabloda DirectComposition tarafından desteklenen affine 2D dönüşüm türleri açıklanır ve çeşitli dönüştürme türlerini gerçekleştirmek için kullanabileceğiniz arabirimler listelenir.
| Dönüştürme/arabirim | Açıklama | Resim |
|---|---|---|
| 2B IDCompositionRotateTransform döndürme | bir görseli belirtilen merkez noktası hakkında belirtilen açıya göre döndürün. | özgün karenin merkezi hakkında saat yönünde 45 derece döndürülmüş bir karenin ![]() |
| IdCompositionScaleTransform2BÖlçeklendirme | bir görseli belirtilen merkez noktası hakkında belirtilen faktöre göre ölçeklendirin. | yüzde 130 ölçeklendirilmiş kareçizimi |
| 2B Eğrilt IDCompositionSkewTransform | bir görseli x ekseni ve y ekseni boyunca belirtilen açıya göre ve belirtilen merkez noktasının çevresinde eğriltin. |
|
| 2B IDCompositionTranslateTransform çevirisi | bir görselin konumunu x ekseni ve y ekseni yönünde değiştirin. | Bir karenin ![]() |
Matris 2B dönüşümleri
IDCompositionMatrixTransform arabirimi, kendi 3 x 2 benfin 2B dönüşüm matrisinizi tanımlamanızı ve bir görsele uygulamanızı sağlar. Bu arabirim, diğer DirectComposition dönüştürme arabirimleri aracılığıyla kullanılamayan bir tür affine 2D dönüşümü uygulamanız gerekiyorsa kullanışlıdır. Matrisi bir D2D_MATRIX_3X2_F yapısını doldurup IDCompositionMatrixTransform::SetMatrix yöntemine geçirerek tanımlarsınız.
Grupları dönüştürme
Birden çok dönüşümü tek bir dönüşümde birleştirmek için dönüştürme gruplarını kullanabilirsiniz. Dönüştürme grubu, matrisleri koleksiyonda belirtildikleri sırada birlikte çarpılan dönüştürme nesneleri koleksiyonunu tanımlar. Sonuçta elde edilen dönüştürme matrisi görsele uygulanır. Dönüşüm grubu, her dönüşümü ayrı ayrı uygulamakla aynı sonucu verir.
Dönüştürme grubundaki dönüştürme nesnelerinin sırasının önemli olduğunu unutmayın. Örneğin, bir görsel önce döndürülür, sonra ölçeklendirilir ve sonra çevrilirse, sonuç görselin önce çevrilmesi, döndürülmesi ve sonra ölçeklendirilmesinden farklıdır. DirectComposition, dönüştürmeleri her zaman koleksiyonda belirtildiği sırayla bir görsele uygular.
Dönüştürme grubu oluşturmak için, önce gruba eklemek istediğiniz dönüştürme nesnelerini oluşturun ve ardından IDCompositionDevice::CreateTransformGroup yöntemine bir dönüştürme nesnesi işaretçileri dizisi geçirin. Bir dönüştürme grubu oluşturduktan sonra, herhangi bir dönüştürme nesnesi ekleyemez veya kaldıramazsınız. Ancak, koleksiyondaki tek tek dönüştürme nesnelerinin özelliklerini değiştirebilirsiniz ve değişiklikler sonuçta elde edilen dönüştürme matrisinde yansıtılır.
Animasyonu dönüştürme
Dönüşümün özellikleri animasyonlu olabilir. Bir özellik animasyonlu olduğunda, DirectComposition özelliğin değerini bir kerede değil, zamanla değiştirir. Bu özellikle geçiş oluştururken kullanışlıdır. Daha fazla bilgi için bkz. Animasyon.

