DrawPathEvenOdd

Vektorgrafik, Bandefinition och ritning

Beskrivning

Målar aktuellt path med fyllnadsregeln even-odd i stället för den icke-nolla winding-regel som DrawPath använder. Med even-odd-regeln anses en punkt vara "inne" i pathen när en stråle från den korsar pathen ett udda antal gånger — överlappande sub-pather alternerar därför mellan fyllda och ofyllda band utan att sub-pathriktningen behöver beaktas

Syntax

Delphi

Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;

ActiveX

Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Parametrar

PathOptionsRitläge:

0 — Enbart kontur
1 — Enbart fyllnad (even-odd-regeln)
2 — Fyllnad och kontur

Returvärden

0Misslyckades — PathOptions ligger utanför intervallet, inget dokument är öppet, eller ingen path har påbörjats
1Pathen ritades utan problem

Anmärkningar

Använd even-odd-regeln när du bygger former som munkar, brickor eller vilken figur som helst som stansar ett hål genom en större kontur. Med den icke-noll winding-regel som DrawPath använder fungerar samma konstruktion bara om den inre sub-pathen ritas i motsatt riktning; med even-odd-regeln spelar riktningen ingen roll

Exempel

// 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

Se även

DrawPath, StartPath, AddArcToPath, ClosePath