Метод Graphics::D rawBeziers(constPen*,constPoint*,INT) (gdiplusgraphics.h)
Метод Graphics::D rawBeziers рисует последовательность подключенных splines Bézier.
Синтаксис
Status DrawBeziers(
[in] const Pen *pen,
[in] const Point *points,
[in] INT count
);
Параметры
[in] pen
Тип: константа пера*
Указатель на перо, которое используется для рисования линий Bézier.
[in] points
Тип: const Point*
Указатель на массив объектов Point, указывающих начальные, конечные и контрольные точки строк Bézier. Конечная координата одной сплайна Bézier — это начальная координата следующей линии Bézier.
[in] count
Тип: INT
Целое число, указывающее количество элементов в массиве точек.
Возвращаемое значение
Тип: состояния
Если метод выполнен успешно, он возвращает ok, который является элементом перечисления Status.
Если метод завершается ошибкой, он возвращает один из других элементов перечисления Status.
Замечания
Строка Bézier не проходит через свои контрольные точки. Контрольные точки действуют как магниты, вытягивая кривую в определенных направлениях, чтобы повлиять на то, как сгиб bézier сгиб.
Примеры
В следующем примере выполняется рисование пары кривых Bézier.
VOID Example_DrawBeziers(HDC hdc)
{
Graphics graphics(hdc);
// Define a Pen object and an array of Point objects.
Pen greenPen(Color(255, 0, 255, 0), 3);
Point startPoint(100, 100);
Point ctrlPoint1(200, 50);
Point ctrlPoint2(400, 10);
Point endPoint1(500, 100);
Point ctrlPoint3(600, 200);
Point ctrlPoint4(700, 400);
Point endPoint2(500, 500);
Point 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));
}
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP, Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | gdiplusgraphics.h (include Gdiplus.h) |
библиотеки |
Gdiplus.lib |
DLL | Gdiplus.dll |