SkiaSharp Dönüşümleri
SkiaSharp grafikleri görüntülemek için dönüşümler hakkında bilgi edinin
SkiaSharp, nesne yöntemi olarak uygulanan geleneksel grafik dönüşümlerini destekler SKCanvas . Matematik ve dönüştürme, SKCanvas grafik nesneler işlendiğinde çizim işlevlerinde belirttiğiniz koordinatları ve boyutları değiştirir. Dönüşümler genellikle yinelenen grafik veya animasyon için çizim için kullanışlıdır. Dönüştürme kullanımı olmadan bit eşlemler veya metin döndürme gibi bazı teknikler mümkün değildir.
SkiaSharp dönüştürmeleri aşağıdaki işlemleri destekler:
- Bir konumdan diğerine kaydırma koordinatlarına çevir
- Koordinatları ve boyutları artırmak veya azaltmak için ölçeklendirin
- Bir nokta etrafında koordinatları döndürmek için döndürün
- Bir dikdörtgenin paralelkenar haline gelmesi için koordinatları yatay veya dikey olacak şekilde eğin
Bunlar, afin dönüştürmeleri olarak bilinir. Afine Dönüşümler her zaman paralel çizgileri korur ve hiçbir zaman koordinat veya boyutun sonsuz hale gelmesine neden olmaz. Bir kare paralelkenar dışında hiçbir şey olarak dönüştürülmez ve bir daire bir elips dışında hiçbir şekilde dönüştürülmez.
SkiaSharp ayrıca standart 3-3 dönüşümü matrisini temel alan, hiçbir zaman uyumsuz dönüşümleri ( projective veya perspektif dönüşümleri olarak da bilinir) destekler. Bir afeki olmayan dönüşüm, bir karenin convex quadriine dönüşmesine izin verir. Bu, tüm iç açıların 180 dereceden küçük olduğu dört taraflı bir şekildir. Çakışmayan dönüştürmeler, koordinatların veya boyutların sonsuz hale gelmesine neden olabilir, ancak 3B efektler için hayati öneme sahiptir.
SkiaSharp ve dönüşümler arasındaki farklar Xamarin.Forms
Xamarin.Forms Ayrıca, SkiaSharp 'dakilerle benzer dönüşümleri destekler. Xamarin.FormsVisualElement Sınıfı aşağıdaki dönüştürme özelliklerini tanımlar:
- _VisualElement_TranslationX "Data-LinkType =" Absolute-path ">
TranslationXve Xamarin_FormsTranslationX_VisualElement_TranslationY" Data-LinkType = "Absolute-path" >TranslationY - _VisualElement_Scale "Data-LinkType =" Absolute-path ">
Scale - Xamarin_Forms _VisualElement_Rotation "Data-LinkType =" mutlak yol ">
Rotation, Xamarin_FormsRotation_VisualElement_RotationX" Data-LinkType = "absolute-path" >RotationXve Xamarin_Forms _VisualElement_RotationY "Data-LinkType =" Absolute-path ">RotationY
RotationXVe RotationY Özellikleri, yarı 3B efektler oluşturan perspektif Dönüşümleridir.
SkiaSharp dönüştürmeleri ve dönüştürmeleri arasında birkaç önemli fark vardır Xamarin.Forms :
İlk fark, SKCanvasXamarin.Forms dönüşümler tek tek türetmeye uygulanırken, SkiaSharp dönüştürmelerini nesnenin tamamına uygulamış olur VisualElement . ( Xamarin.FormsSKCanvasViewSKCanvasView ' Den türetilen, VisualElement ancak bunun Içinde, SKCanvasView skiaskarp dönüştürmelerini uygular.)
SkiaSharp dönüştürmeleri, ' nin sol üst köşesine göredir, SKCanvas ancak Xamarin.Forms dönüşümler, uygulandığı öğesinin sol üst köşesine göre değişir VisualElement . Bu dönüşümler her zaman belirli bir noktaya göre olduğundan, ölçekleme ve döndürme dönüştürmelerini uygularken bu fark önemlidir.
Gerçekten büyük fark, dönüşümler Özelliklerolduğundan, skiasharp dönüştürmelerini Yöntemler. Bu, sözdizimsel farkının ötesinde bir anlam farklılığı: SkiaSharp dönüştürmeleri bir durum ayarlandığı sırada bir işlem gerçekleştirir Xamarin.Forms . SkiaSharp dönüştürmeleri, daha sonra çizilen grafik nesnelerine uygulanır, ancak dönüştürme uygulanmadan önce çizilen grafik nesnelerine uygulanmaz. Buna karşılık, bir Xamarin.Forms dönüşüm, özelliği ayarlandığı anda daha önce işlenmiş bir öğeye uygulanır. SkiaSharp dönüştürmeleri, Yöntemler çağrıldığında birikimlidir; Xamarin.Forms özellik başka bir değerle ayarlandığında dönüşümler değişir.
Bu bölümdeki tüm örnek programlar, Skianetformsgösterileri programının Skiasharp dönüştürmeleri bölümünde görünür. Kaynak kodu çözümün dönüşümler klasöründe bulunabilir.
Çeviri Dönüşümü
SkiaSharp grafikleri kaydırmak için çeviri dönüşümünü nasıl kullanacağınızı öğrenin.
Ölçekleme Dönüşümü
Nesneleri çeşitli boyutlarda ölçeklendirmek için SkiaSharp ölçek dönüşümünü bulur.
Döndürme Dönüşümü
SkiaSharp döndürme dönüşümüyle mümkün olan etkileri ve animasyonları keşfet.
Eğme Dönüşümü
Eğme dönüştürmesinin nasıl eğimli grafik nesnesi oluştur, görün.
Matris Dönüşümleri
Çok yönlü dönüştürme matrisinde SkiaSharp dönüştürmelerine daha derin bir bakış.
Dokunma İşlemeleri
Sürükleme, ölçeklendirme ve döndürme için dokunma işlemleri uygulamak üzere matris dönüşümleri kullanın.
İlişkili Olmayan Dönüşümler
Aykırı olmayan dönüştürme efektleriyle, cumtayı ötesine geçin.
3B Döndürme
3B alanda 2B nesneleri döndürmek için, AFME olmayan dönüşümler kullanın.
Örneği indirin