ĐỀ TÀI: VẼ HÌNH TRÒN NỘI TIẾP HÌNH VUÔNG VÀ HÌNH TAM GIÁC NỘI TIẾP HÌNH TRÒN, TÔ MÀU, TỊNH TIẾN VÀ LÀM BIẾN DẠNG HÌNH ĐÓ

20 4.3K 2
ĐỀ TÀI: VẼ HÌNH TRÒN NỘI TIẾP HÌNH VUÔNG VÀ HÌNH TAM GIÁC NỘI TIẾP HÌNH TRÒN, TÔ MÀU, TỊNH TIẾN VÀ LÀM BIẾN DẠNG HÌNH ĐÓ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN - - BÁO CÁO BÀI TẬP LỚN MƠN ĐỒ HỌA MÁY TÍNH ĐỀ TÀI: VẼ HÌNH TRỊN NỘI TIẾP HÌNH VNG VÀ HÌNH TAM GIÁC NỘI TIẾP HÌNH TRỊN, TƠ MÀU, TỊNH TIẾN VÀ LÀM BIẾN DẠNG HÌNH ĐĨ GVHD : ThS Nguyễn Thị Cẩm Ngoan Nhóm thực hiện: NHĨM 22 Thành viên: Phạm Tiến Dũng Phạm Văn Phong Nguyễn Ngọc Tú Hà Nội, tháng năm 2013 Đồ họa máy tính LỜI NĨI ĐẦU Có câu “một hình ảnh nghìn lời nói ” Điều thật khơng thể phủ nhận Và rõ ràng hiển thị thông tin với ký hiệu, chữ cái, chữ số khơng thơi khơng thể hấp dẫn dễ hiểu có thêm biểu diễn đồ họa Kỹ thuật đồ hoạ công cụ thiếu ngành khoa học kỹ thuật, giáo dục, nghệ thuật, giải trí, quảng cáo (để diễn đạt máy móc thiết bị, kiến trúc, cấu trúc thể, thông tin thiên văn địa lý, hình ảnh minh hoạ ) Chính vậy, đồ họa vấn đề quan tâm ngành công nghệ thông tin Cùng với phát triển tin học, kỹ thuật đồ họa máy vi tính, ngày trở nên tinh xảo Giao diện phần mềm ngày trở nên thân thiện, đẹp mắt nhờ thể đồ họa Sự hổ trợ tin học cho ngành khác trở nên đắc lực nhờ khả đồ họa vi tính Và giới thực biểu diễn cách sinh động, linh hoạt, đầy màu sắc không gian ba chiều Trong thành công kỹ thuật đồ họa ngày khơng thể khơng nói đến phát triển vượt bậc tốc độ phần cứng lẫn hệ điều hành Nhưng thân kỹ thuật đồ họa có bước tiến nhảy vọt từ phép tính tốn học phức tạp đến thư viện đồ họa tạo sẳn Các thư viện cho phép giảm nhẹ thời gian cơng sức người lập trình Mục tiêu tập lớn tìm hiểu thuật tốn,cách vẽ vẽ Hypebol ngôn ngữ C++ Tuy nhiên, đề tài không tránh khỏi hạn chế thiếu sót, nên mong bảo, góp ý Cơ bạn Nhóm em xin chân thành cảm ơn Đồ họa máy tính GIỚI THIỆU NỘI DUNG, YÊU CẦU CỦA ĐỀ TÀI NỘI DUNG Viết chương trình vẽ hình trịn nội tiếp hình vng, hình tam giác nội tiếp hình trịn - Tơ màu với hình màu sắc - Tịnh tiến hình đến vị trí khác - Phóng to thu nhỏ hình - Biến dạng hình U CẦU  Mỗi thành viên phải hiểu làm chủ toàn đề tài nhóm  Ngơn ngữ lập trình: C++ (Sử dụng trình biên dịch Dev C 4.9.9.2) THUẬT TỐN SỬ DỤNG CƠNG THỨC CHUYỂN ĐỔI QUAN SÁT Void cuaso(float x1,float y1,float x2,float y2 { xw1=x1;yw1= y1; xw2= x2,yw2= y2; } Void khungnhin(float x1,float y1,float x2,float y2) { Đồ họa máy tính xv1= x1; yv1=y1; xv2= x2; yv2=y2; tlx=(xv2-xv1)/(xw2-xw1);tly=(yv2-yv1)/(yw2-yw1); } BỘ CÔNG CỤ 2D * void chuyenden(float x, float y): Con trỏ chuyển tương ứng đến điểm (xm, ym) hình * void veden(float x, float y): Vẽ đến điểm (xm, ym) tương ứng hình *Cài Đặt: void chuyenDen(float x, float y){ int xm = (int) (tlx*(x - xw1)+xv1); int ym = (int) (tly*(yw2 - y)+yv1); Đồ họa máy tính moveto(xm,ym); } void veDen(float x, float y){ int xm = (int) (tlx*(x - xw1)+xv1); int ym = (int) (tly*(yw2 - y)+yv1); lineto(xm,ym); } CODE CHƯƠNG TRÌNH #include "graphics.h" #include "stdio.h" #include "conio.h" #include "iostream" Đồ họa máy tính #include "math.h" #define W WHITE using namespace std; //Khai bao mot so bien toan cuc float xw1,yw1,xw2,yw2; int xv1,yv1,xv2,yv2; float tlx,tly; float x_1, y_1, bankinh; //Tao cua so void cuaso(float x1, float y1, float x2, float y2) { xw1=x1; yw1=y1; xw2=x2; yw2=y2; } //Tao khung nhin Đồ họa máy tính void khungnhin(int x1, int y1, int x2, int y2) { xv1=x1; yv1=y1; xv2=x2; yv2=y2; tlx=(xv2-xv1)/(xw2-xw1); tly=(yv2-yv1)/(yw2-yw1); } //Chuyen den toa khung nhin void chuyenden(float x, float y) { int xm=(int)(tlx*(x-xw1)+xv1); int ym=(int)(tly*(yw2-y)+yv1); moveto(xm,ym); } Đồ họa máy tính //Ve duong thang khung nhin void veden(float x, float y) { int xm=(int)(tlx*(x-xw1)+xv1); int ym=(int)(tly*(yw2-y)+yv1); lineto(xm,ym); } //Ve putpixel khung nhin void vetam(float x, float y) { int xm=(int)(tlx*(x-xw1)+xv1); int ym=(int)(tly*(yw2-y)+yv1); putpixel(xm,ym,W); } //Ve truc toa void tructoado() { Đồ họa máy tính setcolor(5); outtextxy(315,310,"O"); outtextxy(600,310,"x"); outtextxy(315,40,"y"); setcolor(2); // Ve truc Ox tai khung nhin float xt = xw1, yt = 0; chuyenden(xt, yt); xt = xw2; yt = 0; veden(xt, yt); // Ve truc Oy tai khung nhin xt = 0; yt = yw1; chuyenden(xt, yt); xt = 0; yt = yw2; veden(xt, yt); float y = yw1 + 1; while (y < yw2) { chuyenden(-0.1,y); Đồ họa máy tính veden(0.1,y); y++; } float x = xw1 + 1; while (x < xw2) { chuyenden(x,-0.1); veden(x,0.1); x++; } } //Ham to mau theo thuat toan Vet dau loang void Loang(int tx,int ty,int mb,int mt) { if(getpixel(tx,ty)!=mb&&getpixel(tx,ty)!=mt) { putpixel(tx,ty,mt); Loang(tx+1,ty,mb,mt); Loang(tx-1,ty,mb,mt); 10 Đồ họa máy tính Loang(tx,ty+1,mb,mt); Loang(tx,ty-1,mb,mt); } } //Thuat toan ve diem doi xung void put8pixel(int xc, int yc, int xb, int yb) { putpixel(xc+xb,yc+yb,W); putpixel(yc+xb,xc+yb,W); putpixel(yc+xb,-xc+yb,W); putpixel(xc+xb,-yc+yb,W); putpixel(-xc+xb,-yc+yb,W); putpixel(-yc+xb,-xc+yb,W); putpixel(-yc+xb,xc+yb,W); putpixel(-xc+xb,yc+yb,W); } //Ve hinh void vehinh(float xa,float ya, float r, int m1, int m2, int m3) { 11 Đồ họa máy tính //Ve hinh vuong vetam(xa,ya); chuyenden(xa-r,ya-r); veden(xa+r,ya-r); veden(xa+r,ya+r); veden(xa-r,ya+r); veden(xa-r,ya-r); //To mau hinh vuong int xk=(int)(tlx*(xa-xw1)+xv1); int yk=(int)(tly*(yw2-ya)+yv1); Loang(xk-1,yk-1,W,m1); //Ve hinh tron theo thuat toan midpoint int xb=(int)(tlx*(xa-xw1)+xv1); int yb=(int)(tly*(yw2-ya)+yv1); int R= (int)(((xv2-xv1)/(xw2-xw1))*r); int xc=0, yc=R; put8pixel(xc,yc,xb,yb); float p=5/4-R; while (xc < R/sqrt(2)) 12 Đồ họa máy tính { if (p

Ngày đăng: 21/11/2014, 00:37

Từ khóa liên quan

Mục lục

  • 1. GIỚI THIỆU NỘI DUNG, YÊU CẦU CỦA ĐỀ TÀI

    • NỘI DUNG

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan