p_gtcohen
Câu 3: Giải thuật cohen-suntherland
*ý tưởng: Kéo dài đường biên của cửa sổ sao cho chúng chia mặt phẳng của cửa sổ thành 9 phần như hình vẽ:
tự hok();
Mỗi điểm trên mặt phẳng sẽ có 1 thuộc tính được biểu diễn = 4 bít thông tin sau:
Bít 1=1 nếu điểm nằm bên trái cửa sổ (0001)
Bít 2=1 nếu điểm nằm bên phải cửa sổ (0010)
Bít 3=1 nếu điểm nằm bên dưới cửa sổ (0100)
Bít 4=1 nếu điểm nằm bên trên cửa sổ (1000)
Nếu các điểm nằm lọt trong các cửa sổ 4 bít đều =0
->có 3 khả năng xuất hiện đoạn thẳng so với cửa sổ
- có điểm mút nằm ngoài cửa sổ thì 2 điểm đó có mã thuộc tính # 0000
- điểm mút nằm trong cửa sổ thì 2 điểm đó đều có mã thuộc tính = 0000
- có 1 điểm mút nằm trong cửa sổ thì chỉ có điểm đó có mã thuộc tính =0000
->Áp dụng cách ghi mã trên có nguyên tắc loại bỏ sau:
- cả 2 mã thuộc tính của 2 điểm mút = 0000 thì đoạn đó nằm trong cửa sổ.
-Nếu thực hiện phép AND lên 2 đoạn mã thuộc tính cho kết quả # 0000 thì đoạn đó hoàn toàn nằm ngoài cửa sổ.,
*bảng ghi mã kết quả:
tự hok()
*Xét các trường hợp đặc biệt.
-ac: điểm a có mã 1001, điểm c có mã 0000 sau khi and là 0000 nên chưa kết luận được., xét giao điểm K của ac với biên thấy K là 0000, phép and giữa k với c là 0000 => vẽ đoạn kc
-fg: điểm afcó mã 0001, điểm g có mã 0100 sau khi and là 0000 nên chưa kết luận được., xét giao điểm I và M thấy I là 0000 M là 0000, phép and giữa I với M là 0000 => vẽ đoạn IM
Bạn đang đọc truyện trên: AzTruyen.Top