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


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

Метод Graphics::D rawBeziers рисует последовательность соединенных сплайнов Безье.

Синтаксис

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

Параметры

pen

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

points

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

count

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

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

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

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

Комментарии

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

Примеры

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

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

   // Define a Pen object and an array of PointF objects.
   Pen greenPen(Color(255, 0, 255, 0), 3);

   PointF startPoint(100.0f, 100.0f);
   PointF ctrlPoint1(200.0f, 50.0f);
   PointF ctrlPoint2(400.0f, 10.0f);
   PointF endPoint1(500.0f, 100.0f);
   PointF ctrlPoint3(600.0f, 200.0f);
   PointF ctrlPoint4(700.0f, 400.0f);
   PointF endPoint2(500.0f, 500.0f);

   PointF curvePoints[7] = {
      startPoint,
      ctrlPoint1,
      ctrlPoint2,
      endPoint1,
      ctrlPoint3,
      ctrlPoint4,
      endPoint2};

   // Draw the Bezier curves.
   graphics.DrawBeziers(&greenPen, curvePoints, 7);

   // Draw the control and end points.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillEllipse(&redBrush, Rect(100 - 5, 100 - 5, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(500 - 5, 100 - 5, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(500 - 5, 500 - 5, 10, 10));
   SolidBrush blueBrush(Color(255, 0, 0, 255));
   graphics.FillEllipse(&blueBrush, Rect(200 - 5, 50 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(400 - 5, 10 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(600 - 5, 200 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(700 - 5, 400 - 5, 10, 10));
}

Требования

Требование Значение
Заголовок gdiplusgraphics.h

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

Безье Сплайнс

Методы DrawBezier

Рисование сплайнов Безье

DrawBeziers

Графика

Перо

Pointf