Transformace SkiaSharp
Informace o transformacích pro zobrazování ve skiasharpu grafiky
Ve skiasharpu podporuje tradiční transformace grafiky, které jsou implementovány jako metody SKCanvas objektu. V matematickém formátu transformují změny souřadnic a velikostí, které zadáte ve SKCanvas funkcích kreslení při vykreslování grafických objektů. Transformace jsou často pohodlné pro kreslení opakujících se grafiky nebo pro animaci. Některé techniky, například otočení rastrových obrázků nebo text, nejsou možné bez použití transformací.
Transformace ve skiasharpu podporují následující operace:
- Převést na posunutí souřadnic z jednoho umístění do druhého
- Škála pro zvětšování a zmenšení souřadnic a velikostí
- Otočit pro otočení souřadnic kolem bodu
- Zkosit pro souřadnici Shift vodorovně nebo svisle, aby se obdélník stal kosoúhelníkem
Jsou známé jako transformace spřažení . Transformace spřažení vždycky zachovávají paralelní čáry a nikdy nezpůsobí, že souřadnice nebo velikost se stanou nekonečno. Čtverec není nikdy transformované na cokoli jiného než Kosoúhelník a kruh není nikdy transformované na jinou hodnotu než tři tečky.
Ve skiasharpu také podporuje transformace bez spřažení (označované také jako neboperspektivy ) založené na standardní transformační matrici 3:3. Transformace, která není spřažením, umožňuje transformaci čtverce na jakékoli konvexní čtyřúhelník, což je čtyřnásobné číslo s vnitřním úhly menším než 180 stupňů. Transformace bez spřažení mohou způsobit, že se souřadnice nebo velikosti stanou nekonečný, ale jsou nezbytné pro trojrozměrné efekty.
Rozdíly mezi ve skiasharpu a Xamarin.Forms transformacemi
Xamarin.Forms podporuje také transformace, které jsou podobné těm v ve skiasharpu. Xamarin.FormsVisualElement Třída definuje následující transformační vlastnosti:
- _VisualElement_TranslationX "data-LINKTYPE =" absolutní cestu ">
TranslationXa Xamarin_FormsTranslationX_VisualElement_TranslationY data-linktype =" absolutní cesta ">TranslationY - _VisualElement_Scale "data-LINKTYPE =" absolutní cestu ">
Scale - Xamarin_Forms _VisualElement_Rotation "data-LINKTYPE =" absolutní cesta ">
RotationXamarin_FormsRotation_VisualElement_RotationX data-linktype =" absolutní cesta ">RotationXa Xamarin_Forms _VisualElement_RotationY" data-LINKTYPE = "absolutní cesta" >RotationY
RotationXVlastnosti a RotationY jsou transformace perspektivy, které vytvářejí kvazi-3D efekt.
Mezi ve skiasharpu transformacemi a transformacemi je několik podstatných rozdílů Xamarin.Forms :
První rozdíl spočívá v tom, že transformace ve skiasharpu jsou aplikovány na celý SKCanvas objekt, zatímco Xamarin.Forms transformace jsou aplikovány na jednotlivé VisualElement deriváty. (Můžete použít Xamarin.Forms transformaci na SKCanvasView samotný objekt, protože SKCanvasView je odvozen z VisualElement , ale v rámci SKCanvasView něj transformace SkiaSkarp platí.)
Transformace ve skiasharpu jsou relativní vzhledem k levému hornímu rohu, SKCanvas zatímco Xamarin.Forms transformace jsou relativní vzhledem k levému hornímu rohu, VisualElement na které se aplikují. Tento rozdíl je důležitý při použití transformací škálování a rotace, protože tyto transformace jsou vždy relativní vzhledem ke konkrétnímu bodu.
Skutečným rozdílem je, že transformace ve skiasharpu jsou metody , zatímco transformace jsou vlastnosti. Toto je sémantický rozdíl, který překračuje syntaktický rozdíl: ve skiasharpu transformes provádí operaci, zatímco Xamarin.Forms transformuje nastavení stavu. Transformace ve skiasharpu se vztahují na následně vykreslené objekty grafiky, ale ne na objekty grafiky, které se vykreslují před použitím transformace. Naopak Xamarin.Forms transformace se vztahuje na dříve vykreslený prvek ihned po nastavení vlastnosti. Transformace ve skiasharpu jsou při volání metod kumulativní. Xamarin.Forms transformace jsou nahrazeny, pokud je vlastnost nastavena s jinou hodnotou.
Všechny ukázkové programy v této části se zobrazí v části ve skiasharpu transformes v programu SkiaSharpFormsDemos . Zdrojový kód najdete ve složce transformes v řešení.
Transformace translace
Naučte se používat transformaci přeložení k posunutí ve skiasharpu grafiky.
Transformace měřítka
Prohlédněte si transformaci ve skiasharpu Scale pro škálování objektů na různé velikosti.
Transformace rotace
Prozkoumejte efekty a animace, které je možné otočit pomocí ve skiasharpu.
Transformace zkosení
Podívejte se, jak transformace zkosit může vytvořit nakloněný grafický objekt.
Maticové transformace
Podrobně hlouběji do ve skiasharpu transformací pomocí všestranné transformační matrice.
Manipulace dotyků
Použijte transformaci matic k implementaci manipulace dotykového ovládání pro přetahování, škálování a rotaci.
Neafinní transformace
Jít nad rámec oridinary s efekty transformace bez spřažení.
3D otáčení
Použijte transformaci bez spřažení k otočení 2D objektů v 3D prostoru.
Stažení ukázky