100% found this document useful (1 vote)
473 views11 pages

Midpoint Circle Algorithm

The document describes the mid-point circle algorithm for drawing circles. It uses 8-fold symmetry to only calculate pixel positions in the first octant of the circle. At each step along the x-axis, it calculates the next y-coordinate by testing a decision parameter to determine if the next point is above or below the current y value. It iterates through each x value until it reaches the radius to generate all points along the circle.

Uploaded by

Kalaivani D
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
473 views11 pages

Midpoint Circle Algorithm

The document describes the mid-point circle algorithm for drawing circles. It uses 8-fold symmetry to only calculate pixel positions in the first octant of the circle. At each step along the x-axis, it calculates the next y-coordinate by testing a decision parameter to determine if the next point is above or below the current y value. It iterates through each x value until it reaches the radius to generate all points along the circle.

Uploaded by

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

MID-POINT CIRCLE

ALGORITHM
DEFINATION
The midpoint circle algorithm is an algorithm
used to determine the points needed for drawing a
circle.
 At each step, the path is extended by choosing
the adjacent pixel which satisfies  but
maximizes .
 We only need to calculate the values on the
border of the circle in the first octant. The other
values may be determined by symmetry.
Assume a circle of radius r with center at (h,k)
The first thing we can notice to make our circle
drawing algorithm more efficient is that circles centred at
(h,k) have eight-way symmetry

Procedure Circle Points(x,y,Integer);


Begin (-x, y) (x, y)
Plot(x,y);
Plot(y,x);
Plot(y,-x); (-y, x) (y, x)
Plot(x,-y);
Plot(-x,-y);
Plot(-y,-x);
(-y, -x) (y, -x)
Plot(-y,x);
Plot(-x,y)
End;
(-x, -y) (x, -y)
 For a point in the interior of the circle, the circle function is
negative and for a point outside the circle, the function is
positive

 Thus,
 fcircle(x,y) < 0 if (x,y) is inside the circle boundary
 fcircle(x,y) = 0 if (x,y) is on the circle boundary
 fcircle(x,y) > 0 if (x,y) is outside the circle boundary.

yk X2+y2-r2=0
Yk-1 Midpoint between candidate
pixels at sampling position xk+1
Midpoint xk xk+1 Xk+3 along a circular path
1: Input radius r and circle center (xc,yc) and obtain the first point on
the circumference of the circle centered on the origin as (x0,y0) = (0,r)
2 2 2
x +y -r =0 x=y

2: Calculate the initial value of the decision parameter as


P0 = 5/4 - r
3: At each xk position starting at k = 0 , perform the following test:
If pk < 0 , the next point along the circle centered on (0,0) is
(xk+1, yk) and
pk+1 = pk + 2xk+1 + 1
Otherwise the next point along the circle is (xk+1, yk-1) and
pk+1 = pk + 2xk+1 +1 -2yk+1
Where 2xk+1 = 2xk+2 and 2yk+1 = 2yk-2
4: Determine symmetry points in the other seven
octants
5: Move each calculated pixel position (x,y) onto
the circular path centered on (x,yc) and plot the
coordinate values
x = x+ xc , y= y+ yc
6: Repeat steps 3 through 5 until x >= y
Mid-Point Circle Algorithm
xk+1 ,
k Pk 2xk+1 2yk+1
yk– 1
0 -9 (1, 10) 2 20
1 -6 (2, 10) 4 20
2 -1 (3, 10) 6 20
3 6 (4, 9) 8 18
4 -3 (5, 9) 10 18
5 8 (6, 8) 12 16
6 5 (7, 7) 14 14
A plot of the generated pixel positions in the first quadrant is shown in the
figure
7
The key insights in the mid-point circle
algorithm are:
• Eight-way symmetry can hugely
reduce the work in drawing a circle
• Moving in unit steps along the x axis
at each point along the circle’s edge
we need to choose between two
possible y coordinates
THE CIRCLES CAN BE DRAWN WITH
DIFFERENT RADIUS
y

x
y

x
Use 8-fold symmetry and only compute pixel
positions for the 45° sector.

(-x, y) (x, y)

(-y, x) (y, x)
45°

(-y, -x) (y, -x)

(-x, -y) (x, -y)

You might also like