DrawPathEvenOdd
Vektorigrafiikka, polkujen määrittely ja piirto
Kuvaus
Maalaa nykyisen polun pariton-parillinen-täyttösäännöllä funktiota DrawPath käyttämän nollasta poikkeavan kiertosäännön sijaan. Pariton-parillinen-säännöllä piste katsotaan polun "sisäpuolelle", kun siitä piirretty säde leikkaa polun parittoman määrän kertoja — päällekkäiset su
Syntaksi
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parametrit
| PathOptions | Maalaustila: 0 — vain reunus 1 — vain täyttö (pariton-parillinen-sääntö) 2 — täyttö ja reunus |
|---|
Paluuarvot
| 0 | Epäonnistui — PathOptions oli sallitun alueen ulkopuolella, mikään asiakirja ei ole avoinna tai polkua ei ole aloitettu |
|---|---|
| 1 | Polun piirto onnistui |
Huomautukset
Käytä pariton-parillinen-sääntöä rakennettaessa muotoja kuten donitseja, renkaita tai mitä tahansa hahmoa, joka lävistää aukon suuremman ääriviivan läpi. Nollasta poikkeavalla kiertosäännöllä, jota DrawPath käyttää, sama rakenne toimii vain, jos sisempi alipolku piirretään vastakkaiseen suuntaan; pariton-parillinen-säännöllä suunnalla ei ole merkitystä
Esimerkki
// 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