Tô màu theo biên

Một phần của tài liệu Bài Giảng Tóm Tắt Đồ Họa Máy Tính ppt (Trang 45 - 48)

Ý tưởng

• Thuật toán nhằm tô màu vùng kín, giới hạn bởi màu Bcolor, mà sử dụng để tô là Fcolor với điểm (x,y) nằm trong vùng tô màu.

• Thuật sử dụng phép gọi đệ quy, ban đầu (x,y) được kiểm tra màu, nếu màu của nó là Fcolor hoặc Bcolor thì tiến trình kết thúc. Trong trường hợp ngược lại, điểm (x,y) được tô với màu Fcolor và quá trình gọi đệ quy với các điểm láng giềng của (x,y). Các điểm láng giềng được sử dụng là 4 láng giềng.

X

X (x,y) X

X

 4 láng giềng của (x,y): (x+1,y), (x-1,y), (x,y+1),(x,y-1)

Chương trình minh họa

BoundaryLine(int x, int y, int Bcolor, int Fcolor) Begin

if(getPixel(x, y) <> Bcolor || getPixel(x, y) <> Fcolor) Begin

putPixel(x, y,Fcolor) = Fcolor; Boundary(x+1,y,Bcolor,Fcolor); Boundary(x-1,y,Bcolor,Fcolor); Boundary(x,y+1,Bcolor,Fcolor); Boundary(x,y-1,Bcolor,Fcolor); End End

Chương trình khử đệ quy

BoundaryLine(int x, int y, int Bcolor, int Fcolor) Begin

int color, count=0; Point mPT[MaxPT];

mPT[count].x=x; mPT[count].y=y; while(count>0)

Begin

count--;

color = getPixel(mPT[count].x, mPT[count].y); if(color != Bcolor || color != Fcolor)

Begin putPixel(x,y,Fcolor); mPT[count].x=x+1; mPT[count++].y=y; mPT[count].x=x-1; mPT[count++].y=y; mPT[count].x=x; mPT[count++].y=y+1; mPT[count].x=x; mPT[count++].y=y-1; End End End

Bài tập chương 3

1. Viết chương trình vẽ một đa giác n đỉnh, xét xem một điểm P nào đó có thuộc đa giác không ?

2. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật tô đơn giản (Tìm xmin, ymin, xmax, ymax).

3. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô đơn giản. 4. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật tô biên. Lưu ý

cho các trường hợp của đa giác : hình chữ nhật, đa giác lồi, đa giác lõm. 5. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô biên.

6. Viết chương trình vẽ một đa giác n đỉnh. Tô đa giác bằng giải thuật dòng quét.

7. Viết chương trình vẽ một đường tròn. Tô đường tròn bằng giải thuật tô màu theo dòng quét.

8. Viết chương trình vẽ hai đường tròn C1 và C2 cắt nhau. Tô phần giao của hai đường tròn đó. Tô phần bù của C2. Tô phần bù của C1. Lưu ý rằng 3 màu tô này phải khác nhau.

Chương 4

PHÉP BIẾN ĐỔI HAI CHIỀU Nội dung chính

 Các phép biến đổi ma trận.

 Các phép biến đổi Affine 2D cơ sở.

 Các phép biến đổi 3D gộp.

Một phần của tài liệu Bài Giảng Tóm Tắt Đồ Họa Máy Tính ppt (Trang 45 - 48)

Tải bản đầy đủ (PDF)

(113 trang)