DrawPathEvenOdd

Vektorgrafik, Pfaddefinition und Zeichnen

Beschreibung

Zeichnet den aktuellen Pfad mit der Gerade-Ungerade-Füllregel statt der von DrawPath verwendeten Nichtnull-Windungsregel. Bei der Gerade-Ungerade-Regel gilt ein Punkt als "innerhalb" des Pfads, wenn ein von ihm ausgehender Strahl den Pfad ungerade oft kreuzt — überlappende Teilpfade wechseln daher zwischen gefüllten und ungefüllten Bändern, ohne dass die Richtung des Teilpfads berücksichtigt werden muss

Syntax

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Parameter

PathOptionsZeichenmodus:

0 — Nur Kontur.
1 — Nur Füllung (Gerade-Ungerade-Regel).
2 — Füllung und Kontur

Rückgabewerte

0Fehlgeschlagen — PathOptions liegt außerhalb des Bereichs, es ist kein Dokument geöffnet oder es wurde kein Pfad begonnen.
1Der Pfad wurde erfolgreich gezeichnet

Anmerkungen

Verwenden Sie die Gerade-Ungerade-Regel beim Erstellen von Formen wie Ringen, Unterlegscheiben oder anderen Figuren, die ein Loch in eine größere Kontur stanzen. Mit der von DrawPath verwendeten Nichtnull-Windungsregel funktioniert dieselbe Konstruktion nur, wenn der innere Unterpfad in entgegengesetzter Richtung gezeichnet wird; bei der Gerade-Ungerade-Regel spielt die Richtung keine Rolle

Beispiel

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

Siehe auch

DrawPath, StartPath, AddArcToPath, ClosePath