Поделиться через


Метод Graphics::D rawClosedCurve(constPen*,constPointF*,INT) (gdiplusgraphics.h)

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

Синтаксис

Status DrawClosedCurve(
  const Pen    *pen,
  const PointF *points,
  INT          count
);

Параметры

pen

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

points

Указатель на массив объектов PointF , указывающих координаты закрытого кардинального сплайна. Массив объектов PointF должен содержать не менее трех элементов.

count

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

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

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

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

Комментарии

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

Примеры

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

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

   // Define a Pen object and an array of PointF objects.
   Pen greenPen(Color(255, 0, 0, 255), 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 point5(600.0f, 200.0f);
   PointF point6(700.0f, 400.0f);
   PointF point7(500.0f, 500.0f);

   PointF curvePoints[7] = {
      point1,
      point2,
      point3,
      point4,
      point5,
      point6,
      point7};

   // Draw the closed curve.
   graphics.DrawClosedCurve(&greenPen, curvePoints, 7);

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

Требования

   
Верхняя часть gdiplusgraphics.h

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

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

Методы DrawCurve

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

Методы FillClosedCurve

Графика

Перо

Pointf