Amazon Affiliate

Saturday, 7 April 2012

PROGRAM FOR BRESENHAM'S LINE DRAWING ALGORITHM

//***PROGRAM FOR BRESENHAM'S LINE DRAWING ALGORITHM***//

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

void main()
{
  int gd=DETECT,gm;
  int r,x,y,p,xc=320,yc=240;
  initgraph(&gd,&gm,"c:\\TC\\BGI");
  cleardevice();
  printf("Enter the radius :");
  scanf("%d",&r);
  x=0;
  y=r;
  putpixel(xc+x,yc-y,1);
  p=3-(2*r);
  for(x=0;x<=y;x++)
  {
    if(p<0)
    {
      y=y;
      p=(p+(4*6)+6);
    }
    else
    {
      y=y-1;
      p=p+(4*(x-y)+10);
    }
    putpixel(xc+x,yc-y,4);
    putpixel(xc-x,yc-y,4);
    putpixel(xc+x,yc+y,4);
    putpixel(xc-x,yc+y,4);
    putpixel(xc+y,yc-x,4);
    putpixel(xc-y,yc-x,4);
    putpixel(xc+y,yc+x,4);
    putpixel(xc-y,yc+x,4);
  }
  getch();
  closegraph();
}

PROGRAM FOR DDA LINE DRAWING ALGORITHM..


//***PROGRAM FOR DDA LINE DRAWING ALGORITHM***//

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<process.h>
#include<math.h>
#define ROUND(a) ((int)(a+1))
void lineDDA(int xa,int ya, int xb, int yb)
{
  int dx= xb-xa, dy=yb-ya,steps, k;
  float xIncrement,yIncrement,x=xa,y=ya;
   if(abs(dx)>abs(dy)) steps= abs(dx);
   else steps= abs (dy);
   xIncrement = dx/(float) steps;
   yIncrement = dy/(float) steps;
   putpixel (ROUND(x),ROUND (y),5);
   for (k=0;k<steps;k++)
   {
    x+=xIncrement;
    y+=yIncrement;
    putpixel(ROUND(x),ROUND(y),5);
   }
}
void main()
 {
 int a1,a2,b1,b2;
 int gdriver= DETECT, gmode;
 initgraph (&gdriver,&gmode,"c:\\tc\\bgi");
 printf("ENTER THE STARTING POSITION");
 scanf("%d%d",&a1,&a2);
 printf("ENTER THE ENDING POSITION");
 scanf("%d%d",&b1,&b2);
 lineDDA(a1,b1,a2,b2);
 getch();
 closegraph();
 getch();
  }