Thuật toỏn tụ màu theo đường biờn (Boundary algorithm)

Một phần của tài liệu Tìm hiểu về đồ họa máy tính ppt (Trang 52 - 59)

Cỏch tụ này yờu cầu phải biết trước tọa độ một điểm (điểm “gieo”) nằm bờn trong vựng cần tụ. Bắt đầu từ điểm đú ta sẽ tụ “loang” dần ra cỏc vựng xung quanh bằng việc đọc màu của cỏc điểm lõn cận để kiểm tra xem chỳng đó được tụ màu hay chưa. Nếu đó được tụ, hoặc màu của điểm lõn cận là màu của biờn thỡ dừng lại và xột điểm khỏc, nếu khụng thỡ tụ điểm lõn cận đú.

Cú vài phương phỏp khỏc nhau để xỏc định lõn cận như: loại 4 điểm, loại 8 điểm

Hỡnh 3.5. Xỏc định lõn cận của điểm

Procedure BFill ( x,y,c,B:integer)

{(x,y) điểm đang xột, c: màu tụ, B: màu đường biờn } Var t: integer; Begin t:=GetPixel(x,y); if (t <>B) and (t<>c) then { putpixel(x,y,c); BFill(x-1,y,c,B); BFill(x+1,y,c,B); BFill(x,y-1,c,B); BFill(x,y+1,c,B); }

Cỏch làm như trờn cú nhược điểm là khi gọi đệ quy cho 4 điểm lõn cận khụng xột tới việc chỳng đó được kiểm tra ở cỏc bước trước hay chưa. Cần cú cải tiến để khụng xột lại những điểm đó được kiểm tra rồi.

3.2.2. Thuật toỏn tụ màu dựa theo dũng quột (Scan-line algorithm) Giả sử dựng cần tụ là một đa giỏc N đỉnh {Pi =(xi,yi)} i=1..N

Ta sử dụng 1 dũng quột song song với trục Ox đi từ đỉnh trờn cựng (Ymax) đến đỉnh dưới cựng (Ymin) của vựng cần tụ. Với mỗi giỏ trị y = yi, dũng quột cắt cỏc đường biờn của vựng cần tụ tạo thành cỏc đoạn thẳng. Ta tụ màu cỏc điểm nằm giữa hai đầu mỳt của cỏc đoạn thẳng đú.

Lõn cận 4 điểm Lõn cận 8 điểm

Hỡnh 3.6. Xỏc định miền tụ nhờ dũng quột (Trường hợp 1)

Cỏc bước:

- Xỏc định Ymax, Ymin của đa giỏc cần tụ

- Với mỗi dũng quột y = yi (Ymin ≤ yi≤ Ymax), xỏc định hoành độ giao điểm với cỏc cạnh của đa giỏc

- Sắp xếp chỳng theo thứ tự tăng dần thành cỏc cặp (x0, x1) ... - Tụ cỏc đoạn (x0, x1), (x2, x3), (x4, x5) ...

Tuy nhiờn, cú một ngoại lệ là khi dũng quột đi qua đỉnh P của đa giỏc. Khi đú ta phải chia thành 2 trường hợp:

- Nếu 2 cạnh kề của P cú hướng ngược nhau, một cạnh đi lờn một cạnh đi xuống thỡ trong danh sỏch giao điểm ta sẽ tớnh là 2 giao điểm cú tọa độ trựng nhau ở đỉnh P. Nghĩa là xi = xi+1 = xP

Ymax

- Nếu 2 cạnh kề của P cựng hướng nhau, cả hai cựng đi lờn hoặc đi xuống thỡ P chỉ được tớnh là 1 giao điểm.

Túm tắt chương 3

Sinh viờn cần hiểu được khỏi niệm về cỏc khụng gian màu. Lưu ý nhiều ở giải thuật tụ biờn và scan-line.

So sỏnh được cỏc khụng gian màu

Trong scan-line phải đỏnh dấu cỏc đỉnh đơn điệu và đỉnh cực trị.

Trong giải thuật tụ biờn, việc thực hiện gọi đệ qui nhiều lần làm thuật toỏn khụng thể sử dụng cho vựng tụ lớn (tràn stack). Cú thể khắc phục việc tràn stack bằng cỏch giảm số lần gọi đệ qui. Thực hiện gọi đệ qui tại đỉnh đặc biệt của đa giỏc

1

2,3

4

1 2 3

Hỡnh 3.7. Xỏc định miền tụ nhờ dũng quột (trường hợp 2)

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 scan-line. 7. Viết chương trỡnh vẽ một đường trũn. Tụ đường trũn bằng giải thuật tụ scanline.

8. Vẽ lỏ cờ tổ quốc Việt Nam

CHƯƠNG 4. CÁC PHẫP BIẾN HèNH

Cỏc phộp biến đổi hỡnh học cơ sở bao gồm: - tịnh tiến /dời hỡnh (translation) - quay (rotation)

- tỷ lệ /vị tự / (scaling) Vớ dụ:

- một bỏo cỏo viờn muốn thu nhỏ cỏc biểu đồ trong bỏo cỏo

- một kiến trỳc sư muốn nhỡn tũa nhà ở những gúc nhỡn khỏc nhau

- nhà thiết kế muốn quan sỏt, tỏch rời và chỉnh sửa từng chi tiết của mẫu thiết kế

- ...

Cú hai quan điểm về phộp biến đổi hỡnh học, cú liờn quan với nhau và đều cú những lợi thế riờng:

- Biến đổi đối tượng (object transformation): tọa độ của từng điểm trờn đối tượng được biến đổi theo cụng thức của phộp biến hỡnh, tạo ra ảnh của đổi tượng qua phộp biến hỡnh đú.

- Biến đổi hệ tọa độ (coordinate transformation): tạo ra một hệ tọa độ mới, sau đú tất cả cỏc điểm của đối tượng sẽ được chuyển về hệ tọa độ đú.

Phộp biến hỡnh affin Ánh xạ T: R2 R2 P(x,y) Q(x*,y*) trong đú:    = = ) , ( * ) , ( * y x g y y x f x

và f() và g() là hai hàm tuyến tớnh thỡ được gọi là phộp biến hỡnh Affin (affine). Ta chỉ khảo sỏt cỏc phộp biến hỡnh loại này. Phộp biến hỡnh affin cú những tớnh chất sau:

- Bảo toàn đường thẳng: ảnh của đường thẳng qua phộp biến hỡnh affine là đường thẳng.

- Bảo toàn tớnh song song của cỏc đường thẳng: ảnh của cỏc đường thẳng song song qua phộp biến hỡnh affine cũng là cỏc đường thẳng song song.

- Bảo toàn tỷ lệ về khoảng cỏch: giả sử C là điểm chia đoạn AB theo tỷ lệ x và A’,B’,C’ lần lượt là ảnh của A,B,C qua một phộp biến hỡnh affin. Khi đú C’ cũng chia đoạn A’B’ theo tỷ lệ x.

Một phần của tài liệu Tìm hiểu về đồ họa máy tính ppt (Trang 52 - 59)

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

(177 trang)
w