Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 361 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
361
Dung lượng
5,03 MB
Nội dung
Trƣờng Đại Học Bách Khoa TP Hồ Chí Minh Khoa Khoa học & Kỹ thuật Máy tính ĐỒ HỌA MÁY TÍNH CHƢƠNG 1: GIỚI THIỆU ĐỒ HỌA MÁY TÍNH NỘI DUNG TRÌNH BÀY Giới thiệu tổng quan đồ họa máy tính Đối tƣợng đồ họa máy tính Thiết bị hiển thị đồ họa Faculty of Computer Science and Engineering - HCMUT Slide CHƢƠNG TRÌNH Nội dung Chƣơng 1-Giới thiệu đồ họa máy tính Chƣơng 2-Bƣớc đầu tạo dựng hình ảnh Chƣơng 3-Xây dựng cơng cụ vẽ hình ảnh Chƣơng 4-Vector đồ họa máy tính Chƣơng 5-Biến đổi hình Chƣơng 6-Mơ hình hóa đối tƣợng D lƣới đa giác Chƣơng 7-Phép nhìn khơng gian ba chiều Chƣơng 8-Tơ màu vật thể ba chiều Chƣơng 9-Kỹ thuật lặp đệ quy, ứng dụng tạo hoa văn Chƣơng 10-Đồ họa raster Faculty of Computer Science and Engineering - HCMUT Slide TÀI LIỆU MÔN HỌC [1] Francis S Hill, Jr, Computer Graphics, Macmillan Publishing Company, 1990 [2] Foley, van Dam, Feiner, Hughes, Computer Graphics principles and practice, Addison-Wesley Publishing Company, 1996 [3] Nguyễn Hữu Lộc, Đồ họa máy tính mơ hình hóa hình học, Nhà xuất thành phố Hồ Chí Minh, 2000 [4] Hồng Kiếm, Dƣơng Anh Đức, Lê Đình Huy, Vũ Hải Quân, Cơ sở đồ họa máy tính, Nhà xuất giáo dục, 2000 [5] Nguyễn Quốc Cƣờng, Hoàng Đức Hải, Đồ họa vi tính, Nhà xuất giáo dục, 1998 [6] Tống Nghĩa, Hồng Đức Hải, Đồ họa máy tính ngôn ngữ C, Nhà xuất giáo dục, 1999 [7] Nguyễn Tiến, Ngơ Quốc Việt, Giáo trình đồ họa máy tính, Nhà xuất thống kê, 2001 [8] Lê Tấn Hùng, Huỳnh Quyết Thắng, Kỹ thuật đồ họa, Nhà xuất Khoa học Kỹ thuật, 2004 http://www.cse.hcmut.edu.vn/~tgson/Computer Graphics Faculty of Computer Science and Engineering - HCMUT Slide ĐỊNH NGHĨA ĐỒ HỌA MÁY TÍNH Dùng máy tính để tạo hình ảnh Đồ họa máy tính xử lý ảnh – Đồ họa máy tính: tạo hình ảnh dựa đặc tả mơ hình – Xử lý ảnh: nâng cao chất lƣợng chỉnh sửa hình ảnh Faculty of Computer Science and Engineering - HCMUT Slide ỨNG DỤNG CỦA ĐỒ HỌA MÁY TÍNH Ứng dụng giải trí, xuất nghệ thuật – Sản xuất phim hoạt hình, tạo hiệu ứng cho phim nhựa – Trị chơi máy tính – Duyệt Web – Chế điện tử Xử lý ảnh Ứng dụng tự động hóa điều khiển Mơ Máy tính hỗ trợ thiết kế – Hỗ trợ thiết kế kiến trúc – Hỗ trợ thiết kế mạch điện tử Hình ảnh hóa số liệu khoa học Faculty of Computer Science and Engineering - HCMUT Slide ĐỐI TƢỢNG CƠ BẢN TRONG ĐHMT Đƣờng gấp khúc (polyline) Văn (text) Vùng tô (filled region) Ảnh ma trận điểm hay ảnh raster (raster image) Faculty of Computer Science and Engineering - HCMUT Slide ĐƢỜNG GẤP KHÖC Đƣờng gấp khúc tập đoạn thẳng đƣợc nối với Đƣờng gấp khúc đƣợc dùng mô đƣờng cong Các hàm liên quan – Vẽ điểm: drawDot(x1, y1) – Vẽ đoạn thẳng: drawLine(x1, y1, x2, y2) – Vẽ đƣờng gấp khúc: drawPolyline(poly) Faculty of Computer Science and Engineering - HCMUT Slide ĐƢỜNG GẤP KHÖC Khi đỉnh đầu đỉnh cuối đƣợc nối đoạn thẳng đƣờng gấp khúc trở thành đa giác Faculty of Computer Science and Engineering - HCMUT Slide ĐƢỜNG GẤP KHƯC Thuộc tính – Màu sắc – Độ dày – Kiểu đƣờng (liền nét, đứt nét) – Cách nối hai cạnh dày Thiết lập thuộc tính: setDash (dash7) setLineThickness(thickness) Faculty of Computer Science and Engineering - HCMUT Slide 10 Định nghóa vùng Định nghóa vùng pixel Định nghóa vùng đa giác Faculty of Computer Science and Engineering - HCMUT Slide 347 Định nghĩa vùng pixel Dựa màu pixel Hai cách định nghĩa tính kết nối: – 4-connected: điểm ảnh xem kết nối chúng nằm kề theo chiều ngang hay chiều dọc – 8-connected: điểm ảnh xem kết nối chúng nằm kề theo chiều ngang, chiều dọc hay đường chéo Hai cách xác định vùng bởi: – Tất điểm ảnh vùng có màu, có lỗ trống (hole) bên – Vùng xác định điểm ảnh có màu đường bao quanh, điểm ảnh bên màu bao, có lỗ trống bên Faculty of Computer Science and Engineering - HCMUT Slide 348 Ví dụ Faculty of Computer Science and Engineering - HCMUT Slide 349 Giải thuật tô màu tràn đệ qui Dùng phần mềm đồ họa Vùng xác định màu 4-connected Bắt đầu điểm hạt giống (seed) nằm bên vùng cần tô procedure FloodFill(x : col; y : row; int_color, new_color : color); {bắt đầu từ điểm (x,y), đổi từ màu int_color sang new_color} begin if GetPixel(x, y) = int_color then begin SetPixel(x, y, new_color); FloodFill(x – 1, y, int_color, new_color); FloodFill(x + 1, y, int_color, new_color); FloodFill(x, y + 1, int_color, new_color); FloodFill(x, y – 1, int_color, new_color); end end; Faculty of Computer Science and Engineering - HCMUT Slide 350 Giải thuật tô màu tràn đệ qui (tt.) Vùng xác định màu 8-connected Bắt đầu điểm hạt giống (seed) nằm bên vùng cần tô Thêm: FloodFill(x – 1, y – 1, int_color, new_color); FloodFill(x – 1, y + 1, int_color, new_color); FloodFill(x + 1, y + 1, int_color, new_color); FloodFill(x + 1, y – 1, int_color, new_color); Nhược điểm: - bị lặp lại nhiều lần - dễ bị tràn stack Faculty of Computer Science and Engineering - HCMUT Slide 351 Giải thuật tô màu tràn đệ qui (tt.) Vùng xác định màu bao 4-connected Bắt đầu điểm hạt giống (seed) nằm bên vùng cần tô procedure FloodFill(x : col; y : row; int_color, new_color : color); {bắt đầu từ điểm (x,y), đổi từ màu int_color sang new_color} begin if (GetPixel(x, y) >< bound_color) and (GetPixel(x, y) >< new_color) then begin SetPixel(x, y, new_color); FloodFill(x – 1, y, int_color, new_color); FloodFill(x + 1, y, int_color, new_color); FloodFill(x, y + 1, int_color, new_color); FloodFill(x, y – 1, int_color, new_color); end end; Faculty of Computer Science and Engineering - HCMUT Slide 352 Run of Pixels Giả thiết pixel 4-connected Giải thuật Push address of seed pixel on the stack; while stack not empty Pop the stack to provide the next seed; Fill in the run defined by the seed; Examine the row above for runs reachable from this run; Push the address of the rightmost pixels of each such run; Do the same for the row below the current run; end; Faculty of Computer Science and Engineering - HCMUT Slide 353 Ví dụ Faculty of Computer Science and Engineering - HCMUT Slide 354 Ví dụ D C Faculty of Computer Science and Engineering - HCMUT Slide 355 Ví duï J I G F C Faculty of Computer Science and Engineering - HCMUT Slide 356 Tô màu vùng đa giác Xét dòng ngang đệm hình: – Tìm giao điểm dịng với tất cạnh đa giác – Sắp xếp giao điểm theo chiều tăng dần giá trị x – Tô điểm ảnh nằm cặp giao điểm Faculty of Computer Science and Engineering - HCMUT Slide 357 Tô màu vùng đa giác Cạnh nằm ngang không cần phải xử lý Tính chẵn lẻ khơng cịn điểm mút cực trị địa phương – Cách giải quyết: dịch điểm đầu mút cạnh xuống pixel Faculty of Computer Science and Engineering - HCMUT Slide 358 Tô màu vùng đa giác Active Edge List (AEL) lợi dụng tính lân cận cạnh – cạnh cắt scanline y cắt scanline y+1 – giá trị x giao điểm dự đốn trước type edge_ptr = ^edge_info edge_info = record y_upper : row; x_int : real; recip_slope : real; next : egde_ptr; end; Faculty of Computer Science and Engineering - HCMUT Slide 359 Tô màu vùng đa giác update AEL cho scanline y+1 – xóa tất cạnh có y_upper < new_y – thay đổi x_value cách cộng thêm recip_slope – thêm vào cạnh có y_lower = new_y – thứ tự giao điểm bị xáo trộn, nên phải xếp lại Faculty of Computer Science and Engineering - HCMUT Slide 360 Tô màu vùng đa giác Xây dựng bảng cạnh: edge_table: array [row] of edge_ptr Faculty of Computer Science and Engineering - HCMUT Slide 361 ... Engineering - HCMUT Slide 24 Trƣờng Đại Học Bách Khoa TP Hồ Chí Minh Khoa Khoa học & Kỹ thuật Máy tính CHƢƠNG 2: BƢỚC ĐẦU TẠO HÌNH ẢNH NỘI DUNG TRÌNH BÀY Xây dựng chƣơng trình đồ họa Thành phần chƣơng... [3] Nguyễn Hữu Lộc, Đồ họa máy tính mơ hình hóa hình học, Nhà xuất thành phố Hồ Chí Minh, 2000 [4] Hồng Kiếm, Dƣơng Anh Đức, Lê Đình Huy, Vũ Hải Quân, Cơ sở đồ họa máy tính, Nhà xuất giáo dục,... quan đồ họa máy tính Đối tƣợng đồ họa máy tính Thiết bị hiển thị đồ họa Faculty of Computer Science and Engineering - HCMUT Slide CHƢƠNG TRÌNH Nội dung Chƣơng 1-Giới thiệu đồ họa máy tính