Code :
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
void draw(int x1,int y1,int x2,int y2);
void main()
{
int x1,x2,y1,y2;
int gd=DETECT,gm;//DETECT is macro defined in graphics.h
initgraph(&gd,&gm,"d:\\tc\\bgi");//initialize graphic mode
printf("Enter values of x1 and y1: ");
scanf("%d %d",&x1,&y1);
printf("Enter values of x2 and y2 : ");
scanf("%d %d",&x2,&y2);
draw(x1,y1,x2,y2);//call to function that draws the line
getch();
}
void draw(int x1,int y1,int x2,int y2)
{
float dx,dy,p;
int i,x,y,xend;
dx=x2-x1;
dy=y2-y1;
p=2*dy-dx;
if(x1>x2)
{
x-x2;
y=y2;
xend=x1;
}
else
{
x=x1;
y=y1;
xend=x2;
}
putpixel(x,y,10);
while(x<xend)
{
if(p<0)
{
x=x+1;
putpixel(x,y,10);
p=p+(2*dy);
}
else
{
x=x+1;
y=y+1;
putpixel(x,y,10);
p=p+(2*dy)-(2*dx);
}
}
}
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