Académique Documents
Professionnel Documents
Culture Documents
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
#include<stdio.h>
void Mcircle(int xo,int yo,int R)
{ int x,y,p,c;
setviewport(xo,yo,xo+R,yo+R,0);
p=1-R;
x=0;y=R;c=getcolor();
while(x<=y)
{ putpixel(x,y,c);putpixel(-x,y,c);
putpixel(x,-y,c);putpixel(-x,-y,c);
putpixel(y,x,c);putpixel(y,-x,c);
putpixel(-y,x,c);putpixel(-y,-x,c);
if(p<0) p+=2*x+3;
else {p+=2*(x-y)+5;y--;}
x++;
}
}
void main()
{
int gd=0,gm,R,x,y;
initgraph(&gd,&gm,"F:\\learn\\TC\\BGI");
printf("nhap x=");scanf("%d",&x);
printf("nhap y=");scanf("%d",&y);
printf("nhap R=");scanf("%d",&R);
setcolor(3);
Mcircle(x,y,R);
getch();
closegraph();
}
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void hoanvi(int *,int *,int *,int
void Bresenham1(int,int ,int ,int
void Bresenham2(int,int ,int ,int
void Bresenham3(int,int ,int ,int
void Bresenham4(int,int ,int ,int
void Bresenham5(int,int ,int ,int
void main() {
*);
);
);
);
);
);
int gd=0,gm,xa,ya,xb,yb,xmax,ymax;
float m;
clrscr();
printf("\nnhap toa do A: ");
scanf("%d%d",&xa,&ya);
printf("\nnhap toa do B:");
scanf("%d%d",&xb,&yb);
if((xb-xa)!=0)
m=(yb-ya)/float(xb-xa);
printf("\nm= %f",m);
getch();
initgraph(&gd,&gm,"D:\\TC\\BGI");
setcolor(4);
if(xa>xb) hoanvi(&xa,&ya,&xb,&yb);
if(m>0&&m<1)
Bresenham1(xa,ya,xb,yb);
if(m>1)
Bresenham2(xa,ya,xb,yb);
if(m>-1&&m<0)
Bresenham3(xa,ya,xb,yb);
if(m<-1)
Bresenham4(xa,ya,xb,yb);
if(xa==xb||ya==yb||m==1)
Bresenham5(xa,ya,xb,yb);
getch();
closegraph();
}
void hoanvi(int*xa,int *ya,int *xb,int *yb)
{
int tam;
tam=*xa;
*xa=*xb;
*xb=tam;
tam=*ya;
*ya=*yb;
*yb=tam;
}
// ********* 0<M<1****************
void Bresenham1(int xa,int ya,int xb,int yb)
{
int x,y,dx,dy,e,ekt,et,c;
dx = xb-xa;
dy=yb-ya;
ekt=dy+dy;
e=ekt-dx;
et=e-dx;
c=getcolor();
for(x=xa,y=ya;x<=xb;x++){
putpixel(x,y,c);
if(e<0)
e+=ekt;
else {
y++;
e+=et;
}
}
outtextxy(200,200,"truonghop1");
}
//***********M>1*******************
void Bresenham2(int xa,int ya,int xb,int yb)
{
int x,y,dx,dy,e,ekt,et,c;
dx = xb-xa;
dy=yb-ya;
ekt=dx+dx;
e=ekt-dy;
et=e-dy;
c=getcolor();
for(x=xa,y=ya;x<=xb;y++){
putpixel(x,y,c);
if(e<0)
e+=ekt;
else {
x++;
e+=et;
}
}
}
outtextxy(200,200,"truonghop2");
int x,y,c;
c=getcolor();
if(xa==xb){
for(y=ya;y<=yb;y++)
putpixel(xa,y,c);
}
if(ya==yb){
for(x=xa;x<=xb;x++)
putpixel(x,ya,c);
}
if((xb-xa)/(yb-ya)==1) {
for(x=xa,y=ya;x<=xb;x++,y++)
putpixel(x,y,c);
}
outtextxy(200,200,"truonghop5");