Do hoa may tinh 04/20/22 Ma Thị Châu Bùi Thế Duy1 Đồ họa máy tính Các thuật toán mành hóa 04/20/22 Ma Thị Châu Bùi T hế Duy 2 Các thuật toán tô phủ Bài toán tô phủ loang (Flood fill problem) Với hai m[.]
Đồ họa máy tính Các thuật tốn mành hóa 04/20/22 Ma Thị Châu - Bùi Thế Duy Các thuật tốn tơ phủ Bài tốn tơ phủ loang (Flood fill problem): Với hai màu khác c c’, tập điểm A có màu c bao quanh điểm có màu khác với c c’, tìm thuật tốn thay màu tất điểm thuộc A điểm thành màu c’ 04/20/22 Ma Thị Châu - Bùi T Thuật tốn tơ phủ procedure BFA (integer x, y) begin if Inside (x,y) then Begin Set (x,y); BFA (x,y - 1); BFA (x,y + 1); BFA (x - 1,y); BFA (x + 1,y); end end; 04/20/22 Ma Thị Châu - Bùi T Thuật tốn tơ phủ Smith int x, y, lx, rx; /*Một ngăn xếp chứa tọa độ điểm (x,y);*/ void Fill (int seedx, int seedy){ x = seedx; y = seedy; if (!(Inside (x,y)) exit(0); Push (x,y); while (StackNotEmpty()){ PopXY (); if (Inside(x,y)){ FillRight (); FillLeft (); /* Phủ đoạn có chứa điểm */ ScanHi (); ScanLo (); /*Quét đoạn đoạn tại*/ } } 04/20/22 Ma Thị Châu } - Bùi T Thuật tốn tơ phủ Smith 6,3 6,2 2,3 8,4 6,404/20/22 Bắt đầu: (7,3) FillRight: đoạn (7,3) đến (8,3) tô FillLeft: (6,3) tô ScanHi: điểm (6,4) (8,4) vào ngăn xếp ScanLo:điểm (6,2) vào ngăn xếp Lấy(6,2) ra, coi điểm bắt đầu Lệnh FillRight FillLeft: tô phủ đoạn từ (2,2) đến (8,2) ScanHi ScanLo:cho (2,3) (6,3) vào ngăn xếp Lấy (6,3) (6,3) tô lấy (2,3) tiếp tục ngăn xếp rỗng Ma Thị Châu - Bùi T Định lý Jordan Số điểm cắt chẵn: Ngoài đa giác Số điểm cắt lẻ: Trong đa giác Không đa giác tự cắt 04/20/22 Ma Thị Châu - Bùi T Định lý Jordan Kiểm tra đại lượng e -Sử dụng hướng đường thẳng -đặt e = -Cắt từ trái qua phải e + +, phải qua trái e - -e != 0, nằm 0 0 1 04/20/22 Ma Thị Châu - Bùi T Trường hợp đặc biệt • Có trường hợp đặc biệt thuật tốn Jordan : • Cắt trùng lên cạnh • Cắt trùng lên đỉnh đa giác 04/20/22 Ma Thị Châu - Bùi T Thuật toán đường quét Kiểm tra Jordan tăng dần Sắp xếp theo giá trị y y 04/20/22 Ma Thị Châu - Bùi T Thuật toán đường quét 10 Kiểm tra Jordan tăng dần Sắp xếp theo giá trị y Sử dụng liên kết đường quét – giá trị cho đường quét trước gần giá trị cho đường quét sau Lưu trữ danh sách cạnh xét 04/20/22 Ma Thị Châu - Bùi T