DrawPathEvenOdd
Grafis vektor, Definisi dan penggambaran path
Deskripsi
Mengecat path saat ini memakai aturan fill even-odd alih-alih aturan winding non-zero yang dipakai DrawPath. Dengan aturan even-odd, sebuah titik dianggap "di dalam" path saat sinar yang ditarik darinya melintasi path sebanyak ganjil kali — sub-path yang saling menumpuk karenanya bergantian antara pita terisi dan tidak terisi tanpa perlu memperhatikan arah sub-path
Sintaks
Delphi
Function TPDFlib.DrawPathEvenOdd(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPathEvenOdd(PathOptions As Long) As Long
DLL
int DLDrawPathEvenOdd(int InstanceID, int PathOptions);
Parameter
| PathOptions | Mode menggambar: 0 — Outline saja. 1 — Fill saja (aturan even-odd). 2 — Fill dan outline |
|---|
Nilai kembalian
| 0 | Gagal — PathOptions di luar rentang, tidak ada dokumen terbuka, atau belum ada path yang dimulai |
|---|---|
| 1 | Path berhasil digambar |
Catatan
Gunakan aturan even-odd saat menyusun bentuk seperti donat, washer, atau figur apa pun yang melubangi outline yang lebih besar. Dengan aturan winding non-zero yang dipakai DrawPath, konstruksi yang sama hanya bekerja jika sub-path dalamnya digambar dengan arah berlawanan; dengan aturan even-odd, arahnya tidak berpengaruh
Contoh
// 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