Amazon banner

Friday, 17 August 2012

C PROGRAM TO DRAW CIRCLE IN FOURTH QUADRANT IN CLOCKWISE DIRECTION USING BRESENHAM'S CIRCLE DRAWING ALGORITHM

/* C PROGRAM TO DRAW CIRCLE IN FOURTH QUADRANT IN CLOCKWISE 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*xi)-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*yi-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