Trasformazioni di SkiaSharpSkiaSharp Transforms

Scaricare l'esempio scaricare l'esempioDownload Sample Download the sample

Informazioni sulle trasformazioni per la visualizzazione grafica di SkiaSharpLearn about transforms for displaying SkiaSharp graphics

SkiaSharp supporta trasformazioni di grafica tradizionale che vengono implementate come metodi del SKCanvas oggetto.SkiaSharp supports traditional graphics transforms that are implemented as methods of the SKCanvas object. Matematica, le trasformazioni modificano le coordinate e le dimensioni che specificano in SKCanvas disegno funzioni come gli oggetti grafici vengono sottoposti a rendering.Mathematically, transforms alter the coordinates and sizes that you specify in SKCanvas drawing functions as the graphical objects are rendered. Trasformazioni sono spesso utili per il disegno di grafica ripetitiva o per l'animazione.Transforms are often convenient for drawing repetitive graphics or for animation. Alcune tecniche — , ad esempio la rotazione bitmap o text — non sono possibili senza l'uso di trasformazioni.Some techniques — such as rotating bitmaps or text — are not possible without the use of transforms.

Trasformazioni di SkiaSharp supportano le operazioni seguenti:SkiaSharp transforms support the following operations:

  • Tradurre alle coordinate di spostamento da una posizione a un'altraTranslate to shift coordinates from one location to another
  • Scalabilità per aumentare o ridurre le coordinate e le dimensioniScale to increase or decrease coordinates and sizes
  • Ruotare per ruotare le coordinate intorno a un puntoRotate to rotate coordinates around a point
  • Una differenza da spostare coordina orizzontalmente o verticalmente in modo che un rettangolo diventa un parallelogrammaSkew to shift coordinates horizontally or vertically so that a rectangle becomes a parallelogram

Si parla affini Trasforma.These are known as affine transforms. Le trasformazioni affini mantenere sempre linee parallele e non generano mai una coordinata o una dimensione diventi infinito.Affine transforms always preserve parallel lines and never cause a coordinate or size to become infinite. Un quadrato mai viene trasformato in un valore diverso da un parallelogramma, e un cerchio mai viene trasformato in un valore diverso da un'ellisse.A square is never transformed into anything other than a parallelogram, and a circle is never transformed into anything other than an ellipse.

SkiaSharp supporta anche le trasformazioni non affini (chiamato anche le divisioni proiettive delle oppure prospettiva Trasforma) basato su una matrice di trasformazione da 3-3 standard.SkiaSharp also supports non-affine transforms (also called projective or perspective transforms) based on a standard 3-by-3 transform matrix. Una trasformazione non affine consente un quadrato da trasformare in qualsiasi quadrilatero convesso che è una figura i quattro lati con tutti gli angoli interni minori di 180 gradi.A non-affine transform allows a square to be transformed into any convex quadrilateral, which is a four-sided figure with all interior angles less than 180 degrees. Le trasformazioni non affini possono causare coordinate o dimensioni diventare infinito, ma sono fondamentali per gli effetti 3D.Non-affine transforms can cause coordinates or sizes to become infinite, but they are vital for 3D effects.

Differenze tra SkiaSharp e trasformazioni di xamarin. FormsDifferences between SkiaSharp and Xamarin.Forms Transforms

Xamarin. Forms supporta anche le trasformazioni che sono simili a quelle di SkiaSharp.Xamarin.Forms also supports transforms that are similar to those in SkiaSharp. Xamarin. Forms VisualElement classe definisce le proprietà di trasformazione seguenti:The Xamarin.Forms VisualElement class defines the following transform properties:

Il RotationX e RotationY trasformazioni prospettiva che creano effetti poi-3D sono di proprietà.The RotationX and RotationY properties are perspective transforms that create quasi-3D effects.

Esistono alcune differenze fondamentali tra trasformazioni di SkiaSharp e trasformazioni di xamarin. Forms:There are several crucial differences between SkiaSharp transforms and Xamarin.Forms transforms:

La prima differenza è che le trasformazioni di SkiaSharp vengono applicate all'intera SKCanvas dell'oggetto durante le trasformazioni di xamarin. Forms sono applicate al singolo VisualElement derivati.The first difference is that SkiaSharp transforms are applied to the entire SKCanvas object while the Xamarin.Forms transforms are applied to individual VisualElement derivatives. (È possibile applicare le trasformazioni di xamarin. Forms per il SKCanvasView dell'oggetto stesso, poiché SKCanvasView deriva da VisualElement, ma all'interno che SKCanvasView, applicano le trasformazioni SkiaSkarp.)(You can apply the Xamarin.Forms transforms to the SKCanvasView object itself, because SKCanvasView derives from VisualElement, but within that SKCanvasView, the SkiaSkarp transforms apply.)

