Java

Thursday, 6 August 2015

Write a C program to implement a line using Bresenhem's algorithm.

Program:


#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<math.h>
void bres(float x1,float y1,float x2,float y2)
{
int x,y,end,inc=0,p,dx=abs(x2-x1),dy=abs(y2-y1),c=0,current=0;
if(dx>dy)
{
p=2*dy-dx;
if(x1<x2)
{
x=x1;y=y1;end=x2;
if(y1<y2)
inc=1;
if(y1>y2)
inc=-1;
}
while(x<=end)
{
putpixel(x,y,15);
if(p<0)
p=p+2+dy;
else
{
y=y+inc;
p=p+2*(dy-dx);
}
x++;
if(current==1 && c==6)
{
current=0;
c=-1;
}
c++;
}
}
else
{
p=2*dx-dy;
if(y1<y2)
{
y=y1;x=x1;end=y2;
if(x1<x2)
inc=1;
if(x1>x2)
inc=-1;
}
else
{
y=y2;x=x2;end=y1;
if(x2<x1)
inc=1;
if(x2>x1)
inc=-1;
}
while(y<=end)
{
putpixel(x,y,15);
if(p<0)
p=p+2*dx;
else
{
x=x+inc;
p=p+2*(dx-dy);
}
y++;
if(current==0 && c==10)
{
current=1;
c=-1;
}
if(current==1 && c==6)
{
current=0;
c=-1;
}
c++;
}
}
}
void main()
{
float x1,x2,y1,y2;
int ch;
int gd=DETECT,gm=DETECT;
initgraph(&gd,&gm,"c:\\turboc3\\bgi");
printf("enter endpoints of line(x1.y1,x2,y2)");
scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
bres(x1,y1,x2,y2);
getch();
closegraph();
}

No comments:

Post a Comment