Esempio n. 1
0
        public static void FillRoundedRectangle(this ICanvas target, Rectangle rect, double topLeftCornerRadius, double topRightCornerRadius, double bottomLeftCornerRadius, double bottomRightCornerRadius)
        {
            var path = new PathF();

            path.AppendRoundedRectangle((float)rect.X, (float)rect.Y, (float)rect.Width, (float)rect.Height, (float)topLeftCornerRadius, (float)topRightCornerRadius, (float)bottomLeftCornerRadius, (float)bottomRightCornerRadius);
            target.FillPath(path);
        }
Esempio n. 2
0
 void AddBezier(PathF path, BezierSegment bezierSegment)
 {
     path.CurveTo(
         (float)(bezierSegment.Point1.X), (float)(bezierSegment.Point1.Y),
         (float)(bezierSegment.Point2.X), (float)(bezierSegment.Point2.Y),
         (float)(bezierSegment.Point3.X), (float)(bezierSegment.Point3.Y));
 }
Esempio n. 3
0
        private static void DrawStrokes(ICanvas canvas)
        {
            //
            // DrawXXXX Methods
            //
            canvas.DrawLine(0, 0, 100, 100);
            canvas.Translate(100, 0);
            canvas.DrawRectangle(0, 0, 100, 100);
            canvas.Translate(100, 0);
            canvas.DrawEllipse(0, 0, 100, 100);
            canvas.Translate(100, 0);
            canvas.DrawRoundedRectangle(0, 0, 100, 100, 25);

            var vPath = new PathF();

            vPath.MoveTo(0, 0);
            vPath.LineTo(0, 100);
            vPath.QuadTo(100, 100, 100, 0);
            vPath.CurveTo(50, 0, 100, 50, 50, 50);
            canvas.Translate(100, 0);
            canvas.DrawPath(vPath);

            canvas.Translate(100, 0);
            canvas.DrawRectangle(0, 0, 100, 50);
            canvas.Translate(100, 0);
            canvas.DrawEllipse(0, 0, 100, 50);
            canvas.Translate(100, 0);
            canvas.DrawRoundedRectangle(0, 0, 100, 50, 25);
            canvas.Translate(100, 0);
            canvas.DrawRoundedRectangle(0, 0, 100, 25, 25);
        }
Esempio n. 4
0
        private void SKElement_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e)
        {
            ICanvas canvas = new SkiaCanvas()
            {
                Canvas = e.Surface.Canvas
            };

            //canvas.FillColor = Colors.Transparent;
            //canvas.FillColor = Colors.White.WithAlpha(0.9f);
            //canvas.FillRectangle(0, 0, (float)DrawSurface.ActualWidth, (float)DrawSurface.ActualHeight);


            //canvas.StrokeColor = Colors.Red.WithAlpha(.5f);
            canvas.StrokeColor = Colors.Red;
            canvas.StrokeSize  = 2;
            var path = new PathF();

            if (_points.Count > 0)
            {
                path.MoveTo(_points[0].X, _points[0].Y);
                for (int i = 1; i < _points.Count; i++)
                {
                    path.LineTo(_points[i].X, _points[i].Y);
                }
                //path.Close();
                canvas.DrawPath(path);
            }
        }
Esempio n. 5
0
        /// <include file="../../../docs/Microsoft.Maui.Controls.Shapes/EllipseGeometry.xml" path="//Member[@MemberName='AppendPath']/Docs" />
        public override void AppendPath(PathF path)
        {
            var radiusX = (float)RadiusX;
            var radiusY = (float)RadiusY;

            path.AppendEllipse((float)Center.X - radiusX, (float)Center.Y - radiusY, radiusX * 2f, radiusY * 2f);
        }
Esempio n. 6
0
        public static void DrawRoundedRectangle(this ICanvas target, float x, float y, float width, float height, float topLeftCornerRadius, float topRightCornerRadius, float bottomLeftCornerRadius, float bottomRightCornerRadius)
        {
            var path = new PathF();

            path.AppendRoundedRectangle(x, y, width, height, topLeftCornerRadius, topRightCornerRadius, bottomLeftCornerRadius, bottomRightCornerRadius);
            target.DrawPath(path);
        }
