Thuật tốn tơ màu dựa theo dịng quét

Một phần của tài liệu Tài liệu đồ họa máy tính (Trang 36 - 38)

2. CÁC THUẬT TỐN VẼ ĐƯỜNG

3.1.Thuật tốn tơ màu dựa theo dịng quét

Giả sử vùng tơ được cho bởi một đa giác N đỉnh : . Đa giác này cĩ thể là đa giác lồi, đa giác lõm, và cả đa giác tự cắt, …

Hình 2.18 sau minh họa ý tưởng chính của thuật tốn. Với mỗi dịng quét, ta sẽ xác định phần giao của đa giác và dịng quét rồi tơ màu các pixel thuộc đoạn giao đĩ. Để xác định các đoạn giao ta tiến

hành việc tìm giao điểm của dịng quét với các cạnh của đa giác, sau đĩ các giao điểm này sẽ được sắp theo thứ tự tăng dần của hồnh độ giao điểm. Các đoạn giao chính là các đoạn thẳng được giới hạn bởi từng cặp giao điểm một, ví dụ như (0,1), (2,3), ….

Hình 2.18 – Thuật tốn scan-line với một dịng quét nào đĩ

Ta cĩ thể tĩm bắt các bước chính của thuật tốn :

• Tìm , lần lượt là giá trị lớn nhất, nhỏ nhất của tập các tung độ của các đỉnh

của đa giác đã cho , .

• Ứng với mỗi dịng quét , với k thay đổi từ đến , lặp :

• Tìm tất cả các hồnh độ giao điểm của dịng quét với các cạnh của đa giác.

• Sắp xếp các hồnh độ giao điểm theo thứ tự tăng dần : x0, x1, …

• Tơ màu các đoạn thẳng trên đường thẳng lần lượt được giới hạn bởi các

cặp .

Nếu chỉ dừng ở mức này và chuyển sang cài đặt, chúng ta sẽ gặp một số vấn đề sau :

• Nhận xét rằng, ứng với mỗi dịng quét, khơng phải lúc nào tất cả các cạnh của đa giác cũng tham gia cắt dịng quét. Do đĩ để cải thiện tốc độ cần phải cĩ một cách nào đĩ để hạn chế được số cạnh cần tìm giao điểm ứng với mỗi dịng quét.

• Việc tìm giao điểm của cạnh đa giác với mỗi dịng quét sẽ gặp các phép tốn phức tạp như nhân, chia, … trên số thực nếu ta dùng cách giải hệ phương trình tìm giao điểm. Điều này sẽ làm giảm tốc độ thuật tốn khi phải lặp đi lặp lại nhiều lần thao tác này khi dịng quét quét qua đa giác.

• Nếu số giao điểm tìm được giữa các cạnh đa giác và dịng quét là lẻ thì việc nhĩm từng cặp giao điểm kế tiếp nhau để hình thành các đoạn tơ cĩ thể sẽ khơng chính xác. Điều này chỉ xảy ra khi dịng quét đi ngang qua các đỉnh của đa giác. Nếu tính số giao điểm tại đỉnh dịng quét đi ngang qua là hai thì cĩ thể sẽ cho kết quả tơ khơng chính xác như trong trường hợp của hình 2.19. Ngồi ra, việc tìm giao điểm của dịng quét với các cạnh nằm ngang là một trường hợp đặc biệt cần phải cĩ cách xử lí thích hợp.

Để giải quyết các vấn đề trên, cần phải xây dựng một cấu trúc dữ liệu và thuật tốn thích hợp đối với chúng.

Hình 2.19 – Dịng quét y=k2 đi ngang qua đỉnh cĩ thể sẽ cho kết quả tơ khơng chính xác so với dịng quét y=k1

Một phần của tài liệu Tài liệu đồ họa máy tính (Trang 36 - 38)