Untitled TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI VẼ TRANH PHONG CẢNH Sinh viên thực hiện NGUYỄN TUẤN NHẬT NGUYỄN ĐÌNH SANG Giảng viên hướng[.]
lOMoARcPSD|17343589 TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: VẼ TRANH PHONG CẢNH Sinh viên thực : NGUYỄN TUẤN NHẬT NGUYỄN ĐÌNH SANG Giảng viên hướng dẫn : NGÔ NGỌC THÀNH Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : D14CNPM6 Khóa : 2019-2023 PHIẾU CHẤM ĐIỂM Sinh viên thực hiện: lOMoARcPSD|17343589 STT Họ tên Nguyễn Tuấn Nhật Mã SV: 19810310242 Nguyễn Đình Sang Mã SV Chữ ký Nhiệm vụ lOMoARcPSD|17343589 LỜI MỞ ĐẦU Trong thời đại ngày nay, với bùng nổ cách mạng công nghiệp 4.0 tập trung vào phát triển công nghệ không kể tới đồ họa máy tính Đồ họa máy tính phương pháp công nghệ dùng việc chuyển đổi qua lại liệu hình ảnh máy tính Đồ họa máy tính lĩnh vực khoa học máy tính nghiên cứu tốn học, thuật toán kĩ thuật phép tạo, hiển thị điều khiển hình ảnh hình máy tính Đồ họa máy tính có liên quan nhiều đến số lĩnh vực đại số, hình học giải tích, hình học họa hình, quang học, kĩ thuật máy tính, đặc biệt chế tạo phần cứng (các loại hình, thiết bị xuất, nhập, vỉ mạch đồ họa ) Nhận thấy đồ họa máy tính cơng cụ khơng thể thiếu nhiều lĩnh vực Vậy nên, qua trình học tập nghiên cứu môn học “ Đồ họa máy tính ” với dạy tận tình thầy Nguyễn Ngọc Thành nhóm chúng em chọn đề tài “Vẽ tranh phong cảnh sử dụng thư viện Graphics.h” làm đề tài nghiên cứu Em xin gửi lời cảm ơn chân thành tới thầy giáo “Nguyễn Ngọc Thành ” thầy cô giáo môn khoa CNTT Trường Đại Học Điện Lực tận tình bảo hướng dẫn giúp đỡ chúng em để hoàn thành tốt báo cáo mình.Trong trình thực có nhiều thiếu xót, khuyết điểm mong thầy bạn cho ý kiến đóng góp để nhóm e hồn thiện đề tài lOMoARcPSD|17343589 CHƯƠNG 1: GIỚI THIỆU VỀ ĐỒ HỌA MÁY TÍNH 1.1.Lịch sử phát triển - Graphics năm 1950-1960: + Năm 1959 Thiết bị đồ hoạ hình xuất Đức + Năm 1960 - SAGE (Semi-Automatic Ground Environment System) xuất bút sáng thao tác với hình + Năm 1960 William Fetter nhà khoa học người Mỹ, ơng nghiên cứu xây dựng mơ hình buồng lái máy bay cho hãng Boeing Mỹ Ông dựa hình ảnh chiều mơ hình ngườiphi công buồng lái máy bay để xây dựng nên mơ hình tối ưu cho buồng lái máy bay Phương pháp cho phép nhà thiết kế quan sát cách trực quan vị trí người lái khoang Ông đặt tên cho phương pháp đồ hoạ máy tính (Computer Graphics) + Màn hình thiết bị thơng dụng hệ đồ hoạ, thao tác hầu hết hình dựa thiết kế ống tia âm cực CRT (Cathode ray tube) Khi giá để làm tươi hình cao, máy tính xử lý chậm, đắt không chắn (không đáng tin cậy) - Graphics: 1960-1970 + Năm 1963 Ivan Sutherland (hội nghị Fall Joint Computer - lần có khả tạo mới, hiển thị thay đổi thực thời gian thực CRT) + Hệ thống dùng để thiết kế mạch điện: CRT, LightPen (bút sáng), computer (chứa chương trình xử lý thơng tin) Người sử dụng vẽ mạch điện trực tiếp lên hình thơng qua bút sáng - Graphics:1970-1980 + Raster Graphics (đồ hoạ điểm) Bắt đầu chuẩn đồ hoạ ví dụ như: GKS(Graphics Kernel System): European effort (kết châu âu), Becomes ISO 2D standard - Graphics: 1980-1990 + Mục đích đặc biệt phần cứng, thiết bị hình học đồ hoạ Silicon Xuất chuẩn công nghiệp: PHIGS (Programmers Hierarchical Interactive Graphics Standard) xác định phương pháp chuẩn cho mơ hình thời gian thực lập trình hướng đối tượng lOMoARcPSD|17343589 + Giao diện người máy Human-Computer Interface (HCI) - Computer Graphics: 1990-2000 + OpenGL API (Application Program Interface – giao diện chương trình ứng dụng) + Completely computer-sinh ngành điện ảnh phim truyện (Toy Story) thành công Các tiềm tàng phần cứng mới: Texture mapping (dán ảnh cảnh thật lên bề mặt đối tượng),blending (trộn màu) - Computer Graphics: 2000- + Ảnh thực, cạc đồ hoạ cho máy tính (Graphics cards for PCs), game boxes and game players + Công nghiệp phim ảnh nhờ vào đồ hoạ máy tính (Computer graphics becoming routine in movie industry): Maya (thế giới vật chất tri giác được) 1.2 Khái niệm đồ họa máy tính kỹ thuật đồ họa 1.2.1 Đồ họa máy tính ? - Đồ họa máy tính ngành khoa học Tin học chuyên nghiên cứu phương pháp kỹ thuật để mơ tả thao tác đối tượng giới thực máy tính - Về chất: q trình xây dựng phát triển công cụ hai lĩnh vực phần cứng phần mềm hổ trợ cho lập trình viên thiết kế chương trình có khả đồ họa cao - Với việc mô tả liệu thơng qua hình ảnh màu sắc đa dạng nó, chương trình đồ họa thường thu hút người sử dụng tính thân thiện, dể dùng, kích thích khả sáng tạo nâng cao suất làm việc 1.2.2 Các kỹ thuật đồ họa 1.2.2.1 Kỹ thuật đồ họa điểm - Các mô hình, hình ảnh đối tượng hiển thị thông qua pixel (từng mẫu rời rạc) - Đặc điểm: Có thể thay đổi thuộc tính + Xố pixel mơ hình hình ảnh đối tượng lOMoARcPSD|17343589 + Các mơ hình hình ảnh hiển thị lưới điểm (grid) pixel rời rạc, + Từng pixel có vị trí xác định, hiển thị với giá trị rời rạc (số nguyên) thông số hiển thị (màu sắc độ sáng) + Tập hợp tất pixel grid cho mơ hình, hình ảnh đối tượng mà muốn hiển thị - Phương pháp để tạo pixel: + Phương pháp dùng phần mềm để vẽ trực tiếp pixel + Dựa lý thuyết mô (lý thuyết Fractal, v.v) để xây dựng nên hình ảnh mơ vật + Phương pháp rời rạc hố (số hố) hình ảnh thực đối tượng + Có thể sửa đổi (image editing) xử lý (image processing) mảng pixel thu theo phương pháp khác để thu hình ảnh đặc trưng đối tượng 1.2.2.2 Kỹ thuật đồ họa Vector - Xây dựng mơ hình hình học cho hình ảnh đối tượng, xác định thuộc tính mơ hình hình học, sau dựa mơ hình để thực q trình tơ trát để hiển thị điểm mơ hình, hình ảnh đối tượng - Kỹ thuật lưu trữ mơ hình tốn học thành phần mơ hình hình học với thuộc tính tương ứng mà khơng cần lưu lại tồn tất pixel hình ảnh đối tượng - So sánh Đồ họa điểm Đồ họa Vector: Đồ họa điểm Đồ họa Vector - Hình ảnh mơ hình vật thể biểu diễn tập hợp điểm lưới (grid) - Thay đổi thuộc tính pixel => thay đổi phần vùng hình ảnh - Copy pixel từ hình ảnh - Khơng thay đổi thuộc tính điểm trực tiếp - Xử lý với thành phần hình học sở thực q trình tơ trát hiển thị lại - Quan sát hình ảnh mơ hình hình ảnh vật nhiều góc độ lOMoARcPSD|17343589 sang hình ảnh khác khác cách thay đổi điểm nhìn góc nhìn 1.3 Phân loại đồ họa máy tính 1.3.1 Phân loại theo lĩnh vực đồ họa máy tính * Kỹ thuật đồ họa: - Kiến tạo đồ họa gồm: + Các hệ CAD/CAM (Computer Aided Design/Computer Aided Manufacture System): kỹthuật đồ hoạ tập hợp công cụ, kỹ thuật trợ giúp cho thiết kế chi tiết hệ thống khác nhau: hệ thống cơ, hệ thống điện, hệ thống điện tử… + Đồ hoạ minh hoạ (Presentation Graphics): gồm công cụ giúp hiển thị số liệu thí nghiệm cách trực quan, dựa mẫu đồ thị thuật tốn có sẵn + Đồ hoạ hoạt hình nghệ thuật: bao gồm công cụ giúp cho hoạ sĩ, nhà thiết kế phim hoạt hình chuyên nghiệp làm kỹ xảo hoạt hình, vẽ tranh Ví dụ: phần mềm 3D Studio, 3D Animation, 3D Studio Max - Xử lý đồ họa gồm : + Kỹ thuật xử lý ảnh (Computer Imaging): sau trình xử lý ảnh cho ta ảnh số đối tượng Trong trình xử lý ảnh sử dụng nhiều kỹ thuật phức tạp: kỹ thuật khôi phục ảnh, kỹ thuật làm ảnh, kỹ thuật xác định biên ảnh + Kỹ thuật nhận dạng (Pattern Recognition): từ ảnh mẫu có sẵn ta phân loại theo cấu trúc, theo tiêu trí xác định từ trước thuật toán chọn lọc để phân tích hay tổng hợp ảnh cho thành tập hợp ảnh gốc, ảnh gốc lưu thư viện vào thư viện ta xây dựng thuật giải phân tích tổ hợp ảnh + Kỹ thuật tổng hợp ảnh (Image Synthesis): lĩnh vực xây dựng mơ hình hình ảnh vật thể dựa đối tượng mối quan hệ chúng 1.3.2.Phân loại theo hệ tọa độ - Kỹ thuật đồ họa: + Kỹ thuật đồ họa chiều: kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ hai chiều (hệ toạ độ phẳng), sử dụng nhiều kỹ thuật xử lý đồ, đồ thị lOMoARcPSD|17343589 + Kỹ thuật đồ họa chiều: : kỹ thuật đồ hoạ máy tính sử dụng hệ toạ độ ba chiều, địi hỏi nhiều tính toán phức tạp nhiều so với kỹ thuật đồ hoạ hai chiều CHƯƠNG 2: GIẢI QUYẾT BÀI TOÁN 2.1 Phát biểu tốn - Sau tìm hiểu thư viện Graphics.h nhóm chúng em định thực vẽ tranh 2D với đề tài phong cảnh từ kiến thức học 2.2 Các bước cài đặt - Bước 1: Khai báo thư viện Graphics.h - Bước 2: Khởi tạo cửa sổ có kích thước 720x500 - Bước 3: Khai báo biến cần sử dụng - Bước 4: Sử dụng vòng lặp for để thực chuyển động tranh - Bước 5: Gọi hàm closegraph(); để đóng cửa sổ đồ họa 2.3 Cài đặt thuật toán #include #include #include #include int main() { initwindow(720,500); //a,b,c,d are used for Translation int a=200, b=-190; int c=200, d=-190; //x,y,m,n are used for Scaling float x=0.5, y=0.5; lOMoARcPSD|17343589 float m=0.5, n=0.5; for(int i=0;i