Esempio n. 7
0
        public override PathF PathForBounds(Microsoft.Maui.Graphics.Rectangle rect)
        {
            var path = new PathF();

            path.AppendRectangle(rect);
            return(path);
        }
Esempio n. 8
0
        public override PathF PathForBounds(Rectangle rect)
        {
            var path = new PathF();

            path.AppendEllipse(new RectangleF((float)rect.X, (float)rect.Y, (float)rect.Width, (float)rect.Height));
            return(path);
        }
Esempio n. 9
0
 void AddPolyLine(PathF path, PolyLineSegment polyLineSegment)
 {
     foreach (var p in polyLineSegment.Points)
     {
         path.LineTo((float)p.X, (float)p.Y);
     }
 }
        public override void Draw(ICanvas canvas)
        {
            canvas.SaveState();

            canvas.SetShadow(
                CanvasDefaults.DefaultShadowOffset,
                CanvasDefaults.DefaultShadowBlur,
                CanvasDefaults.DefaultShadowColor);

            canvas.FillColor = Colors.Blue;
            var path = new PathF(10, 10);

            path.LineTo(30, 10);
            path.LineTo(20, 30);
            path.Close();
            canvas.FillPath(path);

            canvas.FillColor = Colors.Salmon;
            canvas.FillRectangle(100, 100, 100, 100);

            canvas.FillColor = Colors.Beige;
            canvas.FillOval(100, 300, 100, 50);

            canvas.RestoreState();
        }
Esempio n. 11
0
        public override PathF PathForBounds(RectangleF rect)
        {
            var path = new PathF();

            path.AppendRoundedRectangle(rect, _cornerRadius);
            return(path);
        }
Esempio n. 12
0
        public override void Draw(ICanvas canvas)
        {
            canvas.SaveState();

            canvas.StrokeColor = Colors.Black;
            canvas.StrokeSize  = 10;
            canvas.Translate(0, -350);

            //
            // StrokeLocation.CENTER
            //
            canvas.StrokeSize = 10;
            canvas.DrawRectangle(50, 400, 100, 50);
            canvas.DrawEllipse(200, 400, 100, 50);
            canvas.DrawRoundedRectangle(350, 400, 100, 50, 25);

            var path = new PathF();

            path.MoveTo(550, 400);
            path.LineTo(500, 450);
            path.LineTo(600, 450);
            path.Close();
            canvas.DrawPath(path);

            canvas.RestoreState();
        }
Esempio n. 13
0
 void AddBezier(PathF path, BezierSegment bezierSegment, double density)
 {
     path.CurveTo(
         (float)(density * bezierSegment.Point1.X), (float)(density * bezierSegment.Point1.Y),
         (float)(density * bezierSegment.Point2.X), (float)(density * bezierSegment.Point2.Y),
         (float)(density * bezierSegment.Point3.X), (float)(density * bezierSegment.Point3.Y));
 }
Esempio n. 14
0
        public override PathF PathForBounds(RectangleF rect)
        {
            var path = new PathF();

            path.AppendRectangle(rect);
            return(path);
        }
Esempio n. 15
0
        public static void FillRoundedRectangle(this ICanvas target, RectangleF rect, float topLeftCornerRadius, float topRightCornerRadius, float bottomLeftCornerRadius, float bottomRightCornerRadius)
        {
            var path = new PathF();

            path.AppendRoundedRectangle(rect, topLeftCornerRadius, topRightCornerRadius, bottomLeftCornerRadius, bottomRightCornerRadius);
            target.FillPath(path);
        }
Esempio n. 16
0
        PathF IShape.PathForBounds(Graphics.Rectangle bounds)
        {
            var path = new PathF();

            AppendPath(path);

            return(path);
        }
