Các đối tượng đồ họa máy tính
Chia sẻ: ™——† Lvlr. DK †——™ »»» V.I.P ««« | Ngày: | Loại File: PDF | Số trang:37
lượt xem 61
download
• Có hai cách biểu diễn các ảnh này, đó là: – Biểu diễn bằng dãy các pixel. – Biểu diễn bằng tập các đối tượng hình học cơ sở như đoạn thẳng hay vùng tô đa giác, … Sau đó, các đối tượng cơ sở sẽ được chuyển sang dãy các pixel tương ứng để hiển thị. • Quá trình chuyển các đối tượng đồ họa cơ sở về dãy các pixel tương ứng được gọi là quá trình chuyển đổi bằng dòng quét (scanconverting)....
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Các đối tượng đồ họa máy tính
- BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM ĐỒ HỌA MÁY TÍNH GV : Trần Bá Ánh Email: tranbaanh@gmail.com 18/05/2010 1 Tài liệu tham khảo chính 1. Cơ Sở Đồ Họa Máy Tính - Hoàng Kiếm, Dương Anh Đức 2. Francis S. Hill, Computer Graphics WWW 18/05/2010 2 1
- Thời lượng chương trình 30 LT + 60 TH (Tổng: 90 Tiết) Qui định nghỉ học không quá: 20% số tiết (không quá 4 buổi) Điểm kiểm tra miệng: 2 (1 con điểm Lấy trong giờ thực hành, 1 con điểm Chấm vở ghi) Điểm kiểm tra giữa kỳ: >=5 mới được phép dự thi cuối kỳ (Không tổ chức thi lại giữa kỳ) Dự thi cuối kỳ: Nghỉ học không quá 4 buổi + Điểm giữa kỳ >=5 18/05/2010 3 Chương 2 CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ 1. Các đối tượng đồ họa cơ sở 2. Các thuật toán vẽ đường 3. Các thuật toán tô màu 2
- Phần 1 Các đối tượng đồ họa cơ sở ymax y Pwc(x, y) Pwc(x, y) O x O xmax 6 18/05/2010 3
- x O y y O x Quy ước bàn tay phải Quy ước bàn tay trái 18/05/2010 7 • Có hai cách biểu diễn các ảnh này, đó là: – Biểu diễn bằng dãy các pixel. – Biểu diễn bằng tập các đối tượng hình học cơ sở như đoạn thẳng hay vùng tô đa giác, … Sau đó, các đối tượng cơ sở sẽ được chuyển sang dãy các pixel tương ứng để hiển thị. • Quá trình chuyển các đối tượng đồ họa cơ sở về dãy các pixel tương ứng được gọi là quá trình chuyển đổi bằng dòng quét (scan- converting). 8 18/05/2010 4
- 18/05/2010 9 • Điểm: (x, y, c) – Thông tin: Tọa độ (x, y). – Thuộc tính: Màu sắc (c). 10 18/05/2010 5
- • Thông tin: Điểm đầu (x1, y1) và điểm cuối (x2, y2). 18/05/2010 11 12 18/05/2010 6
- 18/05/2010 13 14 18/05/2010 7
- 18/05/2010 15 • Màu sắc • Độ rộng nét vẽ • Kiểu vẽ 16 18/05/2010 8
- 18/05/2010 17 • Các thuộc tính: – Màu sắc – Font chữ –Kích thước – Khoảng cách – Sự canh chỉnh – Cách hiển thị tuần tự 18 18/05/2010 9
- Phần 2 Các thuật toán vẽ đường • Đoạn thẳng • Đường tròn • Các đường cong Conic • Giả sử tọa độ các điểm nguyên sau khi xấp xỉ đối tượng thực lần lượt là (xi , yi ), i = 0,.... Đây là các điểm nguyên sẽ được hiển thị trên màn hình. • Bài toán đặt ra là nếu biết được (xi , yi ) là tọa độ nguyên xác định ở bước thứ i, điểm nguyên tiếp theo (xi+1 , yi+1 ) sẽ được xác định như thế nào? 20 18/05/2010 10
- • Đối tượng hiển thị trên lưới nguyên được liền nét, các điểm mà (xi+1 , yi+1) có thể chọn chỉ là một trong tám điểm được đánh số từ 1 đến 8 trong hình sau (điểm đen chính là (xi , yi )).Hay nói cách khác: (xi+1 , yi+1) = (xi 1, yi 1) 18/05/2010 21 • Xét đoạn thẳng có hệ số góc 0 < m < 1 và Dx > 0. • Điểm cần chọn (xi+1 , yi+1) ở bước thứ (i+1) sẽ là một trong hai trường hợp như hình vẽ sau: 22 18/05/2010 11
- 18/05/2010 23 • Nếu tính trực tiếp giá trị thực y ở mỗi bước từ phương trình y = mx + b thì phải cần một phép toán nhân và một phép toán cộng số thực. Để cải thiện tốc độ, người ta tính giá trị thực của y ở mỗi bước theo cách sau để khử phép tính nhân trên số thực: – Nhận xét rằng: • ysau= mxi+1 + b = m(xi + 1) + b = mxi + b + m • ytrước= mxi + b – Suy ra: ysau= ytrước + m. 24 18/05/2010 12
- 18/05/2010 25 • Cho A(12, 20) và B(22, 27), ta có m = 0.7 i xi yi y 0 12 20 20 1 13 21 20.7 2 14 21 21.4 3 15 22 22.1 4 16 23 22.8 5 17 24 23.5 6 18 24 24.2 7 19 25 24.9 8 20 26 25.6 9 21 26 26.3 10 22 27 27 26 18/05/2010 13
- #define Round(a) int(a+0.5) int Color = GREEN; void LineDDA (int x1, int y1, int x2, int y2) { int x = x1; float y = y1; float m = float(y2-y1)/(x2-x1); putpixel(x, Round(y), Color); for(int i=x1; i
- 18/05/2010 29 • Từ đây ta có thể suy ra cách tính pi+1 từ pi như sau: – Nếu pi < 0 thì pi+1= pi + 2Dy, do ta chọn yi+1= yi. – Ngược lại, nếu pi ≥ 0, thì pi+1= pi + 2Dy – 2Dx, do ta chọn yi+1= yi + 1. 30 18/05/2010 15
- • Giá trị p0 được tính từ điểm vẽ đầu tiên (x0, y0) theo công thức: p0 = 2Dyx0 – 2Dxy0 + c = 2Dyx0 – 2Dxy0 + 2Dy + (2b – 1)Dx • Do (x0, y0) là điểm nguyên thuộc về đoạn thẳng nên ta có y0 = mx0 + b = (Dy/Dx)x0 + b. Thế vào phương trình trên, suy ra: p0= 2Dy – Dx 18/05/2010 31 Lưu đồ thuật toán Bresenham 32 18/05/2010 16
- • Ví dụ: Cho A(12, 20) và B(22, 27), • Ta có: – Dx = 22 – 12 = 10, Dy = 27 – 20 = 7 – Const1 = 2Dy = 14, Const2 = 2(Dy – Dx) = -6 – p0 = 2Dy – Dx = 14 – 10 = 4 18/05/2010 33 i xi yi p 0 12 20 4 1 13 21 -2 2 14 21 12 3 15 22 6 4 16 23 0 5 17 24 -6 6 18 24 8 7 19 25 2 8 20 26 -4 9 21 26 10 10 22 27 4 34 18/05/2010 17
- void LineBres (int x1, int y1, int x2, int y2) { int Dx, Dy, p, Const1, Const2; int x, y; Dx = x2 - x1; Dy = y2 - y1; p = 2*Dy - Dx; // Dy
- • Ta có dạng tổng quát của phương trình đường thẳng: Ax + By + C = 0 với A = y2 – y1, B = – (x2 – x1), C = x2y1 – x1y2 • Đặt F(x, y) = Ax + By + C , ta có nhận xét: • Lúc này việc chọn các điểm S, P ở trên được đưa về việc xét dấu của pi = 2F(MidPoint) = 2F(xi + 1, yi + ½) 18/05/2010 37 38 18/05/2010 19
- • Như vậy: – pi+1 = pi + 2Dy, nếu pi < 0 do ta chọn yi+1 = yi – pi+1 = pi + 2Dy – 2Dx, nếu pi ≥ 0 do ta chọn yi+1 = yi + 1 • Ta tính giá trị p0 ứng với điểm ban đầu (x0, y0), với nhận xét rằng (x0, y0) là điểm thuộc về đoạn thẳng, tức là ta có dạng Ax + By + C = 0 18/05/2010 39 0 ≤ m ≤ 1, Dx > 0 0 ≤ m ≤ 1, Dx < 0 -1 ≤ m ≤ 0 40 18/05/2010 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Đồ họa máy tính - ĐH Hàng hải
54 p | 532 | 109
-
Bài giảng môn Đồ họa máy tính - ĐH Kinh Tế Kỹ Thuật Công Nghiệp
39 p | 306 | 95
-
Câu hỏi về đồ họa máy tính kèm theo lời giải
29 p | 272 | 42
-
Bài giảng đồ họa máy tính - Ngô Quốc Việt
37 p | 220 | 39
-
Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 1
5 p | 194 | 27
-
Đề cương môn học: Đồ họa máy tính
6 p | 272 | 22
-
Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 5
5 p | 143 | 21
-
Đồ họa máy tính : CÁC ĐỐI TƯỢNG ĐỒ HỌA CƠ SỞ part 6
5 p | 128 | 14
-
Bài giảng Đồ họa máy tính: Các đối tượng đồ họa cơ sở - TS. Đào Nam Anh
50 p | 100 | 10
-
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 môn học Đồ họa máy tính - ĐH Hàng Hải VN
100 p | 43 | 6
-
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: Các khái niệm cơ bản - Ngô Quốc Việt
37 p | 26 | 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: Introduction 3D
9 p | 103 | 6
-
Giáo trình Đồ họa máy tính: Phần 2 - Bùi Thế Duy
126 p | 29 | 6
-
Bài giảng Đồ họa máy tính: Chương 2 - ThS. Trần Thị Minh Hoàn
39 p | 41 | 4
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