VintaSoft Imaging .NET SDK 12.4: Documentation for .NET developer
Vintasoft.Imaging.Drawing Namespace / DrawingEngine Class / DrawPie(IDrawingPen,RectangleF,Single,Single) Method
Syntax Example Requirements SeeAlso
In This Topic
    DrawPie(IDrawingPen,RectangleF,Single,Single) Method (DrawingEngine)
    In This Topic
    Draws a pie shape defined by an ellipse specified by a System.Drawing.RectangleF structure and two radial lines.
    Syntax
    'Declaration
    
    Public Sub DrawPie( _
    ByVal pen
    IDrawingPen that determines the color, width, and style of the pie shape.
    As IDrawingPen, _
    ByVal rect
    System.Drawing.RectangleF structure that represents the bounding rectangle that defines the ellipse from which the pie section comes.
    As System.Drawing.RectangleF, _
    ByVal startAngle
    Angle in degrees measured clockwise from the x-axis to the first side of the pie section.
    As Single, _
    ByVal sweepAngle
    Angle in degrees measured clockwise from the startAngle parameter to the second side of the pie section.
    As Single _
    )

    Parameters

    pen
    IDrawingPen that determines the color, width, and style of the pie shape.
    rect
    System.Drawing.RectangleF structure that represents the bounding rectangle that defines the ellipse from which the pie section comes.
    startAngle
    Angle in degrees measured clockwise from the x-axis to the first side of the pie section.
    sweepAngle
    Angle in degrees measured clockwise from the startAngle parameter to the second side of the pie section.
    Example

    Here is an example that shows how to draw pie using drawing engine.

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

    Requirements

    Target Platforms: .NET 8; .NET 7; .NET 6; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also