Метод GraphicsPath::AddCurve(constPointF*,INT,INT,INT,REAL) (gdipluspath.h)
Метод GraphicsPath::AddCurve добавляет кардинальный сплайн к текущему рисунку этого пути.
Синтаксис
Status AddCurve(
[in] const PointF *points,
[in] INT count,
[in] INT offset,
[in] INT numberOfSegments,
[in] REAL tension
);
Параметры
[in] points
Тип: const PointF*
Указатель на массив точек, определяющих кардинальный сплайн. Кардинальный сплайн — это кривая, которая проходит через подмножество (задается параметрами offset и numberOfSegments ) точек в массиве.
[in] count
Тип: INT
Целое число, указывающее количество элементов в массиве точек .
[in] offset
Тип: INT
Целое число, указывающее индекс элемента массива, который используется в качестве первой точки кратного сплайна.
[in] numberOfSegments
Тип: INT
Целое число, указывающее количество сегментов в кратном сплайне. Сегменты — это кривые, соединяющие последовательные точки в массиве.
[in] tension
Тип: REAL
Неогрегативное вещественное число, определяющее длину кривой и способ ее изгиба. Значение 0 указывает, что сплайн является последовательностью сегментов прямой линии. По мере увеличения значения кривая становится более полной.
Возвращаемое значение
Тип: Состояние
В случае успешного выполнения метода возвращается ОК, который является элементом перечисления Status .
Если метод завершается сбоем, он возвращает один из других элементов перечисления Status .
Комментарии
Если эти точки понадобятся позже, следует сохранить копию массива точек . Объект GraphicsPath не хранит точки, передаваемые методу AddClosedCurve ; вместо этого он преобразует кардинальный сплайн в последовательность сплайнов Безье и сохраняет точки, определяющие эти сплайны Безье. Невозможно получить исходный массив точек из объекта GraphicsPath .
Примеры
В следующем примере создается путь к объекту GraphicsPath, добавляется в путь кардинальный сплайн, а затем рисуется путь. Сплайн строится из точек, индексированных от 2 до 6, в массиве из восьми точек.
VOID AddCurveExample3(HDC hdc)
{
Graphics graphics(hdc);
GraphicsPath path;
PointF pts[] = {PointF(50.0f, 50.0f),
PointF(70.0f, 80.0f),
PointF(100.0f, 100.0f),
PointF(130.0f, 40.0f),
PointF(150.0f, 90.0f),
PointF(180.0f, 30.0f),
PointF(210.0f, 120.0f),
PointF(240.0f, 80.0f)};
path.AddCurve(
pts,
8, // There are eight points in the array.
2, // Start at the point with index 2.
4, // Four segments. End at the point with index 6.
1.0f);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawPath(&pen, &path);
// Draw all eight points in the array.
SolidBrush brush(Color(255, 255, 0, 0));
for(INT j = 0; j <= 7; ++j)
graphics.FillEllipse(&brush, pts[j].X - 3.0f, pts[j].Y - 3.0f, 6.0f, 6.0f);
}
Color(255, 255, 0, 0)
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP, Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdipluspath.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |
См. также раздел
Построение и рисование контуров