DrawPathEvenOdd

Векторная графика, определение и рисование контуров

Описание

Рисует текущий контур по правилу заливки even-odd вместо правила non-zero winding, которое использует DrawPath. По правилу even-odd точка считается "внутри" контура, когда проведённый из неё луч пересекает контур нечётное число раз — перекрывающиеся подпути поэтому чередуются между закрашенными и незакрашенными полосами, не требуя учёта направления подпути.

Синтаксис

Delphi

Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;

ActiveX

Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Параметры

PathOptionsРежим рисования:

0 — только контур.
1 — только заливка (правило четности).
2 — заливка и контур.

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

0Failed — PathOptions is out of range, no document is open, or no path has been started.
1Контур нарисован успешно

Примечания

Используйте правило четности при построении фигур вроде колец, шайб или любой фигуры, пробивающей отверстие в большем контуре. С ненулевым правилом намотки, которое использует DrawPath, та же конструкция работает, только если внутренний подпуть нарисован в противоположном направлении; с правилом четности направление не важно

Пример

// A filled square with a circular hole cut through it (donut)
PDF.SetFillColor(0, 0.4, 0.7);

PDF.StartPath(100, 100);
PDF.AddLineToPath(200, 100);
PDF.AddLineToPath(200, 200);
PDF.AddLineToPath(100, 200);
PDF.ClosePath;

// Inner circle — direction does not matter under even-odd
PDF.StartPath(170, 150);            // start on the right side of the circle
PDF.AddArcToPath(150, 150, 360);    // centre (150, 150), full revolution
PDF.ClosePath;

PDF.DrawPathEvenOdd(1);                // 1 = fill

См. также

DrawPath, StartPath, AddArcToPath, ClosePath