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);
}
}