Cỏc phương phỏp xỏc định điểm lõn cận

Một phần của tài liệu Tài liệu Chương 1_ Cơ sở đồ họa (ky thuat do hoa) pdf (Trang 47 - 52)

- Toạ độ cỏc đỉnh của đa giỏc

Cỏc phương phỏp xỏc định điểm lõn cận

GIẢI THUẬT SINH ĐA GIÁC

Giải thuật tụ màu đường biờn:

void FloodFill (int x, int y, int in_color, int new_color) {

if (getpixel(x, y) == in_color) {

putpixel(x, y, new_color);

FloodFill(x-1, y, in_color, new_color);

FloodFill(x+1, y, in_color, new_color); FloodFill(x, y-

1, in_color, new_color); FloodFill(x, y+1, in_color, new_color);

} }

GIẢI THUẬT SINH ĐA GIÁC

Thuật toỏn tụ màu bằng dựa theo dũng quyột

- Tỡm ytop, ybottom lần lượt là giỏ trị lớn nhất, nhỏ nhất của tập

cỏc tung độ của cỏc đỉnh của đa giỏc đó cho.

ytop = max{yi,(xi,yi) ∈P}, ybottom = min{yi,(xi,yi) ∈P}.

- Ứng với mỗi dũng quột y=k, với k thay đổi từ ybottom đến ytop

lặp:

+ Tỡm tất cả cỏc hoành độ giao điểm của dũng quột y=k với cỏc cạnh của đa giỏc

+ Sắp xếp cỏc hoành độ giao điểm theo thứ tự tăng dần: xo,x1,....

+ Tụ màu cỏc đoạn thẳng trờn đường thẳng y=k lần lượt được giới hạn bởi cỏc cặp (x0,x1), (x2,x3), ..., (x2k,x2k+1).

GIẢI THUẬT SINH ĐA GIÁC

Nhận xột

- Ứng với mỗi dũng quột khụng phải lỳc nào tất cả cỏc cạnh của đa giỏc cũng tham gia cắt dũng quột. Do đú để cải thiện tốc độ cần phải cú một cỏch nào đú để hạn chế được số cạnh cần tỡm giao điểm ứng với mỗi dũng quột.

- Tỡm giao điểm giữa cạnh của đa giỏc và dũng quột sẽ

thực hiện cỏc phộp toỏn phức tạp như: nhõn chia

- Nếu số giao điểm tỡm được giữa cỏc cạnh đa giỏc và dũng quột là lẻ (điều này chỉ xảy ra khi dũng quột sẽ đi qua cỏc đỉnh của đa giỏc) khi đú ta sẽ tớnh số điểm là 2 thỡ cú thể tụ khụng chớnh xỏc. Ngoài ra, việc tỡm giao điểm của dũng quột với cỏc cạnh nằm ngang là trường hợp đặt biệt...

GIẢI THUẬT SINH ĐA GIÁC

Một phần của tài liệu Tài liệu Chương 1_ Cơ sở đồ họa (ky thuat do hoa) pdf (Trang 47 - 52)