DrawPathEvenOdd
Vector graphics, Path definition and drawing
Description
Disegna il tracciato corrente utilizando la regola di riempimento pari-dispari anziché la regola del numero di giri diverso da zero utilizzata da DrawPath; con la regola pari-dispari, un punto è considerato "interno" al tracciato quando una linea tracciata a partire da esso attraversa il tracciato un numero dispari di volte — i sotto-tracciati sovrapposti si alternano quindi tra bande riempite e non riempite senza dover considerare la direzione del sotto-tracciato
Syntax
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parameters
| PathOptions | Modalità di disegno: 0 — Solo contorno. 1 — Solo riempimento (regola pari-dispari). 2 — Riempimento e contorno |
|---|
Return values
| 0 | Non riuscito — PathOptions è fuori intervallo, nessun documento è aperto o nessun tracciato è stato iniziato |
|---|---|
| 1 | Il percorso è stato disegnato con successo |
Remarks
Usare la regola even-odd durante la costruzione di forme come ciambelle, rondelle o qualsiasi figura che pratichi un foro attraverso una struttura più grande; con la regola non-zero winding usata da DrawPath la stessa costruzione funziona solo se il sottopercorso interno è disegnato nella direzione opposta; con la regola even-odd la direzione non ha importanza
Example
// 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