Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
0,98 MB
Nội dung
CHƯƠNG CÁC ĐỐI TƯNG ĐỒ HỌA CƠ SỞ Bất kì ảnh mô tả giới thực cấu trúc từ tập đối tượng đơn giản Ví dụ ảnh thể trí phòng cấu trúc từ đối tượng cảnh, tủ kính, bàn ghế, tường, ánh sáng đèn, … Với ảnh đồ họa phát sinh máy tính, hình dạng màu sắc đối tượng mô tả riêng biệt hai cách : dãy pixel tương ứng tập đối tượng hình học sở đoạn thẳng hay vùng tô đa giác, … Sau đó, ảnh hiển thò cách nạp pixel vào vùng đệm khung Hình 2.1 – Ảnh cánh tay robot cấu tạo từ đối tượng đồ họa sở Với ảnh mô tả đối tượng hình học sở, cần phải có trình chuyển đối tượng dạng ma trận pixel trước Quá trình gọi trình chuyển đổi dòng quét (scanconverting) Bất kì công cụ lập trình đồ họa phải cung cấp hàm để mô tả ảnh dạng đối tượng hình học sở hay gọi đối tượng đồ họa sở (output primitives) hàm cho phép kết hợp tập đối tượng sở để tạo thành đối tượng có cấu trúc phức tạp Mỗi đối tượng đồ họa sở mô tả thông qua liệu tọa độ thuộc tính nó, thông tin cho biết kiểu cách mà đối tượng hiển thò Đối tượng đồ họa sở đơn giản điểm đoạn thẳng, có đường tròn, đường conics, mặt bậc hai, mặt đường splines, vùng tô đa giác, chuỗi kí tự, … xem đối tượng đồ họa sở để giúp xây dựng ảnh phức tạp Chương khảo sát thuật toán hiển thò đối tượng đồ họa sở cho thiết bò hiển thò dạng điểm Xét mặt chất, thuật toán thực trình chuyển đổi đối tượng đồ họa sở mô tả hệ tọa độ thực dãy pixel có tọa độ nguyên thiết bò hiển thò Có hai yêu cầu đặt cho thuật toán : • Đối tượng mô tả hệ tọa độ thực đối tượng liên tục, đối tượng hệ tọa độ thiết bò đối tượng rời rạc, chất trình chuyển đổi rời rạc hóa nguyên hóa đối tượng cho xác đònh điểm nguyên xấp xỉ đối tượng cách tốt nhất, thực Nghóa đối tượng hiển thò lưới nguyên thiết bò hiển thò phải có hình dạng tương tự đối tượng lưới tọa độ thực “có vẻ” liên tục, liền nét Sự liên tục lưới nguyên thiết bò hiển thò có mắt người phân biệt hai điểm gần • Do đối tượng đồ họa sở thành phần cấu trúc đối tượng phức tạp nên thuật toán hiển thò chúng cần phải tối ưu hóa mặt tốc độ, điểm mấu chốt cho việc đời thuật toán khác Hình 2.2 – Quá trình chuyển đổi đoạn thẳng dãy pixel tương ứng CÁC ĐỐI TƯNG ĐỒ HỌA CƠ SỞ 1.1 Hệ tọa độ giới thực hệ tọa độ thiết bò 1.1.1 Hệ tọa độ giới thực Hệ tọa độ giới thực (hay hệ tọa độ thực) hệ tọa độ dùng mô tả đối tượng giới thực Một hệ tọa độ thực thường dùng hệ tọa độ Descartes Với hệ tọa độ này, điểm mặt phẳng mô tả cặp tọa độ (x, y) x, y ∈ R Gốc tọa độ điểm O có tọa độ (0, 0) Các trục tọa độ có chiều dương quy ước hình 2.3; Ox, Oy gọi trục hoành, trục tung; x khoảng cách từ điểm đến trục hoành hay gọi hoành độ, y khoảng cách từ điểm đến trục tung hay gọi tung độ Các tọa độ giới thực cho phép người dùng sử dụng thứ nguyên (dimension) quy ước foot, cm, mm, km, inch, lớn nhỏ tùy ý 1.1.2 Hệ tọa độ thiết bò Hệ tọa độ thiết bò hệ tọa độ dùng thiết bò xuất cụ thể máy in, hình, Đặc điểm chung hệ tọa độ thiết bò : • Các điểm hệ tọa độ thiết bò mô tả cặp tọa độ (x, y), nhiên điểm khác với hệ tọa độ thực x, y ∈ N Điều cho thấy điểm hệ tọa độ thực đònh nghóa liên tục, điểm hệ tọa độ thiết bò rời rạc tính chất tập số tự nhiên • Các tọa độ x, y hệ tọa độ thiết bò lớn tùy ý mà bò giới hạn khoảng Một số thiết bò cho x chạy đoạn[0,639], y chạy đoạn [0,479] Khoảng giới hạn tọa độ x, y khác loại thiết bò khác y y y P WC (x,y) y max P O x DC (x,y) x O (a) x max x (b) Hình 2.3 – Hệ tọa độ thực (a) hệ tọa độ thiết bò (b) Hệ tọa độ với hướng trục tọa độ gọi hệ tọa độ theo quy ước bàn tay phải Ngoài cách tổ chức nhớ nên thông thường hệ tọa độ thiết bò thường dựa hệ tọa độ theo quy ước bàn tay traùi y O O x (a) x y (b) Hình 2.4 - Hệ tọa độ theo quy ước bàn tay phải (a) quy ước bàn tay trái (b) 1.2 Điểm Điểm thành phần sở đònh nghóa hệ tọa độ Đối với hệ tọa độ hai chiều điểm xác đònh cặp tọa độ (x, y) Ngoài thông tin tọa độ, điểm có thuộc tính màu sắc 1.3 Đoạn thẳng, đường gấp khúc Một đường thẳng xác đònh biết hai điểm thuộc Phương trình đường thẳng qua hai điểm (x1, y1) (x2, y2) có dạng sau : x − x1 x − x1 = y − y1 y2 − y1 hay dạng tương đương : ( x − x1 )( y2 − y1 ) = ( y − y1 )( x2 − x1 ) Khai triển ta có dạng : y = mx + b , : Dy , Dy = y2 − y1 , Dx = x2 − x1 Dx b = y1 − mx1 m= Đây gọi phương trình đoạn chắn đường thẳng Nếu khai triển dạng : ( y2 − y1 ) x − ( x2 − x1 ) y − x1 y2 + x2 y1 =0 đặt A = y2 − y1 , B = −( x2 − x1 ), C = x2 y1 − x1 y2 phương trình đường thẳng có dạng Ax + By + C = , dạng gọi phương trình tổng quát đường thẳng Phương trình tham số đường thẳng có dạng tọa độ x, y mô tả qua thành phần thứ ba t Dạng thuận tiện khảo sát đoạn thẳng x = (1 − t) x1 + tx2 y = (1 − t) y1 + ty2 Nếu t ∈ [ 0,1] , ta có điểm (x,y) thuộc đoạn thẳng giới hạn hai điểm (x1, y1) (x2, y2), t ∈ [ −∞ ,+∞] , ta có toàn đường thẳng Một đoạn thẳng đường thẳng bò giới hạn hai điểm đầu, cuối (x , y ) t>1 t=1 (x , y ) t=0 t Với đoạn thẳng dạng này, ( xi , yi ) điểm xác đònh bước thứ i (điểm màu đen) điểm cần chọn ( xi +1 , yi +1 ) bước thứ (i+1) hai trường hợp hình vẽ sau : ( xi +1 , yi +1 ) Hình 2.11 – Các điểm yi chọn bước (i+1) cho trường hợp (x i +1 , y i +1 ) (x i +1 , y i ) xi đoạn thẳng có hệ số góc 0EdgeTmp.yMin)) { EdgeList.aEdge[j] = EdgeList.aEdge[j-1]; j ; } // tien hanh chen dinh moi vao canh EdgeList.NumEdge++; EdgeList.aEdge[j] = EdgeTmp; } // PutEdgeInList /* Tim dinh ke tiep cho khong nam tren cung duong thang voi dinh dang xet */ int FindNextY(POLYGON P, int id) { int j = (id+1)%P.NumVertex; while((j