Our Android App Also Got an Upgrade. Download now!

Bresenham Circle Drawing Program in C

BresenhamCircle.txt

File size: 1.18 KB

File content type: text/plain

Category: Practical Files

Subject: Computer Graphics and Multimedia

// Program uses graphics.h that is generally available in Turbo C

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

void main() {

    int gd=DETECT, gm=DETECT;
    int r, x, y, midx, midy,p;

    initgraph(&gd,&gm,"");

    printf("Enter the Radius of circle : ");
    scanf("%d",&r);

    x = 0;
    y = r;
    p = 3 - 2*r;         

    midx=getmaxx()/2; //To get the max position (Bottom-Right corner) of screen. 
    midy=getmaxy()/2; //Dividing by 2 to get the centre of screen.


    do {                                             

        putpixel(midx+ x, midy+ y , 1); //All possible 8 combinations to draw 8 Segments
        putpixel(midx- x, midy- y , 2);
        putpixel(midx- x, midy+ y , 3);
        putpixel(midx+ x, midy- y , 4);
        putpixel(midx +y, midy+ x , 5);
        putpixel(midx +y, midy -x , 6);
        putpixel(midx -y, midy -x , 7);
        putpixel(midx -y, midy +x , 8);

        delay(20);

        x++; //x will always increase , so it is incremented outside if-else

        if(p<0) {
            p=p+4*x+6;
        }
        else {
            y--; //y decrements only when p>=0
            p=p+4*(x-y)+10;
        }

    }while(x<=y);

    getch();
    
}

Related searches C Program for Bresenham Circle Drawing Algorithm

Last Updated: July 16, 2022