#include <stdio.h>
#include <conio.h>
#include <graphics.h>

void main()
{
   int gd=0,gm;
   int x1,y1,x2,y2,dx,dy,x,y,xend,yend;
   float m,b;

   clrscr();
   initgraph(&gd,&gm,"..\\bgi");

   printf("x1= ");
   scanf("%d",&x1);
   printf("y1= ");
   scanf("%d",&y1);
   printf("x2= ");
   scanf("%d",&x2);
   printf("y2= ");
   scanf("%d",&y2);

   line(0,240,640,240);
   line(320,0,320,480);
   setcolor(4);

   printf("\n Slope= %f",(float)(y1-y2)/(x1-x2));

   dx=x2-x1;
   dy=y2-y1;
   m=(float)dy/dx;
   b=y1-(m*x1);
   if(dx>dy)
   if(dx<0)
   {
      x=x2;
      y=y2;
      xend=x1;
      for(x=x2; x<xend;x++)
      {
        putpixel(320+x,240-y,4);
       delay(100);
       y=(m*x)+b;
     }
   }
   else
   {
      x=x1;
      y=y1;
      xend=x2;


     for(x=x1; x<xend;x++)
     {
       putpixel(320+x,240-y,4);
       delay(100);
       y=(m*x)+b;
     }
   }
   else
   if(dy<0)
   {
      x=x2;
      y=y2;
      yend=y1;
      for(y=y2; y<yend;y++)
      {
        putpixel(320+x,240-y,4);
        delay(100);
        x=(y-b)/m;
     }
   }
   else
   {
      x=x1;
      y=y1;
      yend=y2;


     for(y=y1; y<yend;y++)
     {
       putpixel(320+x,240-y,4);
       delay(100);
       x=(y-b)/m;
     }
   }
   getch();
}