//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:
Post a Comment