TR NG Đ I H C BK ĐÀ N NGƯỜ
KHOA CÔNG NGH THÔNG TIN
----------
O CÁO TH C HÀNH
Đ H A Y 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/2014
I. 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-Cpp\include ư
+ File libbgi.a đ th m c C:\Dev-Cpp\lib ư
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 <cstdlib>
#include <iostream>
#include <graphics.h>
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 đ ng tròn đ ng tâm màu chúng: ườ S d ng thu t toán
Michener.
Code:
#include <cstdlib>
#include <iostream>
#include <graphics.h>
#include <math.h>
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<=y){
putpixel(x+x0,y+y0,c);
putpixel(-x+x0,y+y0,c);
putpixel(x+x0,-y+y0,c);
putpixel(-x+x0,-y+y0,c);
putpixel(y+x0,x+y0,c);
putpixel(y+x0,-x+y0,c);
putpixel(-y+x0,x+y0,c);
putpixel(-y+x0,-x+y0,c);
if(p<0) p+=2*x + 3;
else { p+=2*(x-y)+5;y--;}
x++;
}
}
void totron(int xc, int yc, int R, int c)
{
for (int i=xc-R; i<xc+R; i++)
{ for (int j=yc-R; j<yc+R; j++)
{ float d= sqrt((float)(xc-i)*(xc-i)+ (float)(yc-j)*(yc-j));
if (d<50) putpixel(i,j,11);
else if (d<R && d>R-15) putpixel(i,j,c);
}
}
}
int main(int argc, char *argv[])
{
int c=1;
initwindow(500,400);
for (int R=50;R<200;R=R+15){
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<stdio.h>
#include<graphics.h>
#include<dos.h>
//Kieu cua so va bien w toan cuc
struct wind
{
float l,t,r,b;
}w;
// Kieu diem
struct ptype