DrawPathEvenOdd
Grafică vectorială, Definirea și trasarea traseelor
Descriere
Pictează traseul curent folosind regula de umplere even-odd în locul regulii de înfășurare nenulă folosită de DrawPath. Cu regula even-odd, un punct este considerat "în interiorul" traseului când o rază trasată din el traversează traseul de un număr impar de ori — sub-traseele suprapuse alternează deci între benzi umplute și neumplute, fără a trebui să se considere direcția sub-traseelor
Sintaxă
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parametri
| PathOptions | Mod de pictare: 0 — Doar contur. 1 — Doar umplere (regula even-odd). 2 — Umplere și contur |
|---|
Valori returnate
| 0 | Eșec — PathOptions este în afara intervalului, niciun document nu este deschis sau nu a fost pornit niciun traseu |
|---|---|
| 1 | Traseul a fost desenat cu succes |
Observații
Folosiți regula par-impar când construiți forme precum gogoși, inele sau orice figură care decupează o gaură printr-un contur mai mare. Cu regula de înfășurare non-zero folosită de DrawPath, aceeași construcție funcționează doar dacă sub-traseul interior este desenat în direcția opusă; cu regula par-impar direcția nu contează
Exemplu
// 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