DrawPath
Đồ họa vector, Định nghĩa và vẽ đường dẫn
Mô tả
Tô path hiện tại – ghép từ StartPath, AddLineToPath, AddCurveToPath, AddArcToPath và ClosePath – bằng quy tắc tô non-zero winding. Sau khi tô, trạng thái path được đặt lại nên lần gọi StartPath tiếp theo bắt đầu một hình mới.
Cú pháp
Delphi
Function TPDFlib.DrawPath(PathOptions: Integer): Integer;
ActiveX
Function PDFlib::DrawPath(PathOptions As Long) As Long
DLL
int DLDrawPath(int InstanceID, int PathOptions);
Tham số
| PathOptions | Chế độ tô vẽ: 0 – Chỉ viền (kẻ nét với thiết lập đường hiện tại). 1 – Chỉ tô (với màu tô hiện tại và quy tắc non-zero winding). 2 – Tô và viền. |
|---|
Giá trị trả về
| 0 | Failed — PathOptions is out of range, no document is open, or no path has been started. |
|---|---|
| 1 | Đã vẽ path thành công |
Ghi chú
Đặt màu nét và màu tô cùng các thuộc tính đường (SetLineWidth, SetLineCap, SetLineDash) trước khi gọi DrawPath. Graphics state hiện tại được lấy mẫu tại chỗ gọi
Với path chồng lấn hoặc tự cắt nhau, quy tắc non-zero winding coi mọi sub-path là một phần của cùng vùng: lỗ khoét từ hình lớn đòi hỏi sub-path bên trong quét theo hướng ngược với bên ngoài. Khi điều đó bất tiện, hãy gọi DrawPathEvenOdd thay thế – quy tắc even-odd đơn giản là đảo trong/ngoài ở mỗi lần cắt nhau, nên việc khoét lỗ trở nên dễ dàng.
Ví dụ
// Filled outlined diamond
PDF.SetStrokeColor(0, 0, 0);
PDF.SetFillColor(0.6, 0.8, 1);
PDF.SetLineWidth(1.5);
PDF.StartPath(150, 100);
PDF.AddLineToPath(200, 150);
PDF.AddLineToPath(150, 200);
PDF.AddLineToPath(100, 150);
PDF.ClosePath;
PDF.DrawPath(2); // 2 = fill and outlineXem thêm
DrawPathEvenOdd, StartPath, AddLineToPath, AddCurveToPath, AddArcToPath, ClosePath, SetLineWidth