VintaSoft Imaging .NET SDK 15.2: Документация для .NET разработчика
Vintasoft.Imaging.Drawing Namespace / DrawingEngine Class / DrawArc Methods / DrawArc(IDrawingPen,RectangleF,Single,Single,DrawingLineCap,DrawingLineCap) Method
Синтаксис Example Требования Смотрите также
В этом разделе
DrawArc(IDrawingPen,RectangleF,Single,Single,DrawingLineCap,DrawingLineCap) Метод (DrawingEngine)
В этом разделе
Рисует дугу, заданную эллипсом, заданным структурой System.Drawing.RectangleF, и двумя радиальными линиями с заданными окончаниями линий.
Синтаксис
'Declaration

Public Overloads Sub DrawArc( _
ByVal pen
IDrawingPen, который определяет цвет, ширину и стиль формы круга.
As IDrawingPen, _
ByVal rect
System.Drawing.RectangleF, представляющий прямоугольные границы эллипса, из которого взята дуга.
As System.Drawing.RectangleF, _
ByVal startAngle
Начальный угол дуги, измеряемый в градусах по часовой стрелке от оси X.
As Single, _
ByVal sweepAngle
Угол между startAngle и концом дуги.
As Single, _
ByVal startCap
Конец линии, который следует использовать для рисования начального конца линии.
As DrawingLineCap, _
ByVal endCap
Конец линии, который следует использовать для рисования конечного конца линии.
As DrawingLineCap _
)

Parameters

pen
IDrawingPen, который определяет цвет, ширину и стиль формы круга.
rect
System.Drawing.RectangleF, представляющий прямоугольные границы эллипса, из которого взята дуга.
startAngle
Начальный угол дуги, измеряемый в градусах по часовой стрелке от оси X.
sweepAngle
Угол между startAngle и концом дуги.
startCap
Конец линии, который следует использовать для рисования начального конца линии.
endCap
Конец линии, который следует использовать для рисования конечного конца линии.
Пример

Вот пример, который показывает, как нарисовать дугу с помощью движка рисования.


''' <summary>
''' Draws primitives (rectangle, ellipse, arc, pie, curve) on specified drawing engine.
''' </summary>
''' <param name="drawingEngine">Drawing engine.</param>
''' <param name="area">Area to draw objects in.</param>
Public Shared Sub DrawPrimitivesExample(drawingEngine As DrawingEngine, area As RectangleF)
    Using brush As IDrawingBrush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.LightGreen)
        Using pen As IDrawingPen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 2F)
            ' draw rectangle
            Dim figureRect As New RectangleF(area.X, area.Y, area.Width * 0.47F, area.Height * 0.47F)
            drawingEngine.FillRectangle(brush, figureRect)
            drawingEngine.DrawRectangle(pen, figureRect)

            ' draw ellipse
            figureRect = New RectangleF(area.Width * 0.53F, area.Y, area.Width * 0.47F, area.Height * 0.47F)
            drawingEngine.FillEllipse(brush, figureRect)
            drawingEngine.DrawEllipse(pen, figureRect)

            ' draw arc
            figureRect = New RectangleF(area.X, area.Height * 0.53F, area.Width * 0.47F, area.Height * 0.47F)
            drawingEngine.FillArc(brush, figureRect, 90, 140)
            drawingEngine.DrawArc(pen, figureRect, 90, 140)

            ' draw pie
            drawingEngine.FillPie(brush, figureRect, -50, 50)
            drawingEngine.DrawPie(pen, figureRect, -50, 50)

            ' create graphics path
            Using path As IGraphicsPath = drawingEngine.DrawingFactory.CreateGraphicsPath()
                ' create curve points
                Dim startPoint As New PointF(area.Width * 0.53F, area.Height * 0.53F)

                Dim curvePoints As PointF() = New PointF() {startPoint, New PointF(startPoint.X * 1.3F, startPoint.Y * 1.8F), New PointF(startPoint.X * 1.7F, startPoint.Y * 1.2F), New PointF(area.Width * 0.99F, area.Height * 0.99F)}

                ' add curve to path
                path.AddCurve(curvePoints, 0.5F)
                ' draw path
                drawingEngine.FillPath(brush, path)
                drawingEngine.DrawPath(pen, path)
            End Using
        End Using
    End Using
End Sub


/// <summary>
/// Draws primitives (rectangle, ellipse, arc, pie, curve) on specified drawing engine.
/// </summary>
/// <param name="drawingEngine">Drawing engine.</param>
/// <param name="area">Area to draw objects in.</param>
public static void DrawPrimitivesExample(DrawingEngine drawingEngine, RectangleF area)
{
    using (IDrawingBrush brush = drawingEngine.DrawingFactory.CreateSolidBrush(Color.LightGreen))
    using (IDrawingPen pen = drawingEngine.DrawingFactory.CreatePen(Color.Red, 2f))
    {
        // draw rectangle
        RectangleF figureRect = new RectangleF(area.X, area.Y, area.Width * 0.47f, area.Height * 0.47f);
        drawingEngine.FillRectangle(brush, figureRect);
        drawingEngine.DrawRectangle(pen, figureRect);

        // draw ellipse
        figureRect = new RectangleF(area.Width * 0.53f, area.Y, area.Width * 0.47f, area.Height * 0.47f);
        drawingEngine.FillEllipse(brush, figureRect);
        drawingEngine.DrawEllipse(pen, figureRect);

        // draw arc
        figureRect = new RectangleF(area.X, area.Height * 0.53f, area.Width * 0.47f, area.Height * 0.47f);
        drawingEngine.FillArc(brush, figureRect, 90, 140);
        drawingEngine.DrawArc(pen, figureRect, 90, 140);

        // draw pie
        drawingEngine.FillPie(brush, figureRect, -50, 50);
        drawingEngine.DrawPie(pen, figureRect, -50, 50);

        // create graphics path
        using (IGraphicsPath path = drawingEngine.DrawingFactory.CreateGraphicsPath())
        {
            // create curve points
            PointF startPoint = new PointF(area.Width * 0.53f, area.Height * 0.53f);

            PointF[] curvePoints = new PointF[]
            {
                startPoint,
                new PointF(startPoint.X * 1.3f, startPoint.Y * 1.8f),
                new PointF(startPoint.X * 1.7f, startPoint.Y * 1.2f),
                new PointF(area.Width * 0.99f, area.Height * 0.99f)
            };

            // add curve to path
            path.AddCurve(curvePoints, 0.5f);
            // draw path
            drawingEngine.FillPath(brush, path);
            drawingEngine.DrawPath(pen, path);
        }
    }
}

Требования

Целевые платформы: .NET 11; .NET 10; .NET 9; .NET 8; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

Смотрите также