#include<graphics.h>
#include <stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<math.h>
#include<dos.h>
int main()
{
float x,y,x1,y1,x2,y2,step,color,xinc,yinc,m;
int i,gdriver = DETECT, gmode, errorcode;
clrscr();
/* initialize graphics mode */
initgraph(&gdriver, &gmode, "c:\\tc\\bgi\\");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
cout<<"x1=";
cin>>x1;
cout<<"y1=";
cin>>y1;
cout<<"x2=";
cin>>x2;
cout<<"y2=";
cin>>y2;
cout<<"colour=";
cin>>color;
if(x1==x2)
{
for(int i=y1;i<=y2;i++)
{
putpixel(x1,i,color);
cout<<"("<<x1<<","<<i<<")"<<endl;
} }
else
{
if(x1<x2)
{
x=x1;
y=y1;
}
else
{
x=x2;
y=y2;
}
m=float((y2-y1)/(x2-x1));
if(fabs(m)<1)
{
xinc=1;
yinc=m;
step=fabs(x2-x1);
}
else
{
xinc=1/m;
yinc=1;
step=fabs(y2-y1);
}
cout<<"m="<<m<<endl;
cout<<"xinc="<<xinc<<endl;
cout<<"yinc="<<yinc<<endl;

for(i=1;i<=step+1;i++)
{
putpixel(x,y,color);
cout<<"("<<x<<","<<y<<")"<<endl;
x=x+xinc;
y=y+yinc;
delay(2);
}
}
getch();
closegraph();
return(0);
}