Friday, September 13, 2013

Tagged Under: ,

Bresenham Line Drawing Algorithm Program C

Share

Bresenham’s Line Drawing Algorithm Program Implementation in C

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
void swap(int &x,int &y)
{
    int k=x;
    x=y;
    y=k;
}
 
void main()
{
    int gd=DETECT,gm=DETECT,x1,x2,y1,y2,dx,dy,p,k;
    float m=0;
    clrscr();
  printf("Enter the sarting point x1 & y1\n");
  scanf("%d%d",&x1,&y1);
  printf("Enter the end point x2 & y2\n");
  scanf("%d%d",&x2,&y2);
 dx=abs(x2-x1);
    dy=abs(y2-y1);
    m=(float(y2-y1)/(x2-x1);
    initgraph(&gd,&gm,"");
    cleardevice();
    if(fabs(m)>1) 
 {
  swap(x1,y1);
  swap(x2,y2);
  swap(dx,dy);
    }
    if((x1>x2)) 
 {
  x1=x2;
  y1=y2;
    }
    p=2*dy-dx;
    for(k=0;k<abs(dx);k++) 
 {
  if(p<0)
  {
   p=p+2*dy;
  } 
  else 
  {
   if(m<0)
    y1--;
   else
    y1++;
   p=p+(2*dy)-(2*dx);
  }
  if(fabs(m)<=1)
   putpixel(x1++,y1,15);
  else
   putpixel(y1,x1++,15);
    }
    getch();
}