1.
#include<graphics.h>
void main()
{
int gd=0,gm,a,b,c,x,y,dx,dy,i;
float d[10];
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,480,320,0);
for(i=0;i<8;i=i+2)
{
printf("Enter %c%c: ",ch[i],ch[i+1]);
scanf("%f",&d[i]);
}
dx=d[4]-d[0];
dy=d[6]-d[2];
if(abs(dx)<abs(dy))
c=dy;
else
c=dx;
while((d[0]!=d[4])&&(d[2]!=d[6]))
{
x=(int)d[0];
y=(int)d[2];
putpixel(320+x,240-y,5);
delay(100);
d[0]=d[0]+(float)dx/abs(c);
d[2]=d[2]+(float)dy/abs(c);
}
getch();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2.
#include<dos.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#define Round(a) (int)(a+0.5)
void LineDDA(int x1, int y1, int x2, int y2)
{
int dx=x2-x1, dy=y2-y1, step, k;
float xinc,yinc, x=x1, y=y1;
if (abs(dx)>abs(dy))
step=abs(dx);
else
step=abs(dy);
xinc=dx/(float)step;
yinc=dy/(float)step;
putpixel(320+Round(x), 240-Round(y), 4);
for (k=0; k<step; k++)
{
x+=xinc;
y+=yinc;
putpixel(320+Round(x), 240-Round(y), 4);
delay(100);
}
}
void main()
{
int x1,y1,x2,y2,gd=0,gm;
clrscr();
printf("x1= ");
scanf("%d",&x1);
printf("y1= ");
scanf("%d",&y1);
printf("x2= ");
scanf("%d",&x2);
printf("y2= ");
scanf("%d",&y2);
initgraph(&gd,&gm,"D:\\TC\\bgi");
line(0,240,640,240);
line(320,0,320,480);
LineDDA(x1,y1,x2,y2);
getch();
}