Метод Graphics::D rawCurve(constPen*,constPoint*,INT,INT,INT,REAL) (gdiplusgraphics.h)

Метод Graphics::D rawCurve рисует кардинальный сплайн.

Синтаксис

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

Параметры

[in] pen

Тип: константное перо*

Указатель на перо, используемое для рисования кардинальных сплайнов.

[in] points

Тип: const Point*

Указатель на массив объектов Point , указывающих координаты, через которые проходит кардинальный сплайн.

[in] count

Тип: INT

Целое число, указывающее количество элементов в массиве точек .

[in] offset

Тип: INT

Целое число, указывающее элемент в массиве точек , указывающий точку, с которой начинается кардинальный сплайн.

[in] numberOfSegments

Тип: INT

Целое число, указывающее количество сегментов в главном сплайне.

[in] tension

Тип: REAL

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

Возвращаемое значение

Тип: Состояние

В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .

Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status .

Комментарии

Сегмент определяется как кривая, соединяющая две последовательные точки в кратном сплайне. Конечная точка каждого сегмента является отправной точкой для следующего. Параметр numberOfSegments не должен быть больше параметра count минус параметр offset плюс единица.

Примеры

В следующем примере рисуется кардинальный сплайн.

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

   // Define a Pen object and an array of Point objects.
   Pen greenPen(Color::Green, 3);
   Point point1(100, 100);
   Point point2(200, 50);
   Point point3(400, 10);
   Point point4(500, 100);

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

   Point* pcurvePoints = curvePoints;

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

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

Требования

Требование Значение
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header gdiplusgraphics.h (включая Gdiplus.h)
Библиотека Gdiplus.lib
DLL Gdiplus.dll

См. также раздел

Кардинальные сплайны

Методы DrawClosedCurve

Рисование кардинальных сплайнов

Графика

Перо

Point