Przekształcenia biblioteki SkiaSharp
Dowiedz się więcej o przekształceniach do wyświetlania grafiki SkiaSharp
SkiaSharp obsługuje tradycyjne przekształcenia graficzne implementowane jako metody SKCanvas
obiektu. Matematycznie przekształca zmiany współrzędnych i rozmiarów określonych w funkcjach rysunku w SKCanvas
miarę renderowania obiektów graficznych. Przekształcenia są często wygodne do rysowania powtarzalnych grafik lub animacji. Niektóre techniki — takie jak obracające się mapy bitowe lub tekst — nie są możliwe bez użycia przekształceń.
Przekształcenia SkiaSharp obsługują następujące operacje:
- Tłumaczenie na przesunięcie współrzędnych z jednej lokalizacji na inną
- Skalowanie w celu zwiększenia lub zmniejszenia współrzędnych i rozmiarów
- Obracanie w celu obracania współrzędnych wokół punktu
- Niesymetryczność w celu przesunięcia współrzędnych w poziomie lub w pionie, aby prostokąt stał się równoległym
Są one znane jako przekształcenia affine . Przekształcenia affiny zawsze zachowują linie równoległe i nigdy nie powodują, że współrzędna lub rozmiar stają się nieskończone. Kwadrat nigdy nie jest przekształcany w coś innego niż równoległy, a okrąg nigdy nie jest przekształcany w coś innego niż wielokropek.
SkiaSharp obsługuje również przekształcenia inne niż affine (nazywane również transformacjami projektowymi lub perspektywowymi ) na podstawie standardowej macierzy transformacji 3-by-3. Transformacja nie-affina pozwala na przekształcenie kwadratu w każdy wypukły czworokąt, który jest czterostronną postacią ze wszystkimi kątami wewnętrznymi mniejszymi niż 180 stopni. Przekształcenia niezwiązane z affiną mogą powodować nieskończoność współrzędnych lub rozmiarów, ale są one istotne dla efektów 3D.
Różnice między skiaSharp i Xamarin.Forms przekształcenia
Xamarin.Forms Obsługuje również przekształcenia podobne do tych w usłudze SkiaSharp. Klasa definiuje następujące właściwości przekształcania Xamarin.FormsVisualElement
:
Właściwości RotationX
i RotationY
to przekształcenia perspektywy, które tworzą efekty quasi-3D.
Istnieje kilka kluczowych różnic między przekształceniami SkiaSharp i Xamarin.Forms przekształceniami:
Pierwsza różnica polega na tym, że przekształcenia SkiaSharp są stosowane do całego SKCanvas
obiektu, podczas gdy Xamarin.Forms przekształcenia są stosowane do poszczególnych VisualElement
pochodnych. (Można zastosować Xamarin.Forms przekształcenia do SKCanvasView
samego obiektu, ponieważ SKCanvasView
pochodzi z VisualElement
klasy , ale w tym SKCanvasView
przypadku mają zastosowanie przekształcenia SkiaSkarp).
Przekształcenia SkiaSharp są względem lewego górnego rogu SKCanvas
, podczas gdy Xamarin.Forms przekształcenia są względem lewego górnego rogu VisualElement
, do którego są stosowane. Ta różnica jest ważna podczas stosowania przekształceń skalowania i rotacji, ponieważ te przekształcenia są zawsze względem określonego punktu.
Naprawdę duża różnica polega na tym, że przekształcenia SKiaSharp to metody , podczas gdy Xamarin.Forms przekształcenia są właściwościami. Jest to semantyczna różnica poza różnicą składniową: przekształcenia SkiaSharp wykonują operację, podczas gdy Xamarin.Forms przekształca stan. Przekształcenia SkiaSharp mają zastosowanie do następnie rysowanych obiektów graficznych, ale nie do obiektów graficznych, które są rysowane przed zastosowaniem przekształcenia. Xamarin.Forms Natomiast przekształcenie ma zastosowanie do wcześniej renderowanego elementu, gdy tylko właściwość jest ustawiona. Przekształcenia SkiaSharp są skumulowane, ponieważ metody są wywoływane; Xamarin.Forms przekształcenia są zastępowane, gdy właściwość jest ustawiana na inną wartość.
Wszystkie przykładowe programy w tej sekcji są wyświetlane w sekcji Przekształć SkiaSharp w przykładowym programie. Kod źródłowy można znaleźć w folderze Transforms rozwiązania.
Przekład — przekształcenie
Dowiedz się, jak używać przekształcenia tłumaczenia w celu przesunięcia grafiki SkiaSharp.
Skalowanie — przekształcenie
Odkryj przekształcenie skali SkiaSharp w celu skalowania obiektów do różnych rozmiarów.
Obrót — przekształcenie
Zapoznaj się z efektami i animacjami, które można wykonać za pomocą przekształcenia obracania SkiaSharp.
Pochylenie — przekształcenie
Zobacz, jak transformacja niesymetryczności może tworzyć przechylone obiekty graficzne.
Przekształcenia macierzowe
Dowiedz się więcej na temat przekształceń SkiaSharp za pomocą uniwersalnej macierzy transformacji.
Manipulacje za pomocą dotyku
Użyj przekształceń macierzy, aby zaimplementować manipulowanie dotykiem w celu przeciągania, skalowania i obrotu.
Przekształcenia nieafiniczne
Wykraczaj poza oridinary z efektami transformacji nieazynowej.
Obrót 3D
Użyj przekształceń innych niż affine, aby obrócić obiekty 2D w przestrzeni 3D.