DrawPathEvenOdd

Grafika wektorowa, Definiowanie i rysowanie ścieżek

Opis

Maluje bieżącą ścieżkę według reguły wypełniania parzystości zamiast reguły niezerowej liczby nawinięć używanej przez DrawPath. Według reguły parzystości punkt znajduje się "wewnątrz" ścieżki, gdy poprowadzony z niego promień przecina ścieżkę nieparzystą liczbę razy — nakładające się podścieżki tworzą zatem naprzemienne pasy wypełnione i niewypełnione bez uwzględniania ich kierunku

Składnia

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Parametry

PathOptionsTryb malowania:

0 — Tylko obrys
1 — Tylko wypełnienie (reguła parzystości)
2 — Wypełnienie i obrys

Wartości zwracane

0Niepowodzenie — PathOptions znajduje się poza zakresem, żaden dokument nie jest otwarty albo nie rozpoczęto ścieżki
1Ścieżka została pomyślnie namalowana

Uwagi

Używaj reguły parzystości podczas konstruowania kształtów takich jak pierścienie, podkładki lub dowolne figury wycinające otwór w większym obrysie. Przy regule niezerowej liczby nawinięć używanej przez DrawPath ta sama konstrukcja działa tylko wtedy, gdy wewnętrzna podścieżka jest rysowana w przeciwnym kierunku; w regule parzystości kierunek nie ma znaczenia

Przykład

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

Zobacz również

DrawPath, StartPath, AddArcToPath, ClosePath