Метод Graphics::D rawBeziers(constPen*,constPoint*,INT) (gdiplusgraphics.h)
Метод Graphics::D rawBeziers рисует последовательность соединенных сплайнов Безье.
Синтаксис
Status DrawBeziers(
[in] const Pen *pen,
[in] const Point *points,
[in] INT count
);
Параметры
[in] pen
Тип: константное перо*
Указатель на перо, используемое для рисования сплайнов Безье.
[in] points
Тип: const Point*
Указатель на массив объектов Point , определяющих начальную, конечную и контрольную точки сплайнов Безье. Конечная координата одного сплайна Безье является начальной координатой следующего сплайна Безье.
[in] count
Тип: INT
Целое число, указывающее количество элементов в массиве точек .
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Сплайн Безье не проходит через свои контрольные точки. Контрольные точки действуют как магниты, вытягивая кривую в определенных направлениях, чтобы повлиять на то, как сплайны Безье изгиб.
Примеры
В следующем примере рисуется пара кривых Безье.
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 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusgraphics.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по