Saturday, July 21, 2007

S7 Graphics Lab

//This program is to implement Bresenham's algorithm
//for slope less than 1 and positive dx
#include
#include
#include
#include
#include
struct point
{
float x,y;
}a,b;
int main()
{
int dx,dy;
double pk;
int dx2,dy2;
int gdriver=DETECT;
int gmode;
printf("Bresenham's Algorithm for |m|<1\n");
printf("********************************\n");
printf("Enter the 2 points : ");
scanf("%f%f%f%f",&a.x,&a.y,&b.x,&b.y);

initgraph(&gdriver,&gmode,"c:\\tc\\bgi");
//calculation part
dx=abs(a.x-b.x);
if(dx<0)
dx*=-1;

dy=abs(a.y-b.y);
if(dy<0)
dy*=-1;

dy2=2*dy;
dx2=2*dx;

pk=dy2-dx;
putpixel(a.x,a.y,15);
putpixel(b.x,b.y,15);

while(dx>0)
{
if(pk<0)
{
a.x++;
pk+=dy2;
}
else
{
a.x++;
a.y++;
pk+=dy2-dx2;
}
putpixel(a.x,a.y,15);
dx--;
}
//line(100,200,200,250);

getch();
closegraph();
return 0;
}

No comments: