Amazon banner

Friday 17 August 2012

C PROGRAM TO DRAW CIRCLE IN THIRD QUADRANT IN ANTICLOCKWISE DIRECTION USING BRESENHAM'S CIRCLE DRAWING ALGORITHM

/* C PROGRAM TO DRAW CIRCLE IN THIRD QUADRANT IN ANTICLOCKWISE DIRECTION USING BRESENHAM'S CIRCLE DRAWING ALGORITHM*/

* AUTHOR : DEEPAK MAHAKALE 3RD YEAR IT SRCOEM, NAGPUR*/
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
void main()
{
   // Request auto detection
   int gdriver = DETECT, gmode;
   int xi,yi=0,di,limit=0,r,d1,d2,xc,yc;
   clrscr();

   // Initialize graphics mode
   initgraph(&gdriver, &gmode,"C:\TC\BGI");
   xc=getmaxx()/2;
   yc=getmaxy()/2;

   setcolor(2);
   setbkcolor(15);

   // Get radius value
   printf("\n\n\t Enter the radius :");
   scanf("%d",&r);

   line(0,yc,xc*2,yc);
   line(xc,0,xc,yc*2);

   xi=-r;                   // Assign radius to xi
   di=2*(1-r);             // Value for delta
   putpixel(xc,yc,RED);
   while(xi<=limit)
     {
 putpixel(xc+xi,yc-yi,RED);           // Putpixel
 delay(50);
 if(di<0)
 {
    d1=(2*di)-(2*yi)-1;
    if(d1<=0)
    {
         yi=yi-1;
         di=di-2*yi+1;            //Mv value
    }
    else
    {
         xi=xi+1;
        yi=yi-1;
        di=di+2*xi-2*yi+2;       //Md value
    }
 }
 else
 {
    if(di>0)
    {
       d2=2*di-2*xi-1;
       if(d2<=0)
       {
          xi=xi+1;
         yi=yi-1;
         di=di+2*xi-2*yi+2;     //Md value
       }
       else
       {
    xi=xi+1;
    di=di+2*xi+1;         // Mh value
       }
    }
    else
    {
       if(di==0)
       {
    xi=xi+1;
          yi=yi-1;
          di=di+2*xi-2*yi+2;     // Md value
       }
    }
 }
     }       //While ends
     getch();
     closegraph();
     }







No comments:

Post a Comment