DrawPathEvenOdd

Đồ họa vector, Định nghĩa và vẽ đường dẫn

Mô tả

Tô path hiện tại bằng quy tắc tô even-odd thay vì quy tắc non-zero winding mà DrawPath dùng. Với quy tắc even-odd, một điểm được coi là "bên trong" path khi tia chiếu từ nó cắt path số lần lẻ – các sub-path chồng nhau vì thế xen kẽ giữa dải được tô và không tô mà không cần quan tâm hướng của sub-path.

Cú pháp

Delphi

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

ActiveX

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

DLL

int DLDrawPathEvenOdd(int InstanceID, int PathOptions);

Tham số

PathOptionsChế độ tô:

0 — Chỉ nét ngoài.
1 — Chỉ tô (quy tắc even-odd).
2 — Tô và nét ngoài.

Giá trị trả về

0Failed — PathOptions is out of range, no document is open, or no path has been started.
1Đã vẽ path thành công

Ghi chú

Dùng quy tắc even-odd khi dựng các hình như bánh vòng (donut), vòng đệm, hay bất kỳ hình nào khoét một lỗ xuyên qua viền ngoài lớn. Với quy tắc winding khác 0 mà DrawPath dùng, cùng cách dựng đó chỉ hoạt động nếu sub-path bên trong được vẽ theo hướng ngược lại; với quy tắc even-odd thì hướng không quan trọng

Ví dụ

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

Xem thêm

DrawPath, StartPath, AddArcToPath, ClosePath