コード例 #1
0
 public void DrawLines(Pen pen, IEnumerable <PointF> points)
 {
     SetOffset(false);
     StartDrawing();
     pen.Apply(this);
     Control.AddLines(points.Select(r => r.ToNS()).ToArray());
     pen.Finish(this);
     EndDrawing();
 }
コード例 #2
0
 public void DrawLine(Pen pen, float startx, float starty, float endx, float endy)
 {
     SetOffset(false);
     StartDrawing();
     pen.Apply(this);
     Control.MoveTo(startx, starty);
     Control.AddLineToPoint(endx, endy);
     pen.Finish(this);
     EndDrawing();
 }
コード例 #3
0
        public void DrawEllipse(Pen pen, float x, float y, float width, float height)
        {
            SetOffset(false);
            StartDrawing();
            var rect = new CGRect(x, y, width, height);

            pen.Apply(this);
            Control.AddEllipseInRect(rect);
            pen.Finish(this);
            EndDrawing();
        }
コード例 #4
0
        public void DrawPath(Pen pen, IGraphicsPath path)
        {
            SetOffset(false);
            StartDrawing();

            pen.Apply(this);
            Control.BeginPath();
            Control.AddPath(path.ToCG());
            //Control.StrokePath();
            pen.Finish(this);

            EndDrawing();
        }
コード例 #5
0
        public void DrawArc(Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle)
        {
            SetOffset(true);
            StartDrawing();

            var rect = new CGRect(x, y, width, height);

            pen.Apply(this);
            var yscale  = rect.Height / rect.Width;
            var centerY = rect.GetMidY();
            var centerX = rect.GetMidX();

            Control.SaveState();             // save so the drawing of the pen isn't affected by the transform
            Control.ConcatCTM(new CGAffineTransform(1.0f, 0, 0, yscale, 0, centerY - centerY * yscale));
            Control.AddArc(centerX, centerY, rect.Width / 2, CGConversions.DegreesToRadians(startAngle), CGConversions.DegreesToRadians(startAngle + sweepAngle), sweepAngle < 0);
            Control.RestoreState();
            pen.Finish(this);
            EndDrawing();
        }