#include #include #include #include struct POINT { int x,y; }; void main() { int Drv,mode,dx,dy,i; struct POINT p1,p2; float x,y,inc; printf("give me the first line point -->"); scanf("%d %d",&p1.x,&p1.y); printf("give me the second line point -->"); scanf("%d %d",&p2.x,&p2.y); Drv=DETECT; initgraph(&Drv,&mode,""); setcolor(3); line(p1.x,p1.y,p2.x,p2.y); getche(); /* clearviewport(); */ /* dda algorithm */ dx=p2.x-p1.x; dy=p2.y-p1.y; x=p1.x; y=p1.y; putpixel(x,y,14); if (abs(dx) > abs(dy)) { inc=dy/(float)dx; if (dx >= 0) for (i=p1.x+1; i<=p2.x; i++) { x=i; y=y+inc; putpixel(x,y,14); } else for (i=p1.x-1; i>=p2.x; i--) { x=i; y=y-inc; putpixel(x,y,14); } } else { /* abs(dx <= abs(dy) */ inc=dx/(float)dy; if (dy >= 0) for (i=p1.y+1; i<=p2.y; i++) { y=i; x=x+inc; putpixel(x,y,14); } else for (i=p1.y-1; i>=p2.y; i--) { y=i; x=x-inc; putpixel(x,y,14); } } getche(); closegraph(); }