Bài giảng Đồ họa máy tính - Tuần 8: Phương pháp xén hình - Lý Quốc Ngọc

Đồ họa máy tính  
Tuần 8: Phương pháp XÉN HÌNH  
Nội dung  
8.1. Xén đoạn thẳng vào hình chữ nhật  
8.2. Xén đa giác vào hình chữ nhật  
8.3. Xén đa giác vào đa giác lồi  
2
TS. Lý Quốc Ngọc  
3/24/2014  
8.1. Xén đoạn thẳng vào HCN  
8.1.1. Phát biểu bài toán  
Đặc tả miền trong của HCN là:  
D  
(x, y)R2 | xmin x xmax, ymin y ymax  
Đoạn thẳng L qua (x1,y1), (x2,y2) dạng:  
x x1(x2x1).t  
y y1(y2y1).t  
t [0,1]  
3
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.1. Phát biểu bài toán  
Phần giao DL nghiệm của hệ phương trình:  
xmin x1(x2x1).t xmax  
y min y1(y2 y1).t y max (1)  
0 t 1  
4
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.1. Phát biểu bài toán  
Gọi T là tập nghiệm của hệ phương trình (1),  
DL    
T [t1,t2 ],  
T    
T    
Nếu  
Nếu  
thì  
thì  
2
(x, y)R , x x1(x2x1).t,  
D L   
y y1(y2 y1).t,  
t1 t t2  
5
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
- Xét vị trí tương quan giữa L và D:  
x1, x2 xmin  
x1, x2 xmax  
y1, y2 y min  
y1, y2 y max  
(1)  
L nằm ngoài D  
6
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
- Xét vị trí tương quan giữa L và D:  
xmin x1, x2 xmax  
y min y1, y2 y max  
(2)  
L nằm trong D  
L cắt D nếu 2 đầu mút không thỏa (1) và (2)  
7
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
Để xét vị trí tương quan giữa L và D, Cohen-  
Sutherland để xuất sử dụng mã vùng.  
Mã vùng của một điểm P là Code(P) gồm 4  
bits: Left(P), Right(P), Below(P), Above(P)  
được xác định như sau:  
8
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
1 x xmin  
1 x xmax  
Left(P)   
Right(P)   
0 x xmin  
0 x xmax  
1 y y min  
1 y y max  
Below(P)   
Above(P)   
0 y ymin  
0 y ymax  
9
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
Nếu L cắt D, giả sử  
(A ngoài HCN).  
Code(A) 0000  
Ta thực hiện lặp quá trình sau cho đến khi đoạn thẳng  
tạo sinh nằm ngoài hoặc nằm trong D.  
- Nếu Left(A)=1: cập nhật A bởi nghiệm của hệ  
phương trình  
x xmin  
yB y  
y yA   
A (x xA )  
xB xA  
10  
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
- Nếu Right(A)=1: cập nhật A bởi nghiệm của hệ  
phương trình  
x xmax  
yB y  
y yA   
A (x xA )  
xB xA  
11  
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
- Nếu Below(A)=1: cập nhật A bởi nghiệm của hệ  
phương trình  
y y min  
xB xA  
x xA   
(y yA )  
yB yA  
12  
TS. Lý Quốc Ngọc  
8.1. Xén đoạn thẳng vào HCN  
8.1.2. Phương pháp Cohen-Sutherland  
- Nếu Above(A)=1: cập nhật A bởi nghiệm của hệ  
phương trình  
y y max  
xB xA  
x xA   
(y yA )  
yB yA  
13  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.1. Phát biểu bài toán  
Đặc tả miền trong của HCN là:  
D   
(x, y)R2 | xmin x xmax, ymin y ymax  
Đa giác P có các đỉnh P1(x1,y1),, Pn(xn,yn) gồm  
các đoạn thẳng có Pi Pi+1modn dạng:  
x x (x x ).t  
i
i1modn  
i
i
ti [0,1]; i[1,n]  
y yi (yi1modn yi ).ti  
14  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.1. Phát biểu bài toán  
DP  
Phần giao  
miền trong được tạo bởi tập các  
đỉnh của D thuộc đa giác P và tập điểm nghiệm của  
các hệ phương trình sau  
xmin x (x x ).t xmax  
i
i1modn  
i
i
y min y (y y ).t y max i[1,n]  
i
i1mod  
i
i
0 ti 1  
15  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.2. Phương pháp Sutherland-Hodgeman  
Giai đoạn 1. Xác định tập điểm ứng viên tạo nên  
DP  
phần giao  
-Nếu tất cả các đỉnh của P đều nằm trên D (hoặc trong D)  
thì kết quả chính là đa giác.  
-Nếu ngược lại (tồn tại ít nhất 1 điểm của P nằm ngoài D)  
. Duyệt lần lượt các cạnh của P khởi đầu từ đỉnh (x1,y1).  
. Với mỗi cạnh của P, ta có các trường hợp sau:  
. Nếu cả 2 đỉnh đều nằm ngoài HCN thì  
. Nếu cạnh nằm ngoài HCN thì không lưu đỉnh.  
. Nếu cạnh cắt HCN thì lưu 2 giao điểm.  
16  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.2. Phương pháp Sutherland-Hodgeman  
. Với mỗi cạnh của P, ta có các trường hợp sau:  
. Nếu Pi nằm ngoài, Pi+1modn nằm trong: lưu giao điểm I  
và Pi+1modn  
. Cả hai đỉnh nằm trong D: lưu Pi và Pi+1modn  
.
. Nếu Pi nằm trong, Pi+1modn nằm ngoài: lưu Pi và I  
17  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.2. Phương pháp Sutherland-Hodgeman  
Giai đoạn 2. Bổ sung tập điểm ứng viên tạo nên  
phần giao  
DP  
Sau khi duyệt qua tất cả các cạnh của P, ta có một dãy  
các đỉnh mới phát sinh {Q}, (giải sử {Q} )  
 
