Bài giảng Đồ họa hiện thực ảo: Bài 2 - Lê Tấn Hùng
lượt xem 2
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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); No d
- Sinh đường tròn Scan Converting Circles Explicit: y = f(x) y = ± R2 − x2 Usually, we draw a quarter circle by incrementing x from 0 to R in unit steps and solving for +y for each step. Parametric: x = R cos θ - by stepping the angle from 0 to 90 y = R sin θ - avoids large gaps but still insufficient. Implicit: f(x) = x2+y2-R2 If f(x,y) = 0 then it is on the circle. f(x,y) > 0 then it is outside the circle. f(x,y) < 0 then it is inside the circle. (c) SE/FIT/HUT 2002 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Midpoint Circle Algorithm Sử dụng phương pháp biểu diễn không tường minh trong giải thuật Thực hiện giải thuật trên 1/8 đường tròn và lấy đối xứng xho các góc còn lại. Với di là giá trị của đường tròn tại một điểm bất kỳ ta có (c) SE/FIT/HUT 2002 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Midpoint Circle Algorithm As with the line, we determine the value of the decision variable by substituting the mid-point of the next pixel into the implicit form of the circle: 2 1 di = ( xi +1) + yi − − r 2 2 2 If di < 0 we choose pixel A otherwise we choose pixel B Note: we currently assume the circle is centered at the origin (c) SE/FIT/HUT 2002 15 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Midpoint Circle Algorithm d = 1-r x = 0 initialisation y = r stop at diagonal ⇒ end of octant while y < x if d < 0 then d = d+2*x+3 x = x+1 choose A else d = d+2*(x-y)+5 x = x+1 choose B y = y-1 endif SetPixel(cx+x,cy+y) endwhile Translate to the circle center (c) SE/FIT/HUT 2002 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Scan Converting Ellipses F ( x, y ) = b 2 x 2 + a 2 y 2 − a 2 b 2 = 0 2a is the length of the major axis along the x axis. 2b is the length of the minor axis along the y axis. The midpoint can also be applied to ellipses. For simplicity, we draw only the arc of the ellipse that lies in the first quadrant, the other three quadrants can be drawn by symmetry (c) SE/FIT/HUT 2002 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Scan Converting Ellipses: Algorithm A M tiep tuyen = -1 B gradient B C M Firstly we divide the quadrant into two regions i Boundary between the two regions is the point at which the curve has a slope of -1 the point at which the gradient vector has the i and j components of equal magnitude grad F(x, y) = ∂F / ∂x i +∂F / ∂y j = 2b2 x i + 2a2 y j (c) SE/FIT/HUT 2002 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Ellipses: Algorithm (cont.) At the next midpoint, if a2(yp-0.5)2 In region 1, choices are E and SE Initial condition: dinit = b2+a2(-b+0.25) For a move to E, dnew = dold+DeltaE with DeltaE = b2(2xp+3) For a move to SE, dnew = dold+DeltaSE with DeltaSE = b2(2xp+3)+a2(-2yp+2) In region 2, choices are S and SE Initial condition: dinit = b2(xp+0.5)2+a2((y-1)2-b2) For a move to S, dnew = dold+Deltas with Deltas = a2(-2yp+3) For a move to SE, dnew = dold+DeltaSE with DeltaSE = b2(2xp+2)+a2(-2yp+3) Stop in region 2 when the y value is zero. (c) SE/FIT/HUT 2002 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Ký tự Bitmap Trên cơ sỏ định nghĩa mỗi ký tự với một font chư cho trước là một bitmap chữ nhật nhỏ Font/typeface: set of character shapes fontcache các ký tự theo chuỗi liên tiếp nhau trong bộ nhớ Dạng cơ bản ab (thường N, nghiêng I, đậm B, nghiêng đậm B+I) Thuộc tính Also colour, size, spacing and orientation (c) SE/FIT/HUT 2002 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Đồ họa máy tính: Hiển thị đối tượng hai chiều - TS. Đào Nam Anh
45 p | 125 | 10
-
Bài giảng Đồ họa máy tính: Lập trình 3D với OpenGL - Ngô Quốc Việt
55 p | 66 | 8
-
Bài giảng Đồ họa máy tính: Xác định mặt hiện - Ma Thị Châu (2017)
57 p | 36 | 7
-
Bài giảng Đồ họa máy tính: Hiển thị đối tượng hai chiều - Ngô Quốc Việt
32 p | 29 | 6
-
Bài giảng Đồ họa máy tính: Chương 3 - ThS. Trần Thị Minh Hoàn
29 p | 54 | 6
-
Bài giảng Đồ họa máy tính: Mô hình hóa đối tượng - Ma Thị Châu (2017)
34 p | 36 | 6
-
Bài giảng Đồ họa máy tính: Chương 1 - ThS. Trần Thị Minh Hoàn
44 p | 101 | 5
-
Bài giảng Đồ họa hiện thực ảo: Bài 3 - Lê Tấn Hùng
39 p | 42 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 12 - Lê Tấn Hùng
8 p | 38 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 10 - Lê Tấn Hùng
5 p | 44 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 1 - Lê Tấn Hùng
11 p | 56 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 7 - Lê Tấn Hùng
11 p | 40 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 6 - Lê Tấn Hùng
8 p | 38 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 5 - Lê Tấn Hùng
8 p | 36 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 4B - Lê Tấn Hùng
27 p | 40 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 4A - Lê Tấn Hùng
41 p | 58 | 3
-
Bài giảng Đồ họa hiện thực ảo: Bài 8 - Lê Tấn Hùng
11 p | 50 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn