DrawPathEvenOdd
Vektorová grafika, Definícia ciest a kreslenie
Opis
Kreslí aktuálny path s pravidlom výplne even-odd namiesto pravidla non-zero winding použitého v DrawPath. Pri pravidle even-odd je bod považovaný "vnútri" pathu, keď lúč z neho vedený pretnie path nepárny počet krát — prekrývajúce sa sub-pathy sa preto striedajú medzi vyplnenými a nevyplnenými pásmami bez potreby brať do úvahy smer sub-pathu.
Syntax
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 | Režim vykresľovania: 0 — Iba obrys. 1 — Iba výplň (pravidlo even-odd). 2 — Výplň a obrys. |
|---|
Návratové hodnoty
| 0 | Failed — PathOptions is out of range, no document is open, or no path has been started. |
|---|---|
| 1 | Cesta sa úspešne vykreslila. |
Poznámky
Pravidlo pár-nejpár použite pri stavbe tvarov ako donuty, podložky či akejkoľvek figúry, ktorá prepichne dieru väčším obrysom. Pri pravidle nenulového obehu, ktoré používa DrawPath, funguje rovnaká stavba len vtedy, keď sa vnútorná podcesta kreslí opačným smerom; pri pravidle pár-nejpár smer nezáleží.
Príklad
// 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