Simple Circle Drawing Algorithm
Simple Circle Drawing Algorithm
y0 202 0 2 20
y1 202 12 20
y2 202 2 2 20
(-y, x) (y, x)
R
2
(-y, -x) (y, -x)
pk 1 f circ xk 1 1, yk 1 1 2
• or:
[( xk 1) 1] yk 1
2
1
2
2
r 2
pk 1 ypk+1
• where k ( xk 1y) kor
is2either ( yyk k1-1 depending
2
yk ) ( yk 1 onykthe
2
) 1
sign of pk
Mid-Point Circle Algorithm (cont…)
• The first decision variable is given as:
p0 f circ (1, r 1 )
2
1 (r 1 ) 2 r 2
2
5 r
4
• Then if pk < 0 then the next decision variable is
given as:
pk 1 pk 2 xk 1 1
• If pk > 0 then the decision variable is:
pk 1 pk 2 xk 1 1 2 yk 1
The Mid-Point Circle Algorithm
• MID-POINT CIRCLE ALGORITHM
• Input radius r and circle centre (xc, yc), then set the
coordinates for the first point on the circumference of a
circle centred on the origin as:
( x0 , y0 ) (0, r )
• Calculate the initial value of the decision parameter as:
p0 5 r
4
• Starting with k = 0 at each position xk, perform the
following test. If pk < 0, the next point along the circle
centred on (0, 0) is (xk+1, yk) and:
pk 1 pk 2 xk 1 1
The Mid-Point Circle Algorithm (cont…)
• Otherwise the next point along the circle is (xk+1, yk-1)
and:
pk 1 pk 2 xk 1 1 2 yk 1
4. Determine symmetry points in the other seven octants
5. Move each calculated pixel position (x, y) onto the circular
path centred at (xc, yc) to plot the coordinate values:
x x xc y y yc
6. Repeat steps 3 to 5 until x >= y
Mid-Point Circle Algorithm
Example
• To see the mid-point circle algorithm in action
lets use it to draw a circle centred at (0,0) with
radius 10
Mid-Point Circle Algorithm Example
(cont…)
10 k pk (xk+1,yk+1) 2xk+1 2yk+1
9
8 0
7 1
6
2
5
4
3
3 4
2
5
1
0
6
0 1 2 3 4 5 6 7 8 9 10
Mid-Point Circle Algorithm Exercise
• Use the mid-point circle algorithm to draw the
circle centred at (0,0) with radius 15
Mid-Point Circle Algorithm Example
(cont…)
16
k pk (xk+1,yk+1) 2xk+1 2yk+1
15
14
0
13
1
12
11 2
10 3
9 4
8 5
7 6
6 7
5 8
4 9
3
10
2
11
1
0 12
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Mid-Point Circle Algorithm
Summary
• 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