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(); }
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(); }
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(); }
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(); }
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(); }