i[1,m]  
i
i
Nếu trong dãy các đỉnh mới này, có hai đỉnh liên tiếp  
không nằm trên cùng một cạnh của D. giả sử là Qi  
và Qi+1 . Đi dọc theo các cạnh của D từ Qi đến Qi+1  
để tìm tất cả các đỉnh của D nằm trong P rồi bổ  
sung chúng vào giữa Qi và Qi+1 .  
18  
TS. Lý Quốc Ngọc  
8.2. Xén đa giác vào HCN  
8.2.2. Phương pháp Sutherland-Hodgeman  
Giai đoạn 2. Bổ sung tập điểm ứng viên tạo nên phần  
giao  
DP  
Tập điểm được bổ sung cấu thành nên phần giao  
DP  
Nếu tậo điểm này rỗng:  
. Nếu tồn tại một đỉnh D nằm trong P thì kết qu D.  
. Ngược lại kết quả rỗng  
19  
TS. Lý Quốc Ngọc  
8.3. Xén đa giác vào đa giác lồi  
8.3.1. Phát biểu bài toán  
Cho trước đa giác lồi Pconvex.  
Đa giác bị cắt P có các đỉnh P1(x1,y1),, Pn(xn,yn)  
gồm các đoạn thẳng có Pi Pi+1modn dạng:  
x x (x x ).t  
i
i1modn  
i
i
ti [0,1]; i[1,n]  
y yi (yi1modn yi ).ti  
20  
TS. Lý Quốc Ngọc  
Tải về để xem bản đầy đủ
pdf 24 trang Thùy Anh 27/04/2022 6020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Đồ họa máy tính - Tuần 8: Phương pháp xén hình - Lý Quốc Ngọc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_do_hoa_may_tinh_tuan_8_phuong_phap_xen_hinh_ly_quo.pdf