Danh mục tài liệu

Bài giảng Đồ họa hiện thực ảo: Bài 2 - Lê Tấn Hùng

Số trang: 28      Loại file: pdf      Dung lượng: 3.40 MB      Lượt xem: 37      Lượt tải: 0    
Xem trước 3 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài giảng "Đồ họa hiện thực ảo - Bài 2: Các giải thuật sinh các thực thể cơ sở" cung cấp cho người học các kiến thức: Giải thuật xây dựng các thực thể cơ sở, rời rạc hóa điểm ảnh, giải thuật trung điểm,... Mời các bạn cùng tham khảo nội dung chi tiết.
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa hiện thực ảo: Bài 2 - Lê Tấn Hùng Bài 2: Các giải thuật sinh các thực thể cơ sở Le Tan Hung hunglt@it-hut.edu.vn (c) SE/FIT/HUT 2002 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải thuật xây dựng các thực thể cơ sở „ Giải thuật sinh đường thẳng – Line „ Giải thuật sinh đường tròn - Circle „ Giải thuật VanAken sinh Ellipse „ Giải thuật sinh đa giác „ Giải thuật sinh ký tự (c) SE/FIT/HUT 2002 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt Rời rạc hoá điểm ảnh (Scan Conversion rasterization) „ Scan Conversion rasterization „ Tính chất các đối tượng cần đảm bảo : „ smooth „ continuous „ pass through specified points „ uniform brightness „ efficient (c) SE/FIT/HUT 2002 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt Biểu diễn đoạn thẳng „ Biểu diễn tường minh (y-y1)/( x-x1) = ( y2-y1)/( x2-x1)1 P(x2 , y2) y = kx + m „ Biểu diễn không tường minh u (y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0 hay rx + sy + t = 0 P(x1, y1) „ Biểu diễn tham biến P(u) = P1 + u(P2 - P1) u [0,1] m (c) SE/FIT/HUT 2002 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt Thuật toán DDA (Digital Differential Analizer) Giải thuật thông thường DrawLine(int x1,int y1, int x2,int y2, Giải thuật DDA int color) „ Với 0 < k < 1 { xi+1 = xi + 1 float y; yi+1 = yi + k int x; với i=1,2,3.... for (x=x1; x Giải thuật Bresenham „ 1960 Bresenham thuộc IBM „ điểm gần với đường thẳng dựa trên độ phân giai hưu hạn 2 d1 „ loại bỏ được các phép toán d2 chia và phép toán làm tròn 1 như ta đã thấy trong giải thuật DDA 0 „ Xét đoạn thẳng với 0 < k < 1 0 1 2 (c) SE/FIT/HUT 2002 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải thuật Bresenham d2 = y - yi = k(xi +1) + b - yi A d1 = yi+1 - y = yi + 1 - k(xi + 1) - b yi+1 d1 d2 yi B xi xi+1 (c) SE/FIT/HUT 2002 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải thuật Bresenham (c) SE/FIT/HUT 2002 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt Giải thuật trung điểm-Midpoint „ Jack Bresenham 1965 / Pitteway 1967 „ VanAken áp dụng cho việc sinh các đường thẳng và đường tròn 1985 „ Các công thức đơn giản hơn, tạo được các điểm tương tự như với Bresenham yi+1 A M „ d = F (xi + 1, yi + 1/2) là trung điểm của đoạn AB B „ Việc so sánh, hay kiểm tra M sẽ được thay ( xi , yi ) bằng việc xét giá trị d. „ Nếu d > 0 điểm B được chọn, yi+1 = yi xi xi+1 „ nếu d < 0 điểm A được chọn. yi+1 = yi + 1 „ Trong trường hợp d = 0 chúng ta có thể chọn điểm bất kỳ hoặc A, hoặc B. (c) SE/FIT/HUT 2002 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bresenham’s Algorithm: Midpoint Algorithm „ If di > 0 then chọn điểm A ⇒ trung điểm tiếp theo sẽ có dạng:  3  3  xi + 2, yi +  ⇒ di +1 = a( xi + 2) + b yi +  + c  2  2 = di + a + b (c) SE/FIT/HUT 2002 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Midpoint Line Algorithm dx = x_end-x_start dy = y_end-y_start d = 2*dy-dx initialisation x = x_start y = y_start while x < x_end if d Giải thuật B¾t ®Çu Bresenham's Midpoint x = x1 ; y = y1; dx = x2 - x1; dy = y2 - y1; d = dy - dx/2; Putpixel (x ,y); ...