Bài giảng Bài 2: Các giải thuật sinh các thực thể cơ sở (28 trang) - Lê Tấn Hùng
lượt xem 10
download
Bài giảng "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ở, biểu diễn đoạn thẳng, giải thuật Bresenham, sinh đường tròn, cấu trúc font chữ, giải thuật đường quét đa giác... 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 Bài 2: Các giải thuật sinh các thực thể cơ sở (28 trang) - 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
- 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
- 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
- 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
- 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
- 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
- Giải thuật Bresenham (c) SE/FIT/HUT 2002 8
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
CÓ THỂ BẠN MUỐN DOWNLOAD
-
ngôn ngữ lập trình c và c++ (bài giảng, bài tập, lời giải mẫu)
287 p | 275 | 68
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - ThS. Nguyễn Thị Khiêm Hòa (ĐH Ngân hàng TP.HCM)
53 p | 116 | 12
-
Bài giảng môn học Cấu trúc Dữ liệu và Giải thuật: Phần 2
63 p | 145 | 10
-
Bài giảng Chương 2: Giải thuật đệ quy
2 p | 191 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - Trần Minh Thái
119 p | 93 | 8
-
Bài giảng Chương 2: Mạng Internet và Hệ thống Web toàn cầu
58 p | 91 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - Trần Minh Thái (2016)
129 p | 45 | 7
-
Bài giảng Chương 3: Các kỹ thuật xây dựng chương trình phần mềm (Phần 2) - TS. Vũ Thị Hương Giang
135 p | 84 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.2 - Trần Minh Thái (Trường Đại học Hồng Bàng )
123 p | 60 | 6
-
Bài giảng Tin học cơ sở 2: Chương 1 - Tổng quan về lập trình máy tính
15 p | 19 | 5
-
Bài giảng Tin văn phòng 2: Bài 2 - ThS. Thiều Quang Trung
33 p | 58 | 5
-
Bài giảng Tin học đại cương (Phần 2: Giải quyết bài toán): Chương 2 - Viện Công nghệ Thông tin & Truyền thông
73 p | 38 | 5
-
Bài giảng Tin học đại cương (Phần 2: Giải quyết bài toán): Chương 1 - Viện Công nghệ Thông tin & Truyền thông
32 p | 26 | 4
-
Bài giảng Chương 2: Giải thuật và cấu trúc dữ liệu - TS. Vũ Thị Hương Giang
40 p | 86 | 4
-
Bài giảng Cơ sở dữ liệu giải thuật: Bài 13 - Đồ thị (Phần 2)
35 p | 56 | 3
-
Bài giảng Chương 2: Liên lạc qua mạng máy tính - Lương Ánh Hoàng
30 p | 80 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Đỗ Bích Diệp
19 p | 81 | 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