Danh mục tài liệu

Báo cáo thực hành Đồ họa máy tính

Số trang: 19      Loại file: doc      Dung lượng: 428.00 KB      Lượt xem: 27      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Báo cáo thực hành Đồ họa máy tính bao gồm các bài thực hành với các yêu cầu hướng dẫn cụ thể cho từng bài thực hành. Tham khảo báo cáo thực hành để nắm nội dung bài báo cáo một cách cụ thể.
Nội dung trích xuất từ tài liệu:
Báo cáo thực hành Đồ họa máy tính TRƯỜNG ĐẠI HỌC BK ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN ----------BÁO CÁO THỰC HÀNH ĐỒ HỌA MÁY TÍNH Giáo viên : Nguyễn Văn Nguyên Sinh viên : Trịnh Hoàng Long Lớp : 11T2 Nhóm : 11B MSSV : 102110212 Đà Nẵng, 10/04/2014I. Buổi thực hành 1: 1. Cài đặt và sử dụng thư viện graphics.h: 1.1. Download 2 file sau đây về máy: + File graphics.h để ở thư mục C:Dev-Cppinclude + File libbgi.a để ở thư mục C:Dev-Cpplib 1.2. Khởi động Dev C++, vào File-->New-->Project...-->Empty Project (Nhớ chọn C++ Project) -->OK Đặt 1 cái tên cho phù hợp và lưu vào đâu đó. Nhấn chuột phải lên cái project vừa tạo. -->New File hoặc chọn mục New File trong menu Project Một file mới được tạo ra trong Project. Trước khi viết code lưu lại bằng cách Nhấn Ctrl + S hoặc File -->Save. Nhấn Alt + P hoặc mục Project Options trong menu Project--->Chọn thẻ Parameters --> Gõ chính xác những dòng sau vào khung Linker: -lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 2. Dùng hàm line() để vẽ 1 ngôi nhà đơn giản: Code: #include #include #include using namespace std; void init(){ int gd = DETECT,gm; initgraph(&gd,&gm,); } void ve(){ line(200,100,400,100); line(100,200,500,200); line(200,100,100,200); line(400,100,500,200); line(100,200,100,400); line(100,400,500,400); line(500,400,500,200); line(300,400,300,280); line(250,280,350,280); line(250,280,250,400); line(350,280,350,400); line(150,280,200,280); line(200,280,200,330); line(200,330,150,330); line(150,330,150,280); line(400,280,450,280); line(450,280,450,330); line(450,330,400,330); line(400,330,400,280); }int main(){ init(); ve(); system(PAUSE); return EXIT_SUCCESS;}Demo:II. Buổi thực hành 2: 1.Vẽ các đường tròn đồng tâm và tô màu chúng: Sử dụng thuật toánMichener. Code: #include #include #include #include using namespace std; void Mcircle(int R,int x0,int y0){ int x,y,p,c; p = 1 - R; c=getcolor(); x= 0;y=R; while(x Mcircle(R,250,200); totron(250,200,R,c); c++;} system(PAUSE); return EXIT_SUCCESS; } Demo:III. Buổi thực hành 3: 1.Thuật toán xén hình: Code: #include #include #include //Kieu cua so va bien w toan cuc struct wind { float l,t,r,b; }w; // Kieu diem struct ptype{ float x,y;};// Kieu mastruct code{ int l,t,r,b;};// Ham ma hoa diem p sang ma cstruct code Encode(struct ptype p){ struct code c; c.l=p.x < w.l; c.t=p.y < w.t; c.r=p.x > w.r; c.b=p.y > w.b; return c;};//Ham kiem tra p co thuoc w hay koint InW(struct ptype p){ struct code c; c= Encode(p); return !(c.l||c.t||c.r||c.b);}// Thuat toanint clip(ptype &p1, ptype &p2){ ptype tmpp; code c1,c2,tmpc; int in1,in2; float m; while(1) { c1= Encode(p1); c2= Encode(p2); in1=InW(p1); in2=InW(p2); if(in1 && in2){return 1;} if((c1.l && c2.l)||(c1.t && c2.t)||(c1.r && c2.r)||(c1.b && c2.b)) return 0; if(in1) { tmpp =p1; p1=p2; p2=tmpp; tmpc=c1; c1=c2; c2=tmpc; } if(p1.x == p2.x)//doan thang dung { if(c1.t) p1.y = w.t; else p1.y = w.b; } else { m=(p2.y - p1.y)/(p2.x - p1.x); if(c1.l) { p1.y += m*(w.l - p1.x); p1.x =w.l; } else if(c1.t) { p1.x +=(w.t - p1.y)/m; p1.y = w.t; } else if(c1.r) { p1.y -=m*(w.r -p1.x); p1.x = w.r; } else { p1.x -=(p1.y-w.b)/m; p1.y = w.b; } } }}main(){ int gd=0,gm; struct ptype p1,p2; initgraph(&gd,&gm,); w.l=100; w.t=150; w.r=300; w.b=350; rectangle(int (w.l), int (w.t), int (w.r), int (w.b)); p1.x=90; p1.y=100; p2.x=300; p2.y=400; line(int (p1.x), int (p1.y), int (p2.x), int (p2.y)); clip(p1,p2); setcolor(RED); line(int (p1.x), int (p1.y), int (p2.x), int (p2.y)); getch(); closegraph(); } Demo:2.Thư viện Affine.h: Thầy cho về tự tìm hiểu ở phái dưới-Phần “Bài tập trên trang chủ”Bài tập trên trang chủ:I. Khái quát hệ thống đồ họa: 1. Viết chương trình vẽ đồ thị hàm số y=sin(x) với -π≤ x≤π a. Vẽ bằng lệnh putpixel(x,y,c): ...