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

Див. також

DrawPath, StartPath, AddArcToPath, ClosePath