1. Trang chủ
  2. » Công Nghệ Thông Tin

Các thuật toán tô màu

44 413 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 402,17 KB

Nội dung

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Trang 1

ĐỒ HỌA RASTER

CÁC THUẬT TOÁN TÔ MÀU

Giảng viên : Bùi Tiến Lên

Trang 2

Bài toán tô màu

Tô màu là thao tác tìm các điểm sáng “nằm bên trong” một vùng khép kín

Input :

Vùng SOutput :

{(x1, y1), (x2, y2) … (xn, yn)}

Trang Trang 2 2

{(x1, y1), (x2, y2) … (xn, yn)}

Trang 3

Các hướng tiếp cận

Có hai phương pháp

- Tô màu theo lân cận

- Tô màu theo dòng quét

Trang 4

Tô màu theo lân cận

Trang 5

Lân cận là gì ?

Có hai loại lân cận : lân cận 4 và lân cận 8.

dưới

trên

trái

Trang 6

Thuật toán đệ qui

bước 1 Kẻ biên vùng cần tô

bước 2 Xác định một điểm (x, y) nằm bên trong vùng cần tô

bươc 3 Tô điểm (x, y), sau đó tô loang sang những điểm lân cận

Trang Trang 6 6

xy

Trang 7

Cài đặt đệ qui

// To loang

void BoundaryFill(CDC *pDC, int x, int y,

int fill_color, int boundary_color)

{

int color;

color = pDC->GetPixel(x, y);

if((color != fill_color) && (color != boundary_color))

{

pDC->SetPixel(x, y, fill_color);

pDC->SetPixel(x, y, fill_color);

BoundaryFill(pDC, x-1, y, fill_color, boundary_color);

BoundaryFill(pDC, x, y+1, fill_color, boundary_color);

BoundaryFill(pDC, x+1, y, fill_color, boundary_color);

BoundaryFill(pDC, x, y-1, fill_color, boundary_color);

}

}

Trang 8

Nhận xét thuật toán đệ qui

kích thước

!

Trang 9

Thuật toán cải tiến

bước 1

Cất điểm hạt giống đầu tiên vào kho

bước 2

Lặp nếu kho không rỗng

- c1 Lấy điểm hạt giống

- c Tô điểm hạt giống sau đó tô loang sang trái và

- c2 Tô điểm hạt giống sau đó tô loang sang trái và

sang phải

- c3 Bổ sung những điểm hạt giống mới vào kho từ

dòng trên và dòng dưới

Trang 10

Thuật toán cải tiến

hạt giống : điểm sáng

kho : chứa các điểm hạt giống

Trang Trang 10 10

Trang 11

Thuật toán cải tiến

Minh họa tô loang

Trang 12

Thuật toán cải tiến

Tiêu chuẩn để là điểm hạt giống

1 Điểm này chưa được tô và không phải điểm biên

2 Điểm này thoả :

- Điểm trái đầu tiên

- hoặc bên trái của nó là điểm biên (nếu nó không phải là điểm trái đầu tiên)

Trang Trang 12 12

phải là điểm trái đầu tiên)

Trang 13

Thuật toán cải tiến

Trang 14

Tô theo lân cận

Tô theo lân cận Một số vấn đề Một số vấn đề

Sử dụng lân cận nào ?

Trang Trang 14 14

Trang 15

Tô theo lân cận

Tô theo lân cận Một số vấn đề Một số vấn đề

Đường biênmàu gì ?

Trang 16

Tô theo lân cận

Tô theo lân cận Một số vấn đề Một số vấn đề

Trang Trang 16 16

Trang 17

Tô màu theo dòng quét

Trang 18

Khái niệm dòng quét

Dòng quét là dòng điểm sáng trên màn hình

y

Trang Trang 18 18

y

Trang 20

Tô hình tam giác

Y1 ≤ Y2 ≤ Y3

bước 2 : Phân trường hợp

Theo tung độ

Trang 21

Tô hình tam giác

3

Y1 < Y2 < Y3

12

3

Trang 22

Tô hình tam giác

1 3 2

Y1

Trang Trang 22 22

Tô tam giác (Y1 = Y2 = Y3)

1 Tìm Xmin, Xmax

2 Tô dòng Y1 bắt đầu tại cột Xmin, kết thúc tại cột Xmax

Trang 23

Tô hình tam giác

Tô tam giác (Y1 < Y2 = Y3) Lặp y : Y1 … Y2

1 Tìm hoành độ giao điểm xl, xrgiữa dòng quét y với các cạnh

Trang 24

Tô hình tam giác

Ví dụ

Các hoành độ giao điểm của các dòng quét với cạnh (2, 2), (11, 6)

654

2

Trang Trang 24 24

543

84

174

264

354

444

Trang 25

Tô hình tam giác

1 2

cu moi

1

X

Xk

với

kx

x

Xlàđầu

x

điểmgiao

độhoànhtính

1

2

YY

k

Trang 26

Tô hình tam giác

1

Y1

y

Trang 27

Tô hình đa giác lồi

Cách tô

1 Chia đa giác lồi có n đỉnh

{p0, p1, , pn-1} thành n-2 tam giác.

Trang 28

Tô hình đa giác

Nguyên lý chia tam giác

Mọi đa giác không tự cắt đều có thể phân chia thành các tam giác

Trang Trang 28 28

Trang 29

Thuậật toán tô đa giác tổng quát t toán tô đa giác tổng quát

Trang 30

bước 2 Tô từng dòng

Lặp y : ymin … ymax

c1 Tìm các giao điểm.

c2 Sắp xếp các giao điểm.

c3 Tô các đoạn thẳng.

ymin

P

y

Trang 31

Lưu ý

Bỏ cạnh nằm ngang

bỏ

bỏ

Trang 32

h

Bình thường

y

Trang 34

h

Trang 35

i

Trang 36

Loại bỏ các cạnh{c, f, i}

fi

Trang 37

h

Trang 38

k=1/6

k=0 k=-1/2

k=1/4

Trang 39

Thông tin cạnh đa giác

cạnh ylower yupper xlower k

Trang 40

Thông tin các cạnh đa giác

cạnh ylower yupper xlower k

Trang 41

Phương trình đoạn thẳng

F(x, y) = (Y2 – Y1)(x – X1) – (X2 – X1)(y – Y1)

(X2,Y2)

(X1,Y1)

Trang 42

Xác định bên trong tam giác như thế nào ?

(X3,Y3)

Trang Trang 42 42

(X1,Y1)

(X2,Y2)

Trang 43

Chiều các đỉnh của tam giác

Tính diện tích tam giác

(X2,Y2) (X2,Y2)

2

yy

xy

yxy

Trang 44

Thuật toán

1 Tìm xmin, xmax, ymin, ymax

2 Lặp y : ymin … ymax, x : xmin … xmax

Nếu (x, y) nằm bên trong tam giác thì

Tô (x, y)

y

Trang Trang 44 44

ymin

ymax

Ngày đăng: 20/10/2014, 06:35

TỪ KHÓA LIÊN QUAN

w