Given below is a C program to draw a line using DDA algorithm.
Code :
Note : In the above screenshot the line is hardly visible. The image above is a grayscale of original image.
Note : The program above has been tested using TurboCPP. Leave a comment if you feel the program is incorrect and/or has errors and/or if the program and its output don't match. Please report about broken links.
Code :
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
int sign(int nd)
{
if(nd>0)
return +1;
else if(nd<0)
return -1;
else
return 0;
}
void main()
{
int gd=DETECT,gm,i=1,j;//DETECT is macro defined in graphics.h
int x1,x2,y1,y2,length;
float dx,dy,ndx,ndy,x,y;
initgraph(&gd,&gm,"d:\\tc\\bgi");//initialize graphic mode
setbkcolor(DARKGRAY);//set the background color
printf("Enter x1:");
scanf("%d",&x1);
printf("Enter y1:");
scanf("%d",&y1);
printf("Enter x2:");
scanf("%d",&x2);
printf("Enter y2:");
scanf("%d",&y2);
dx=x2-x1;
dy=y2-y1;
if(abs(dx)>=abs(dy))
length=abs(dx);
else
length=abs(dy);
ndx=dx/length;
ndy=dy/length;
x=x1+(0.5*sign(ndx));
y=y1+(0.5*sign(ndy));
while(i<=length)
{
putpixel(x,y,4);
x=x+ndx;
y=y+ndy;
i=i+1;
}
getch();
closegraph();
}
Output :Note : In the above screenshot the line is hardly visible. The image above is a grayscale of original image.
Note : The program above has been tested using TurboCPP. Leave a comment if you feel the program is incorrect and/or has errors and/or if the program and its output don't match. Please report about broken links.

No comments:
Post a Comment