Le trasformazioni di SkiaSharp sono rispetto all'angolo superiore sinistro del SKCanvas durante le trasformazioni di xamarin. Forms sono rispetto all'angolo superiore sinistro del VisualElement al quale vengono applicati.The SkiaSharp transforms are relative to the upper-left corner of the SKCanvas while Xamarin.Forms transforms are relative to the upper-left corner of the VisualElement to which they are applied. Questa differenza è importante quando si applica la scalabilità e rotazione Trasforma perché queste trasformazioni sono sempre relativi a un momento specifico.This difference is important when applying scaling and rotation transforms because these transforms are always relative to a particular point.

La realtà grande differenza è che sono trasformazioni di SKiaSharp metodi anche se sono le trasformazioni di xamarin. Forms proprietà.The really big difference is that SKiaSharp transforms are methods while the Xamarin.Forms transforms are properties. Si tratta di una differenza semantica oltre la differenza sintattica: Le trasformazioni SkiaSharp eseguono un'operazione mentre le trasformazioni di Novell. Forms impostano uno stato.This is a semantic difference beyond the syntactical difference: SkiaSharp transforms perform an operation while Xamarin.Forms transforms set a state. Trasformazioni di SkiaSharp si applicano agli oggetti di grafica disegnati successivamente, ma non agli oggetti di grafica disegnati prima che venga applicata la trasformazione.SkiaSharp transforms apply to subsequently drawn graphics objects, but not to graphics objects that are drawn before the transform is applied. Al contrario, una trasformazione di xamarin. Forms viene applicato a un elemento precedentemente sottoposti a rendering, non appena la proprietà è impostata.In contrast, a Xamarin.Forms transform applies to a previously rendered element as soon as the property is set. Trasformazioni di SkiaSharp sono cumulative, come i metodi vengono chiamati; Trasformazioni di xamarin. Forms vengono sostituite quando la proprietà è impostata con un altro valore.SkiaSharp transforms are cumulative as the methods are called; Xamarin.Forms transforms are replaced when the property is set with another value.

Tutti i programmi di esempio in questa sezione vengono visualizzati nella trasformazioni di SkiaSharp sezione il SkiaSharpFormsDemos programma.All the sample programs in this section appear in the SkiaSharp Transforms section of the SkiaSharpFormsDemos program. Codice sorgente è reperibile nel trasforma cartella della soluzione.Source code can be found in the Transforms folder of the solution.

Trasformazione di traslazioneThe Translate Transform

Informazioni su come usare la trasformazione di traslazione da spostare in SkiaSharp grafica.Learn how to use the translate transform to shift SkiaSharp graphics.

Trasformazione di ridimensionamentoThe Scale Transform

Scopri la trasformazione di scala di SkiaSharp per ridimensionare gli oggetti per diverse dimensioni.Discover the SkiaSharp scale transform for scaling objects to various sizes.

Trasformazione di rotazioneThe Rotate Transform

Esplorare gli effetti e animazioni possibili con la trasformazione di rotazione SkiaSharp.Explore the effects and animations possible with the SkiaSharp rotate transform.

Trasformazione di inclinazioneThe Skew Transform

Vedere come la trasformazione di inclinazione può creare inclinato gli oggetti grafici.See how the skew transform can create tilted graphical object.

Trasformazioni con matriceMatrix Transforms

Approfondimenti trasformazioni di SkiaSharp con la matrice di trasformazione versatili.Dive deeper into SkiaSharp transforms with the versatile transform matrix.

Manipolazioni tramite toccoTouch Manipulations

Matrice di utilizzare le trasformazioni da implementare manipolazioni di tocco per il trascinamento, ridimensionamento e rotazione.Use matrix transforms to implement touch manipulations for dragging, scaling, and rotation.

Trasformazioni non affiniNon-Affine Transforms

Andare oltre le oridinary con effetti di trasformazione non affine.Go beyond the oridinary with non-affine transform effects.

Rotazione 3D3D Rotation

Usare le trasformazioni non affini ruotare gli oggetti 2D nello spazio 3D.Use non-affine transforms to rotate 2D objects in 3D space.