DrawPathEvenOdd
Векторна графика, Определяне и рисуване на път
Описание
Рисува текущия път с правилото за запълване четно-нечетно вместо правилото за ненулево навиване, използвано от DrawPath. При това правило точка е "вътре" в пътя, когато лъч от нея пресече пътя нечетен брой пъти — припокриващите се подпътища редуват запълнени и незапълнени ивици без отчитане на посоката им
Синтаксис
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 — Запълване и контур |
|---|
Върнати стойности
| 0 | Неуспех — PathOptions е извън диапазона, няма отворен документ или не е започнат контур |
|---|---|
| 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