DrawPathEvenOdd

Vectorafbeeldingen, paden definiëren en tekenen

Beschrijving

Tekent het huidige pad volgens de vulregel even-odd in plaats van de non-zero winding-regel die DrawPath gebruikt. Bij de even-odd-regel geldt een punt als "binnen" het pad wanneer een vanaf hem getrokken straal het pad een oneven aantal keren kruist — overlappende subpaden wisselen daardoor tussen gevulde en ongevulde banden zonder dat de subpadrichting ertoe hoeft te doen

Syntaxis

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Parameters

PathOptionsTekenmodus:

0 — Alleen contour.
1 — Alleen vulling (even-odd-regel).
2 — Vulling en contour.

Retourwaarden

0Mislukt — PathOptions ligt buiten het bereik, er is geen document geopend of er is geen pad gestart.
1Het graphics-pad is met succes getekend

Opmerkingen

Gebruik de even-odd-regel bij het bouwen van vormen zoals donuts, ringen of elke figuur die een gat door een grotere omtrek prikt. Met de non-zero winding-regel die DrawPath gebruikt werkt dezelfde constructie alleen als het binnenste subpad in de tegenovergestelde richting wordt getekend; bij de even-odd-regel maakt de richting niet uit

Voorbeeld

// 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

Zie ook

DrawPath, StartPath, AddArcToPath, ClosePath