Esempio n. 17
0
        public PathF PathForBounds(Rectangle rect)
        {
            var path = new PathF();

            path.AppendRoundedRectangle(rect, (float)CornerRadius.TopLeft, (float)CornerRadius.TopRight, (float)CornerRadius.BottomLeft, (float)CornerRadius.BottomRight);

            return(path);
        }
Esempio n. 18
0
        public override PathF PathForBounds(Rectangle rect)
        {
            var cornerRadius = (float)(Orientation == Orientation.Horizontal ? rect.Height : rect.Width) / 2f;
            var path         = new PathF();

            path.AppendRoundedRectangle(rect, cornerRadius);
            return(path);
        }
Esempio n. 19
0
        public static PathF AsPathF(this CGPath target)
        {
            var path      = new PathF();
            var converter = new PathConverter(path);

            target.Apply(converter.ApplyCGPathFunction);
            return(path);
        }
Esempio n. 20
0
        public PathF PathForBounds(Rect rect)
        {
            var path = new PathF();

            path.AppendRoundedRectangle(rect, (float)RadiusY + (float)RadiusX);

            return(path);
        }
Esempio n. 21
0
        public RectangleF GetPathBoundsWhenRotated(PointF centerOfRotation, PathF path, float angle)
        {
            var nativePath = path.AsRotatedCGPath(centerOfRotation, 1, 1f, angle);
            var bounds     = nativePath.PathBoundingBox;

            nativePath.Dispose();
            return(bounds.AsRectangleF());
        }
Esempio n. 22
0
        public PathF PathForBounds(Rect rect)
        {
            var path = new PathF();

            path.AppendEllipse(0f, 0f, (float)Width, (float)Height);

            return(path.AsScaledPath((float)Width / (float)rect.Width));
        }
Esempio n. 23
0
        public override PathF PathForBounds(Rectangle rect)
        {
            var path       = new PathF();
            var cornerSize = (float)Math.Min(rect.Width, rect.Height) / 2;

            path.AppendRoundedRectangle(rect, cornerSize);
            return(path);
        }
Esempio n. 24
0
        public override PathF GetPath()
        {
            var path = new PathF();

            Data.AppendPath(path);

            return(path);
        }
Esempio n. 25
0
        public PathF PathForBounds(Rect rect)
        {
            var path = new PathF();

            Data?.AppendToPath(path);

            return(path.AsScaledPath((float)Width / (float)rect.Width));
        }
Esempio n. 26
0
        public static UIBezierPath AsUIBezierPath(this PathF target)
        {
            if (target == null)
            {
                return(null);
            }

            return(UIBezierPath.FromPath(target.AsCGPath()));
        }
Esempio n. 27
0
        public static CGPath AsCGPath(
            this PathF target,
            float scale,
            float zoom)
        {
            var factor = scale * zoom;

            return(AsCGPath(target, 0, 0, factor, factor));
        }
Esempio n. 28
0
        public PathF PathForBounds(Rectangle rect)
        {
            var path = new PathF();

            path.MoveTo((float)X1, (float)Y1);
            path.LineTo((float)X2, (float)Y2);

            return(path.AsScaledPath((float)Width / (float)rect.Width));
        }
Esempio n. 29
0
 void AddPolyLine(PathF path, PolyLineSegment polyLineSegment, double density)
 {
     foreach (var p in polyLineSegment.Points)
     {
         path.LineTo(
             (float)(density * p.X),
             (float)(density * p.Y));
     }
 }
Esempio n. 30
0
        public override PathF GetPath()
        {
            var path = new PathF();

            path.MoveTo((float)X1, (float)Y1);
            path.LineTo((float)X2, (float)Y2);

            return(path);
        }
Esempio n. 31
0
        private void btnDrawText_Click(object sender, EventArgs e)
        {
            m_painter.SetSource(Color.Red);

            using (PathF path = new PathF())
            {
                using (FogNET.Font font = new FogNET.Font("Tahoma", 12))
                {
                    path.AddString("Hello Foggy :)", font, new PointF(120, 50));
                }

                m_painter.FillPath(path);
            }

            UpdatePictureBox();
        }