Graphics.DrawCurve(const Pen*, const PointF*, INT, INT, INT, REAL) method

Applies to: desktop apps only

The Graphics::DrawCurve method draws a cardinal spline.

Syntax

Status DrawCurve(
  [in]  const Pen *pen,
  [in]  const PointF *points,
  [in]  INT count,
  [in]  INT offset,
  [in]  INT numberOfSegments,
  [in]  REAL tension
);

Parameters

  • pen [in]
    Type: const Pen*

    Pointer to a pen that is used to draw the cardinal spline.

  • points [in]
    Type: const PointF*

    Pointer to an array of PointF objects that specify the coordinates that the cardinal spline passes through.

  • count [in]
    Type: INT

    Integer that specifies the number of elements in the points array.

  • offset [in]
    Type: INT

    Integer that specifies the element in the points array that specifies the point at which the cardinal spline begins.

  • numberOfSegments [in]
    Type: INT

    Integer that specifies the number of segments in the cardinal spline.

  • tension [in]
    Type: REAL

    Real number that specifies how tightly the curve bends through the coordinates of the cardinal spline.

Return value

Type:

Type: Status****

If the method succeeds, it returns Ok, which is an element of the Status enumeration.

If the method fails, it returns one of the other elements of the Status enumeration.

Remarks

A segment is defined as a curve that connects two consecutive points in the cardinal spline. The ending point of each segment is the starting point for the next. The numberOfSegments parameter must not be greater than the count parameter minus the offset parameter plus one.

Examples

The following example draws a cardinal spline.

VOID Example_DrawCurve5(HDC hdc)
{
   Graphics graphics(hdc);

   // Define a Pen object and an array of PointF objects.
   Pen greenPen(Color::Green, 3);
   PointF point1(100.0f, 100.0f);
   PointF point2(200.0f, 50.0f);
   PointF point3(400.0f, 10.0f);
   PointF point4(500.0f, 100.0f);

   PointF curvePoints[4] = {
   point1,
   point2,
   point3,
   point4};

   PointF* pcurvePoints = curvePoints;

   // Specify offset, number of segments to draw, and tension.
   int offset = 1;
   int segments = 2;
   REAL tension = 1.0f;

   // Draw the curve.
   graphics.DrawCurve(&greenPen, curvePoints, 4, offset, segments, tension);

   //Draw the points in the curve.
   SolidBrush redBrush(Color::Red);
   graphics.FillEllipse(&redBrush, Rect(95, 95, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(195, 45, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(395, 5, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(495, 95, 10, 10));
}

Requirements

Minimum supported client

Windows XP, Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Product

GDI+ 1.0

Header

Gdiplusgraphics.h (include Gdiplus.h)

Library

Gdiplus.lib

DLL

Gdiplus.dll

See also

Graphics

DrawClosedCurve Methods

Pen

Point

Drawing Cardinal Splines

Cardinal Splines

 

 

Send comments about this topic to Microsoft

Build date: 3/6/2012