Beispiel #1
0
        public void DrawArc(Pen pen, float x, float y, float width, float height, float startAngle, float sweepAngle)
        {
            StartDrawing();

            var rect = TranslateView(new System.Drawing.RectangleF(x, y, width, height), true);

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

            Control.ConcatCTM(new CGAffineTransform(1.0f, 0, 0, yscale, 0, centerY - centerY * yscale));
            Control.AddArc(centerX, centerY, rect.Width / 2, Conversions.DegreesToRadians(startAngle), Conversions.DegreesToRadians(startAngle + sweepAngle), sweepAngle < 0);
            Control.StrokePath();
            EndDrawing();
        }