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
| PathOptions | Tryb malowania: 0 — Tylko obrys 1 — Tylko wypełnienie (reguła parzystości) 2 — Wypełnienie i obrys |
|---|
Wartości zwracane
| 0 | Niepowodzenie — 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