Back
Digital Differential Analyzer(DDA) Algorithm
#include <graphics.h>
#include <cmath>
void linedda(int x1,int y1,int x2,int y2){
int dx = x2 - x1;
int dy= y2 - y1;
int steps;
int k;
float xIncr;
float yIncr;
float x=x1;
float y=y1;
if (abs(dx)>abs(dy)) steps =abs(dx);
else steps =abs(dy);
xIncr = dx/(float) steps;
yIncr = dy/(float) steps;
putpixel(round(x),round(y),WHITE);
for(k=0;k<steps;k++){
x+=xIncr;
y+=yIncr;
putpixel(round(x),round(y),WHITE);
delay(2);
}
}
int main() {
int gd = DETECT, gm;
initgraph(&gd, &gm, (char*)"");
int x1 = 100, y1 = 100, x2 = 400, y2 = 400;
linedda(x1,y1, x2, y2);
getch();
closegraph();
return 0;
}