0% found this document useful (0 votes)
25 views4 pages

Expt3 1

The document describes an experiment to implement the midpoint circle drawing algorithm. The algorithm uses the symmetry of a circle to determine the points along the perimeter. It calculates the next point to plot as either (x, y+1) or (x-1, y+1) by checking if the midpoint lies inside or outside the circle. The program code implements this by plotting points in the first octant and their mirror points to draw the full circle.

Uploaded by

mayanksanjay007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views4 pages

Expt3 1

The document describes an experiment to implement the midpoint circle drawing algorithm. The algorithm uses the symmetry of a circle to determine the points along the perimeter. It calculates the next point to plot as either (x, y+1) or (x-1, y+1) by checking if the midpoint lies inside or outside the circle. The program code implements this by plotting points in the first octant and their mirror points to draw the full circle.

Uploaded by

mayanksanjay007
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

EXPERIMENT NO 3

Aim:

Write a program to implement the Midpoint Circle Drawing Algorithm.

Theory:

The mid-point circle drawing algorithm is an algorithm used to determine the points needed for
rasterizing a circle. We use the mid-point algorithm to calculate all the perimeter points of the
circle in the first octant and then print them along with their mirror points in the other octants.
This will work because a circle is symmetric about its center.

For any given pixel (x, y), the next pixel to be plotted is either (x, y+1) or (x-1, y+1). This can
be decided by following the steps below.
1. Find the mid-point p of the two possible pixels i.e (x-0.5, y+1)
2. If p lies inside or on the circle perimeter, we plot the pixel (x, y+1), otherwise if it’s
outside we plot the pixel (x-1, y+1)

Boundary Condition : Whether the mid-point lies inside or outside the circle can be
decided by using the formula:-
In our program, we denote F(p) with P. The value of P is calculated at the mid-point of the two
contending pixels i.e. (x-0.5, y+1). Each pixel is described with a subscript k.

The first point to be plotted is (r, 0) on the x-axis. The initial value of P is calculated as follows:-

Algorithm:

Step1: Put x =0, y =r in equation 2


We have p=1-r

Step2: Repeat steps while x ≤ y


Plot (x, y)
If (p<0)
Then set p = p + 2x + 3
Else
p = p + 2(x-y)+5
y =y - 1 (end if)
x =x+1 (end loop)

Step3: End
Program Code:

// Program for drawing Circle using Midpoint Circle Algorithm

#include<graphics.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int x,y,x_mid,y_mid,radius,dp;
int g_mode,g_driver=DETECT;
clrscr();
initgraph(&g_driver,&g_mode,"C:\\TURBOC3\\BGI");
printf("*********** MID POINT Circle drawing algorithm
********\n\n");
printf("\nenter the coordinates= ");
scanf("%d %d",&x_mid,&y_mid);
printf("\n now enter the radius =");
scanf("%d",&radius);
x=0;
y=radius;
dp=1-radius;
do
{
putpixel(x_mid+x,y_mid+y,YELLOW);
putpixel(x_mid+y,y_mid+x,YELLOW);
putpixel(x_mid-y,y_mid+x,YELLOW);
putpixel(x_mid-x,y_mid+y,YELLOW);
putpixel(x_mid-x,y_mid-y,YELLOW);
putpixel(x_mid-y,y_mid-x,YELLOW);
putpixel(x_mid+y,y_mid-x,YELLOW);
putpixel(x_mid+x,y_mid-y,YELLOW);
if(dp<0) {
dp+=(2*x)+1;
}
else{
y=y-1;
dp+=(2*x)-(2*y)+1;
}
x=x+1;
}while(y>x);
getch();
}
Output:

Conclusion:
Thus a midpoint circle drawing algorithm is implemented.

You might also like