Я использую SkiaSharp
, чтобы нарисовать немного SKRect на SKCanvas
. Я пытаюсь реализовать функциональность «масштабировать, чтобы подогнать и отцентрировать» для области рисования. Я использовал следующий код для вычисления ограничивающей рамки для всех SKRect
s.
private SKRect GetBoundingBox()
{
int xMin = AllRectangles.Min(s => (int)s.Left);
int yMin = AllRectangles.Min(s => (int)s.Top);
int xMax = AllRectangles.Max(s => (int)s.Right);
int yMax = AllRectangles.Max(s => (int)s.Bottom);
SKRect result = new SKRect(xMin, yMin, xMax, yMax);
return result;
}
Теперь я хочу перевести SKMatrix
, используемый во время PaintSurface, чтобы отцентрировать ограничивающий прямоугольник (со всеми элементами в нем) и масштабировать ограничивающий прямоугольник так, чтобы он соответствовал SKCanvasView
. У меня есть GIF, который показывает представление навигатора в Photoshop, делая то, что я пытаюсь построить.