Skip to main content

C program to implement bresenham's line drawing algorithm


#include<graphics.h>
#include<conio.h>
#include<math.h>

void bress(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;
  }
  else
  {
   x=x2;y=y2;end=x1;
   if(y2<y1)inc=1;
   if(y2>y1)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++;
   
  }
 }
 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()
{ int gdriver=DETECT,gmode,i,j,c=0;
  initgraph(&gdriver,&gmode,"..\\bgi");
 for(i=1;i<=5;i++)
 {
  bress(100+c,100+c,300+c,100+c);
  bress(100+c,100+c,100+c,200+c);
  bress(300+c,100+c,300+c,200+c);
  bress(100+c,200+c,300+c,200+c);

  c+=10;
 }

  getch();
  closegraph();
  getch();
}

Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};