This documentation is archived and is not being maintained.

GraphicsPath.AddCurve Method (Point[], Int32, Int32, Single)

Adds a spline curve to the current figure.

Namespace: System.Drawing.Drawing2D
Assembly: System.Drawing (in system.drawing.dll)

public void AddCurve (
	Point[] points,
	int offset,
	int numberOfSegments,
	float tension
)
public void AddCurve (
	Point[] points, 
	int offset, 
	int numberOfSegments, 
	float tension
)
public function AddCurve (
	points : Point[], 
	offset : int, 
	numberOfSegments : int, 
	tension : float
)
Not applicable.

Parameters

points

An array of Point structures that represents the points that define the curve.

offset

The index of the element in the points array that is used as the first point in the curve.

numberOfSegments

A value that specifies the amount that the curve bends between control points. Values greater than 1 produce unpredictable results.

tension

A value that specifies the amount that the curve bends between control points. Values greater than 1 produce unpredictable results.

The user must keep the original points if they are needed. The original points are converted to cubic Bézier control points internally, therefore there is no mechanism for returning the original points.

The curve begins at the point in the array specified by the offset parameter and includes the number of points (segments) specified by numberOfSegments.

The following code example is designed for use with Windows Forms, and it requires PaintEventArgse, an OnPaint event object. The code performs the following actions:

  • Creates an array of four points (representing a cardinal spline).

  • Creates a path and using the array of points, adds the curve to the path.

  • Draws the path to the screen.

Notice that while the array holds four points, there are only three segments, which is the number specified in the third argument of the call to AddCurve.

private void AddCurveExample(PaintEventArgs e)
{
             
    // Create some points.
    Point point1 = new Point(20, 20);
    Point point2 = new Point(40, 0);
    Point point3 = new Point(60, 40);
    Point point4 = new Point(80, 20);
             
    // Create an array of the points.
    Point[] curvePoints = {point1, point2, point3, point4};
             
    // Create a GraphicsPath object and add a curve.
    GraphicsPath myPath = new GraphicsPath();
    myPath.AddCurve(curvePoints, 0, 3, 0.8f);
             
    // Draw the path to the screen.
    Pen myPen = new Pen(Color.Black, 2);
    e.Graphics.DrawPath(myPen, myPath);
}

private void AddCurveExample(PaintEventArgs e)
{
    // Create some points.
    Point point1 = new Point(20, 20);
    Point point2 = new Point(40, 0);
    Point point3 = new Point(60, 40);
    Point point4 = new Point(80, 20);

    // Create an array of the points.
    Point curvePoints[] =  { point1, point2, point3, point4 };

    // Create a GraphicsPath object and add a curve.
    GraphicsPath myPath = new GraphicsPath();

    myPath.AddCurve(curvePoints, 0, 3, 0.8F);

    // Draw the path to the screen.
    Pen myPen = new Pen(Color.get_Black(), 2);

    e.get_Graphics().DrawPath(myPen, myPath);
} //AddCurveExample

Windows 98, Windows Server 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0
Show: