Thuật toán hả bạn:
Nó đơn giản chỉ thế này thôi.
PHP Code:
Đặt x0 = Min(xi), i = 1... n (1 tới n).
Bước 1: Kẻ Dy//0y đi qua x0 (hình 2.5).
Bước 2: Xác định các giao điểm Mi(x,y) của Dy với các cạnh Ci.
Nếu có cạnh Ci = PiPi+1 song song và trùng với Dy thì xem như Dy cắt Ci tại 2 điểm Pi và Pi+1.
Bước 3: Sắp xếp lại các điểm Mi theo thứ tự tăng dần đối với yi (điểm đầu tiên có thứ tự là 1).
Bước 4: Những điểm nằm trên Dy ở giữa giao điểm lẻ và giao điểm chẵn liên tiếp là những điểm nằm trong đa giác và những điểm này sẽ được tô.
Bước 5: Tăng x0 lên một Pixel. Nếu x0 <= Max(xi) thì quay lại bước 1.
(sách Giáo trình LTDH - tác giả [PHẠM ANH PHƯƠNG - NGUYỄN HỮU TÀI
] )