Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 49 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
49
Dung lượng
0,98 MB
Nội dung
LOGO BÁO CÁO ĐỀ TÀI Nhóm 2 – Đại Học TinK2 ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH KHOA CÔNG NGHỆ THÔNG TIN THUẬT TOÁN TÔ MÀU THEO ĐƯỜNG BIÊN & DÒNG QUÉT Giảng viên: Ths.Trần Thanh Phong LOGO Nội dung trình bày Lời nói đầu 1 Giới thiệu đề tài 2 Thuật Toán Tô Màu Theo Đường Biên 3 Tổng Kết 5 4 Thuật Toán Tô Màu Theo Dòng Quét 44 4 LOGO Nhóm 2 – Đại Học TinK2 Lời nói đầu Trong đồ họa máy tính có khá nhiều thuật toán tô màu (Scanline, tô loang ) cho 1 vùng kín (đặc) như các đa giác, các đường tròn Xong mỗi thuật toán lại tỏ ra có những ưu việt và hạn chế riêng đối với từng bài toán cụ thể. Với thuật toán tô màu theo dòng quét (Scanline), khi tô màu cho một vùng kín đôi khi cần phải xác định cho được các trường hợp đặc biệt của bài toán để sao cho kết quả trả về sẽ tô được những vùng cần thiết như mong muốn. LOGO Song, trong thực tiễn để làm được điều này nhiều lúc cũng gặp phải khá nhiều khó khăn trong việc xử lý các trường hợp đặc biệt đó.Đề tài này nhằm mục đích tìm hiểu hai thuật toán : Tô màu theo đường biên và tô màu theo dòng quét xác định các trường hợp đặc biệt của bài toán tô màu đa giác cũng như cách xử lý chúng để cho kết quả tô chính xác bằng thuật toán Scanline. Lời nói đầu Nhóm 2 – Đại Học TinK2 LOGO Với đề tài này và được sự hướng dẫn của thầy giáo Ths.Trần Thanh Phong nhóm đã cố gắng tìm hiểu nhưng vẫn chưa được hoàn thiện. Nhóm mong được sự đóng góp ý kiến nhiệt tình của các bạn Nhóm xin chân thành cảm ơn! Lời nói đầu Nhóm 2 – Đại Học TinK2 LOGO Nhóm 2 – Đại Học TinK2 Giới Thiệu Chung 1.Giới thiệu đề tài 1.Giới thiệu đề tài Nội dung : Thuật toán cải tiến của tô màu loang (Tô màu theo đường biên). Thuật toán tô màu theo dòng quét (Tổ chức dữ liệu). Demo : +Tô màu theo biên. + Tô màu theo dòng quét. LOGO Nhóm 2 – Đại Học TinK2 Giới Thiệu Chung 2.Tô màu là gì? 2.Tô màu là gì? - Tô màu một vùng là thay đổi màu sắc của các điểm vẽ nằm trong vùng cần tô.Một vùng tô thường đựơc xác định bởi một đường khép kín nào đó gọi là đường biên. Dạng đường biên đơn giản thường gặp là đa giác. - Việc tô màu thường chia làm 2 công đoạn : + Xác định vị trí các điểm cần tô màu. + Quyết định tô các điểm trên bằng màu nào. Công đoạn này sẽ trở nên phức tạp khi ta cần tô theo một mẫu tô nào đó chứ không phải tô thuần một màu. - Có 3 cách tiếp cận chính để tô màu. Đó là : tô màu theo từng điểm (có thể gọi là tô đơn giản), tô màu theo dòng quét và tô màu dựa theo đường biên. LOGO Nhóm 2 – Đại Học TinK2 Giới Thiệu Chung Bài toán tô màu đa giác mô tả như sau: - Dữ liệu vào: Một mảng P chứa các các đỉnh của đa giác và một hằng số màu color, mỗi phần tử trong mảng P là một bản ghi gồm 2 thành phần x và y. - Dữ liệu ra: Đa giác P đã được tô bởi màu color. LOGO 1.Bài toán đặt ra 1.Bài toán đặt ra : : Cần tô màu một vùng nếu biết được màu của đường biên vùng tô và một điểm nằm bên trong vùng tô. 2. Ý tưởng : 2. Ý tưởng : - Một hình đa giác được xác định bằng các đường biên, chúng ta phân biệt đường biên với vùng cần tô (bên trong đường biên) bằng thuộc tính màu sắc. - Bắt đầu từ một điểm (x,y) bất kỳ trong vùng tô, ta tô ra 4 đỉnh, rồi lại gọi đệ quy từ các đỉnh đó tô cho đến khi gặp màu tô của đường biên. - Hoặc bắt đầu từ một điểm nằm bên trong vùng tô, kiểm tra các điểm lân cận của nó đã được tô với màu muốn tô, hay điểm lân cận có màu trùng với màu biên không ? Nếu cả hai trường hợp đều không phải thì ta sẽ tô điểm đó với màu muốn tô. Quá trình này được lặp lại cho đến khi không còn tô được nữa thì dừng (xem hình 1). Thuật toán tô màu theo đường biên Nhóm 2 – Đại Học TinK2 LOGO Thuật toán tô màu theo đường biên Nhóm 2 – Đại Học TinK2 [...]... điểm (x,y) là điểm có vị trí đặc biệt trong vùng tô, sau đó, gọi đệ qui các điểm lân cận của (x,y) (xem hình 1) Nhóm 2 – Đại Học TinK2 LOGO Thuật toán tô màu theo đường biên 4.Cài đặt minh họa: 4.1 Cài đặt minh họa thuật toán 4 liên thông: Procedure Boundary_fill ( x,y, mauto, maubien :integer); var mau_ht : integer; begin mau_ht:= getpixel(x, y); if (mau_ht mauto) and (mau_ht maubien) then begin... Boundary_fill ( x-1,y, mauto, maubien ); Boundary_fill ( x,y+1, mauto, maubien ); Boundary_fill ( x,y-1, mauto, maubien ); end; end; Nhóm 2 – Đại Học TinK2 LOGO Thuật toán tô màu theo đường biên 4.2 Minh họa thuật toán: Cho hình vẽ được mô tả như sau: Nhóm 2 – Đại Học TinK2 LOGO Thuật toán tô màu theo đường biên Ví dụ 1: Trong hình 3 ta có thể xét điểm (x,y) có tọa độ là (498, 200) Với điểm khởi đầu này... và C2 sẽ sáng lên nênTT sẽ bỏ qua điểm C’ TH4: Dòng L4 trùngvớicạnhnằm ngang S Mọi pixel giữa D1,D2 sẽ sáng lên Phải xây dựng mộtTTcoi cạnh S là không tồn tại ( không bật sáng các Pixel nằm trên S) Đồng thời các pixel giữa D2 và D3 sẽ không sáng lên và các Pixel giữa D3, D4 lại được sáng lên Nhóm 2 – Đại Học TinK2 LOGO Tô Màu Theo Dòng Quét(Scan-line) 3.1 Kiểm tra tính chất các giao điểm Để kiểm... hơn YSCAN còn tung độ kia lớn hơn YSCAN thì dòng quét cắt cạnh đó Để tìm giao điểm giữa cạnh đa giác và dòng quét, ta có nhận xét sau : Nhóm 2 – Đại Học TinK2 LOGO Tô Màu Theo Dòng Quét(Scan-line) Lưu đồ thuật toán scan – line Trong đó m là hệ số góc của cạnh Nhóm 2 – Đại Học TinK2 LOGO Tô Màu Theo Dòng Quét(Scan-line) 3.3 Xử lý các trường hợp đặc biệt 1 Nếu cạnh bị cắt là nằm ngang thì chỉ việc bỏ . theo đường biên Nhóm 2 – Đại Học TinK2 4.Cài đặt minh họa: 4.Cài đặt minh họa: 4.1 Cài đặt minh họa thuật toán 4 liên thông: 4.1 Cài đặt minh họa thuật toán 4 liên thông: Procedure Boundary_fill. Kết 5 4 Thuật Toán Tô Màu Theo Dòng Quét 44 4 LOGO Nhóm 2 – Đại Học TinK2 Lời nói đầu Trong đồ họa máy tính có khá nhiều thuật toán tô màu (Scanline, tô loang ) cho 1 vùng kín (đặc) như các. LOGO BÁO CÁO ĐỀ TÀI Nhóm 2 – Đại Học TinK2 ĐẠI HỌC SƯ PHẠM KỸ THUẬT VINH KHOA CÔNG NGHỆ THÔNG TIN THUẬT