Danh mục

Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 8

Số trang: 5      Loại file: pdf      Dung lượng: 360.70 KB      Lượt xem: 13      Lượt tải: 0    
Hoai.2512

Phí tải xuống: miễn phí Tải xuống file đầy đủ (5 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Lớp phosphor có độ bền cao thường được dùng cho việc hiển thị các ảnh tĩnh, độ phức tạp cao. Mặc dù một số loại phosphor có độ bền lớn hơn 1 giây, tuy nhiên các màn hình đồ họa thường được xây dựng với độ bền dao động từ 10 đến 60 micro giây. Số lượng tối đa các điểm có thể hiển thị trên một CRT được gọi là độ phân giải (resolution)
Nội dung trích xuất từ tài liệu:
Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 8 }} // BoundaryFillEnhanced void FillLeft(int x, int y, int F_Color, int B_Color){ int CurrentColor; CurrentColor = getpixel(x,y); if((CurrentColor!=B_Color)&&CurrentColor!= F_Color)) { putpixel(x,y,F_Color); FillLeft(x-1, y, F_Color, B_Color); FillTop(x, y+1, F_Color, B_Color); FillBottom(x, y-1, F_Color, B_Color); }} // FillLeft void FillTop(int x, int y, int F_Color, int B_Color){ int CurrentColor; CurrentColor = getpixel(x,y); if((CurrentColor!=B_Color)&&CurrentColor!= F_Color)) { putpixel(x,y,F_Color); FillLeft(x-1, y, F_Color, B_Color); FillTop(x, y+1, F_Color, B_Color); FillRight(x+1, y, F_Color, B_Color); }} // FillTop } // FillTop void FillRight(int x, int y, int F_Color, int B_Color) { int CurrentColor; CurrentColor = getpixel(x,y); if((CurrentColor!=B_Color)&&CurrentColor!= F_Color)) { putpixel(x,y,F_Color); FillTop(x, y+1, F_Color, B_Color); FillRight(x+1, y, F_Color, B_Color); FillBottom(x, y-1, F_Color, B_Color); } } // FillRight void FillBottom(int x, int y, int F_Color, int B_Color) { int CurrentColor; CurrentColor = getpixel(x,y); if((CurrentColor!=B_Color)&&CurrentColor!= F_Color)) { putpixel(x,y,F_Color); FillLeft(x-1, y, F_Color, B_Color); FillRight(x+1, y, F_Color, B_Color); FillBottom(x, y-1, F_Color, B_Color); }} // FillBottom Thuật toán này có tính đệ quy, do đó khi cài đặt thường gây lỗi tràn bộ nhớ khi vùng tô khá lớn, doThuật toán này có tính đệ quy, do đó khi cài đặt thường gây lỗi tràn bộ nhớ khi vùng tô khá lớn, dođó để cải tiến chúng ta sẽ tiến hành loang dần và lần lượt tô từng đoạn giao theo dòng quét ngangthay vì tô theo 4 điểm lân cận. Như vậy chúng ta chỉ cần lưu lại thông tin của điểm bắt đầu mỗiđoạn giao của dòng quét ngang thay vì phải lưu hết tất cả các điểm lân cận chưa được tô của điểmhiện hành. Chúng ta sẽ cho các dòng quét loang từ điểm bắt đầu theo hướng lên biên trên, sau khiđã tô xong, các dòng quét còn lại theo hướng xuống biên dưới sẽ được tô. Ứng với mỗi dòng quétngang, ta sẽ loang và tìm pixel trái nhất (có hoành độ nhỏ nhất) để lưu lại. Trong hình 2.26, đoạngiao đầu tiên chứa điểm bắt đầu (tô màu trắng) sẽ được tô trước. Sau đó các vị trí 1, 2 ứng với cácđoạn giao của các dòng quét kế tiếp sẽ được lưu lại (hình 2.26a). Bước tiếp theo, điểm ứng với vịtrí 2 sẽ được lấy ra và tiến hành tô màu bằng cách loang từ điểm này ra theo chiều ngang, sau đópixel ứng vị trí 3 của dòng quét kế tiếp sẽ được lưu lại (hình 2.26b). Sau khi dòng quét ứng vớiđiểm 3 đã được xử lí tương tự như trên xong, stack lưu các vị trí của các điểm “hạt giống” cho cácdòng quét kế tiếp như trong hình 2.26c. Hình 2.26d minh họa khi thuật toán đã tô được toàn bộmột phần vùng phía trên bên phải của vùng tô. Khi pixel ứng với vị trí 5 được xử lí xong, ta có phầncòn lại phía trên bên trái sẽ được tô. Sau đó pixel ứng với vị trí 4 sẽ được xử lí, các dòng quét phíadưới sẽ được tô tiếp theo. Hình 2.26 – Thuật toán tô màu theo dòng quét cải tiến Hình 2.26 – Thuật toán tô màu theo dòng quét cải tiến TÓM TẮTCác đối tượng đồ họa cơ sở cung cấp các công cụ cơ bản nhất cho việc xây dựng các ảnh đồ họa của các đốitượng phức tạp. Các đoạn thẳng, đường cong, vùng tô, kí tự, … là các đối tượng đồ họa cơ sở được hầu hết tấtcả các công cụ lập trình đồ họa hỗ trợ.Mỗi đối tượng đồ họa cơ sở được mô tả thông qua dữ liệu về tọa độ và các thuộc tính của nó. Hệ tọa độ thườngđược dùng để mô tả đối tượng là hệ tọa độ Descartes. Các thuộc tính của đối tượng như màu sắc, kiểu, độ rộng,… cho biết kiểu cách mà đối tượng được hiển thị trên thiết bị.Để có thể hiển thị các đối tượng đồ họa trên thiết bị hiển thị dạng điểm mà điển hình là màn hình, cần phải có mộtquá trình chuyển các mô tả hình học của các đối tượng này trong hệ tọa độ thế giới thực về dãy các pixel tươngứng gần với chúng nhất trên hệ tọa độ của thiết bị. Quá trình này còn được gọi là quá trình chuyển đổi bằng dòngquét. Yêu cầu quan trọng nhất đối với quá trình này ngoài việc phải cho kết quả xấp xỉ tốt nhất còn phải cho tốcđộ tối ưu.Ba cách tiếp cận để vẽ đoạn thẳng gồm thuật toán DDA, thuật toán Bresenham, thuật toán MidPoint đều tậptrung vào việc đưa ra cách chọn một trong hai điểm nguyên kế tiếp khi đã biết được điểm nguyên ở ...

Tài liệu được xem nhiều: