DrawPath
Векторная графика, определение и рисование контуров
Описание
Рисует текущий контур — собранный из StartPath, AddLineToPath, AddCurveToPath, AddArcToPath и ClosePath — по правилу заливки non-zero winding. После отрисовки контура состояние контура сбрасывается, поэтому следующий StartPath начинает новую фигуру.
Синтаксис
Delphi
Function TPDFlib.DrawPath(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPath(PathOptions As Long) As Long
DLL
int DLDrawPath(int InstanceID, int PathOptions);
Параметры
| PathOptions | Режим рисования: 0 — только контур (обводка с текущими настройками линий). 1 — только заливка (текущим цветом заливки по правилу non-zero winding). 2 — заливка и контур. |
|---|
Возвращаемые значения
| 0 | Failed — PathOptions is out of range, no document is open, or no path has been started. |
|---|---|
| 1 | Контур нарисован успешно |
Примечания
Задайте цвета обводки и заливки и атрибуты линии (SetLineWidth, SetLineCap, SetLineDash) до вызова DrawPath. Текущее состояние графики сэмплируется в точке вызова
При перекрывающихся или самопересекающихся контурах правило non-zero winding считает каждый подпуть частью одной и той же области: чтобы вырезать отверстие из большей фигуры, внутренний подпуть должен идти в направлении, противоположном внешнему. Когда это неудобно, вызовите вместо этого DrawPathEvenOdd — правило even-odd при каждом пересечении просто чередует «внутри» и «снаружи», что делает вырезание отверстий тривиальным.
Пример
// Filled outlined diamond
PDF.SetStrokeColor(0, 0, 0);
PDF.SetFillColor(0.6, 0.8, 1);
PDF.SetLineWidth(1.5);
PDF.StartPath(150, 100);
PDF.AddLineToPath(200, 150);
PDF.AddLineToPath(150, 200);
PDF.AddLineToPath(100, 150);
PDF.ClosePath;
PDF.DrawPath(2); // 2 = fill and outlineСм. также
DrawPathEvenOdd, StartPath, AddLineToPath, AddCurveToPath, AddArcToPath, ClosePath, SetLineWidth