Xén đa giác vào hình chữ nhật

Một phần của tài liệu giáo trình đồ họa máy tính (Trang 27 - 28)

3. Thuật toán Liang Barsky

4.1.5.Xén đa giác vào hình chữ nhật

Hình 3.7. Xén đa giác vào hình ch ữ nhậ t

Thuật toán SutherLand - Hodgman

i/ Nếu tất cả các đỉnh của đa giác đều nằm trong hình chữ nhật thì hình cần xén chính là đa giác và bài toán coi như đãđược giải quyết.

Hình 3.8. Các tr ư ờ ng hợ p cầ n xét

ii/ Trường hợp ngược lại:

- Xuất phát từ một đỉnh nằm ngoài hình chữ nhật, ta chạy theo dọc biên của đa giác. Với mỗi cạnh của đa giác, ta có các tr ường hợp sau:

Nếu cả hai đỉnh đều nằm ngoài hình chữ nhật thì:

Nếu Ma(Ai) and Ma(Ai+1) 0000 thì không lưu đỉnh Ngược lại thì lưu hai giao điểm.

Ai ngoài, Ai+1 trong: lưu giao điểm P và Ai+1. ̀ƒ ̀ƒJ P ̀ƒJ P ̀ƒ ̀ƒ ̀ƒJ P ̀ƒJ P ̀ƒ ̀ƒ ̀ƒJ P

Cả hai đỉnh đều nằm trong hình chữ nhật: lưu Ai và Ai+1. Ai trong, Ai+1 ngoài: lưu Ai và giao điểm P.

- Sau khi duyệt qua tất cả các cạnh của đa giác thì ta có được một dãy các đỉnh mới phát sinh: B1, B2, ..., Bn

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 hình chữ nhật , giả sử hai đỉnh đó là Bi và Bi+1 thì ta đi dọc các cạnh của hình chữ nhật từ Bi đến Bi+1 để tìm tất cả các đỉnh của hình chữ nhật nằm trong đa giác rồi bổ sung chúng vào giữa Bi và Bj.

Tập đỉnh mới tìmđược chính là đa giác xén được.

- Nếu tập đỉnh mới này là rỗng: Nếu có một đỉnh của hình chữ nhật nằm trong đa giác thì hình xén được chính là toàn bộ hình chữ nhật. Ngược lại, hình xén được là rỗng.

Một phần của tài liệu giáo trình đồ họa máy tính (Trang 27 - 28)