2.DDA Line Drawing Algorithm Using C Programming


#include<stdio.h> 
#include<math.h> 
#include<conio.h> 
#include<graphics.h> 
#define round(val) (int)(val+0.5) 

void main() {
   int gd = DETECT, gm;
   void line_dda(int, int, int, int);
   int xa, xb, ya, yb;
   printf("Enter the two values");
   scanf("%d%d%d%d", &xa, &ya, &xb, &yb);
    initgraph(&gd, &gm, "");
   cleardevice();
   line_dda(xa, ya, xb, yb);
   getch();
   closegraph();
}

void line_dda(int xa, int ya, int xb, int yb) {
   int Dx = xb - xa, Dy = yb - ya, steps, k;
   float xin, yin, X = xa, Y = ya;
   if (abs(Dx) > abs(Dy))
      steps = abs(Dx);
   else
      steps = abs(Dy);

   xin = Dx / (float) steps;
   yin = Dy / (float) steps;
   putpixel(round(X), round(Y), 6);

   for (k = 0; k < steps; k++) {

      X = X + xin;
      Y = Y + yin;
      putpixel(round(X), round(Y), 6);

   }
}