# How to Draw Figures in PDF documents

## Environment

Version Product Author

## Description

This article demonstrates a sample approach on how to draw a small figure containing an arc and some lines using RadPdfProcessing.

## Solution

To draw an arc using the ArcSegment class, follow these steps:

1. Create a `Path` object and set its `IsFilled` and `IsStroked` properties to `true`.
2. Create a `PathGeometry` object and set its `FillRule` property to `FillRule.EvenOdd`.
3. Add a `PathFigure` to the `PathGeometry` and set its `StartPoint` property to the starting point of the figure.
4. Create an instance of the `ArcSegment` class and set its `Point`, `RadiusX`, and `RadiusY` properties. The `Point` property represents the endpoint of the arc, while `RadiusX` and `RadiusY` represent the radii for the X and Y coordinates respectively.
5. Add the `ArcSegment` to the `Segments` collection of the `PathFigure`.
6. Set the `Geometry` property of the `Path` to the `PathGeometry`.

Here is an example of how to draw an arc:

``````private static void AddArcSegment(RadFixedPage page)
{
path.IsFilled = true;
path.IsStroked = true;

PathGeometry pathGeometry = new PathGeometry();
pathGeometry.FillRule = FillRule.EvenOdd;

figure.StartPoint = new Point(100, 200);

var segment = new ArcSegment()
{
Point = new Point(200, 300),
};

path.Geometry = pathGeometry;
}
``````

To draw lines, you can use the LineSegment class. Here is an example of how to draw a triangle:

``````private void AddLineSegment(RadFixedPage page)
{
path.IsFilled = false;
path.IsStroked = true;

PathGeometry pathGeometry = new PathGeometry();
pathGeometry.FillRule = FillRule.EvenOdd;

ApplyLine(figure1, new Point(300, 200), new Point(400, 200));

ApplyLine(figure2, new Point(400, 200), new Point(250, 100));

ApplyLine(figure3, new Point(250, 100), new Point(300, 200));

path.Geometry = pathGeometry;
}

private static void ApplyLine(PathFigure figure, Point startPoint, Point endPoint)
{
figure.StartPoint = startPoint;

var segment = new LineSegment
{
Point = endPoint
};

}
``````

The following code snippet shows how to use the above methods:

``````

PdfFormatProvider provider = new PdfFormatProvider();
string filePath = @"..\..\output.pdf";
File.Delete(filePath);
using (Stream output = File.OpenWrite(filePath))
{
provider.Export(fixedDocument, output);
}

``````

For more information on using geometries, figures, and segments, you can refer to our Geometry help article.

You can find the result of the combined arc and triangle in the below screenshot: