DrawPathEvenOdd
Vektorgrafik, stidefinition og tegning
Beskrivelse
Optegner den aktuelle sti ved hjælp af fyldreglen lige-ulige i stedet for reglen om viklingstal forskelligt fra nul, som bruges af DrawPath. Med lige-ulige-reglen betragtes et punkt som værende "inden for" stien, når en stråle fra punktet krydser stien et ulige antal gange — overlappende delstier skifter derfor mellem udfyldte og ikke-udfyldte bånd, uden at delstiernes retning skal tages i betragtning.
Syntaks
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parametre
| PathOptions | Optegningstilstand: 0 — Kun kontur. 1 — Kun fyld (lige-ulige-regel). 2 — Fyld og kontur. |
|---|
Returværdier
| 0 | Mislykkedes — PathOptions ligger uden for intervallet, intet dokument er åbent, eller ingen sti er startet |
|---|---|
| 1 | Stien blev optegnet. |
Bemærkninger
Brug lige-ulige-reglen ved konstruktion af former som ringe, skiver eller enhver figur, der udstanser et hul i en større kontur. Med reglen om viklingstal forskelligt fra nul, som bruges af DrawPath, fungerer den samme konstruktion kun, hvis den indre delsti tegnes i modsat retning; med lige-ulige-reglen er retningen ligegyldig.
Eksempel
// 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