//1. 

#include<graphics.h>
void main()
{
  int gd=0,gm,a,i,b=1,c=1,dx,dy,x,y,x1[10],xend;
  char ch[]={'x','1','y','1','x','2','y','2'};
  clrscr();
  initgraph(&gd,&gm,"D:\\tc\\bgi");
  setcolor(2);
  line(0,240,640,240);
  line(320,0,320,480);
  for(i=0;i<8;i=i+2)
  {
    printf("Enter %c%c: ",ch[i],ch[i+1]);
    scanf("%d",&x1[i]);
  }
  dx=x1[4]-x1[0];
  dy=x1[6]-x1[2];
  if(abs(dx)<abs(dy))
  b=0;
  else
  c=0;
  if(dx>0)
  {
    x=x1[0];
    xend=x1[4];
    y=x1[2];
  }
  else
  {
    x=x1[4];
    xend=x1[0];
    y=x1[6];
  }
  a=b*(2*abs(dy)-abs(dx))+c*(2*abs(dx)-abs(dy));
  while(x<=xend)
  {
     putpixel(320+x,240-y,5);
     delay(100);
     if(a<0)
     a=a+b*(2*abs(dy))+c*(2*abs(dx));
     else
     {
    a=a+b*(2*abs(dy)-2*abs(dx))+c*(2*abs(dx)-2*abs(dy));
    y=y+b;
    x=x+c;
     }
     x=x+b;
     y=y+c;
  }
  getch();
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



//2.


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

void main()
{
   int gd=0,gm;
   int x1,p=1,y1,x2,y2,dx,dy,d,x,y,xend,yend,a=0,b=0;

   clrscr();
   initgraph(&gd,&gm,"D:\\tc\\bgi");

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

   setcolor(5);
   line(0,240,640,240);
   line(320,0,320,480);
   line(x1+320,240-y1,x2+320,240-y2);
   setcolor(3);
   dx=x2-x1;
   dy=y2-y1;
   if(dy<0&&0<dx)
   {
     p=-1;
     if(x2<0)
     p=1;
   }
   if(abs(dx)>abs(dy))
   a=1;
   else
   b=1;
   if(dx>0)
   {
      x=x1;
      y=y1;
      xend=x2;
   }
   else
   {
      x=x2;
      y=y2;
      xend=x1;
   }
   d=a*(2*abs(dy)-abs(dx))+b*(2*abs(dx)-abs(dy));
   while(x!=xend)
   {
       delay(100);
       putpixel(320+x,240-y,3);
       if(d<0)
       d=a*(d+2*abs(dy))+b*(d+2*abs(dx));
       else
       {
       d=a*(d+2*abs(dy)-2*abs(dx))+b*(d+2*abs(dx)-2*abs(dy));
       y=y+a*p;
       x=x+b;
       }
       y=y+b*p;
       x=x+a;
    }
  getch();
}