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

PathOptionsMod de pictare:

0 — Doar contur.
1 — Doar umplere (regula even-odd).
2 — Umplere și contur

Valori returnate

0Eșec — PathOptions este în afara intervalului, niciun document nu este deschis sau nu a fost pornit niciun traseu
1Traseul 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

Consultați și

DrawPath, StartPath, AddArcToPath, ClosePath