Преобразование SkiaSharp
Сведения о преобразованиях для отображения графики SkiaSharp
SkiaSharp поддерживает традиционные графические преобразования, реализованные как методы SKCanvas
объекта. Математически преобразования изменяют координаты и размеры, заданные в функциях рисования в SKCanvas
виде графических объектов. Преобразования часто удобны для рисования повторяющихся графиков или анимации. Некоторые методы , такие как поворот растровых изображений или текста, невозможно без использования преобразований.
Преобразования SkiaSharp поддерживают следующие операции:
- Преобразование в смену координат из одного расположения в другое
- Масштабирование для увеличения или уменьшения координат и размеров
- Поворот для поворота координат вокруг точки
- Смещение координат по горизонтали или по вертикали, чтобы прямоугольник стал параллелограммой
Они называются аффинными преобразованиями. Аффинные преобразования всегда сохраняют параллельные линии и никогда не приводят к бесконечности координат или размеров. Квадрат никогда не преобразуется в что-либо, отличное от параллелограммы, и круг никогда не преобразуется в что-либо, кроме многоточия.
SkiaSharp также поддерживает неаффинные преобразования (также называемые преобразованиями проективных или перспективных ) на основе стандартной матрицы преобразования 3–3. Неаффинное преобразование позволяет преобразовывать квадрат в любую выпуклую четырехсторонняя фигура, которая является четырехсторонней фигурой со всеми углами интерьера менее 180 градусов. Неаффинные преобразования могут привести к тому, что координаты или размеры становятся бесконечными, но они жизненно важны для трехмерных эффектов.
Различия между SkiaSharp и Xamarin.Forms преобразованиями
Xamarin.Forms также поддерживает преобразования, аналогичные преобразованиям в SkiaSharp. Класс Xamarin.FormsVisualElement
определяет следующие свойства преобразования:
RotationY
Свойства RotationX
— это преобразования перспективы, которые создают эффекты quasi-3D.
Существует несколько важных различий между преобразованиями и Xamarin.Forms преобразованиями SkiaSharp:
Первое различие заключается в том, что преобразования SkiaSharp применяются ко всему SKCanvas
объекту, а Xamarin.Forms преобразования применяются к отдельным VisualElement
производным. (Вы можете применить Xamarin.Forms преобразования к SKCanvasView
самому объекту, так как SKCanvasView
производные от VisualElement
этого SKCanvasView
преобразования SkiaSkarp применяются.)
Преобразования SkiaSharp относятся к левому верхнему углу преобразования в то время Xamarin.Forms как преобразования относятся к левому верхнему углу SKCanvas
VisualElement
, к которому они применяются. Это различие важно при применении преобразований масштабирования и поворота, так как эти преобразования всегда относительно определенной точки.
Действительно большое различие заключается в том, что преобразования SKiaSharp являются методами, а Xamarin.Forms преобразования являются свойствами. Это семантическая разница за пределами синтаксического различия: преобразования SkiaSharp выполняют операцию, когда Xamarin.Forms преобразования задают состояние. Преобразования SkiaSharp применяются к последующим графическим объектам, но не к графическим объектам, которые рисуются перед применением преобразования. В отличие от этого, Xamarin.Forms преобразование применяется к ранее отрисованным элементу, как только свойство задано. Преобразования SkiaSharp являются накопительными, так как вызываются методы; Xamarin.Forms преобразования заменяются при установке свойства другим значением.
Все примеры программ в этом разделе отображаются в разделе "Преобразования SkiaSharp" примера программы. Исходный код можно найти в папке "Преобразования " решения.
Преобразование переноса
Узнайте, как использовать преобразование перевода для смены графики SkiaSharp.
Преобразование масштаба
Откройте преобразование масштабирования SkiaSharp для масштабирования объектов в различные размеры.
Преобразование циклического сдвига
Изучите эффекты и анимации с помощью преобразования SkiaSharp.
Преобразование наклона
Узнайте, как преобразование смещений может создавать графический объект наклона.
Преобразования матрицы
Углубиться в преобразования SkiaSharp с помощью универсальной матрицы преобразования.
Манипуляции сенсорного ввода
Используйте преобразования матриц для реализации сенсорных манипуляций для перетаскивания, масштабирования и поворота.
Неаффинные преобразования
Перейдите за рамки oridinary с неаффинными эффектами преобразования.
Трехмерный поворот
Используйте неаффинные преобразования для поворота трехмерных объектов в трехмерном пространстве.