0% found this document useful (0 votes)
26 views27 pages

Bresenhams Circle Algorithm

The document outlines Bresenham's Circle Algorithm for scan-converting a circle, detailing the procedure for generating points in the first octant and utilizing symmetry to derive points for the entire circle. It includes step-by-step calculations for initial decision parameters and examples for circles centered at (0, 0) and (10, 10) with specified radii. The document emphasizes the mathematical expressions used to determine the closest points to the true circle and the iterative process for plotting these points.

Uploaded by

noorykamal492
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
0% found this document useful (0 votes)
26 views27 pages

Bresenhams Circle Algorithm

The document outlines Bresenham's Circle Algorithm for scan-converting a circle, detailing the procedure for generating points in the first octant and utilizing symmetry to derive points for the entire circle. It includes step-by-step calculations for initial decision parameters and examples for circles centered at (0, 0) and (10, 10) with specified radii. The document emphasizes the mathematical expressions used to determine the closest points to the true circle and the iterative process for plotting these points.

Uploaded by

noorykamal492
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/ 27

Insert the Subtitle of Your Presentation

Bresenham'
s Circle
Algorithm:
Procedure-
Scan-Converting a circle using
Bresenham's algorithm works as
follows: Points are generated from 90°
to 45°, moves will be made only in the
+x & -y directions as shown in fig:
The best approximation of the true circle will be
described by those pixels in the raster that falls
the least distance from the true circle. We want to
generate the points from
90° to 45°. Assume that the last scan-converted pixel is P1 as
shown in fig. Each new point closest to the true circle can be
found by taking either of two actions.

1.Move in the x-direction one unit or


2.Move in the x- direction one unit & move in the negative y-
direction one unit.

Let D (Si) is the distance from the origin to the true circle
squared minus the distance to point P3 squared. D (Ti) is the
distance from the origin to the true circle squared minus the
distance to point P2 squared. Therefore, the following
expressions arise.
D (Si)=(xi-1+1)2+ yi-12 -r2

D (Ti)=(xi-1+1)2+(yi-1 -1)2-r2
Since D (Si) will always be +ve & D (Ti) will always
be -ve, a decision variable d may be defined as
follows:
di=D (Si )+ D (Ti)

Therefore,
di=(xi-1+1)2+ yi-12 -r2+(xi-1+1)2+(yi-1 -1)2-r2

From this equation, we can drive initial values of di as

If it is assumed that the circle is centered at the origin, then at the first step x = 0 & y = r.

Therefore,
di=(0+1)2+r2 -r2+(0+1)2+(r-1)2-r2
=1+1+r2-2r+1-r2
= 3 - 2r

Thereafter, if d_i<0,then only x is incremented.


xi+1=xi+1

di+1=di+ 4xi+6

& if di≥0,then x & y are incremented

xi+1=xi+1 yi+1 =yi+ 1

di+1=di+ 4 (xi-yi)+10
Procedure-

Given-
•Centre point of Circle = (X0, Y0)
•Radius of Circle = R

The points generation using Bresenham Circle Drawing


Algorithm involves the following steps-
Step-01:

Assign the starting point coordinates (X0,


Y0) as-
•X0 = 0
•Y0 = R

Step-02:

Calculate the value of initial decision


parameter P0 as-
P0 = 3 – 2 x R
Step-03:

Suppose the current point is (Xk, Yk) and the next point is (Xk+1,
Yk+1).
Find the next point of the first octant depending on the value of
decision parameter Pk.
Follow the below two cases-
Step-04:

If the given centre point (X0, Y0) is not (0, 0), then do the following
and plot the point-
•Xplot = Xc + X0
•Yplot = Yc + Y0

Here, (Xc, Yc) denotes the current value of X and Y coordinates.

Step-05:

Keep repeating Step-03 and Step-04 until Xplot => Yplot.


Step-06:

Step-05 generates all the points for one octant.


To find the points for other seven octants, follow the eight symmetry property of circle.
This is depicted by the following figure-
• PRACTICE PROBLEMS BASED ON BRESENHAM CIRCLE
DRAWING ALGORITHM-
Problem-01:

Given the centre point coordinates (0, 0) and radius as


8, generate all the points to form a circle.

Solution-

Given-
•Centre Coordinates of Circle (X0, Y0) = (0, 0)
•Radius of Circle = 8
Step-01:

Assign the starting point coordinates (X0, Y0) as-


•X0 = 0
•Y0 = R = 8

Step-02:

Calculate the value of initial decision parameter P0 as-


P0 = 3 – 2 x R
P0 = 3 – 2 x 8
P0 = -13
Step-03:

As Pinitial < 0, so case-01 is satisfied.

Thus,
•Xk+1 = Xk + 1 = 0 + 1 = 1
•Yk+1 = Yk = 8
•Pk+1 = Pk + 4 x Xk+1 + 6 = -13 + (4 x 1) + 6 = -3

Step-04:

This step is not applicable here as the given centre point


coordinates is (0, 0).
Step-05:

Step-03 is executed similarly until Xk+1 >= Yk+1 as follows-

Pk Pk+1 (Xk+1, Yk+1)

(0, 8)
-13 -3 (1, 8)
-3 11 (2, 8)
11 5 (3, 7)
5 7 (4, 6)
7 (5, 5)
Algorithm Terminates
These are all points for Octant-1.

Algorithm calculates all the points of octant-1 and


terminates.
Now, the points of octant-2 are obtained using the mirror effect by
swapping X and Y coordinates.
Octant-1 Points Octant-2 Points

(0, 8) (5, 5)
(1, 8) (6, 4)
(2, 8) (7, 3)
(3, 7) (8, 2)
(4, 6) (8, 1)
(5, 5) (8, 0)
These are all points for Quadrant-1.

Now, the points for rest of the part are generated by following the signs of other quadrants.

The other points can also be generated by calculating each octant separately.
Here, all the points have been generated with respect to quadrant-1-

Quadrant-1 (X,Y) Quadrant-2 (-X,Y) Quadrant-3 (-X,-Y) Quadrant-4 (X,-Y)

(0, 8) (0, 8) (0, -8) (0, -8)


(1, 8) (-1, 8) (-1, -8) (1, -8)
(2, 8) (-2, 8) (-2, -8) (2, -8)
(3, 7) (-3, 7) (-3, -7) (3, -7)
(4, 6) (-4, 6) (-4, -6) (4, -6)
(5, 5) (-5, 5) (-5, -5) (5, -5)
(6, 4) (-6, 4) (-6, -4) (6, -4)
(7, 3) (-7, 3) (-7, -3) (7, -3)
(8, 2) (-8, 2) (-8, -2) (8, -2)
(8, 1) (-8, 1) (-8, -1) (8, -1)
(8, 0) (-8, 0) (-8, 0) (8, 0)
These are all points of the Circle.
Problem-02:

Given the centre point coordinates (10, 10) and radius as 10,
generate all the points to form a circle.

Solution-

Given-
•Centre Coordinates of Circle (X0, Y0) = (10, 10)
•Radius of Circle = 10
Step-01:

Assign the starting point coordinates (X0, Y0) as-


•X0 = 0
•Y0 = R = 10

Step-02:

Calculate the value of initial decision parameter P0 as-


P0 = 3 – 2 x R
P0 = 3 – 2 x 10
P0 = -17
Step-03:

As Pinitial < 0, so case-01 is satisfied.

Thus,
•Xk+1 = Xk + 1 = 0 + 1 = 1
•Yk+1 = Yk = 10
•Pk+1 = Pk + 4 x Xk+1 + 6 = -17 + (4 x 1) + 6 = -7

Step-04:

This step is applicable here as the given centre point coordinates is (10, 10).

Xplot = Xc + X0 = 1 + 10 = 11
Yplot = Yc + Y0 = 10 + 10 = 20
Step-05:

Step-03 and Step-04 are executed similarly until Xplot => Yplot as follows-

Pk Pk+1 (Xk+1, Yk+1) (Xplot, Yplot)

(0, 10) (10, 20)


-17 -7 (1, 10) (11, 20)
-7 7 (2, 10) (12, 20)
7 -7 (3, 9) (13, 19)
-7 15 (4, 9) (14, 19) Algorithm calculates all the
points of octant-1 and
15 13 (5, 8) (15, 18) terminates.
13 19 (6, 7) (16, 17)
Algorithm Terminates
These are all points for Octant-1.
Now, the points of octant-2 are obtained using the mirror effect by swapping X
and Y coordinates.

Octant-1 Points Octant-2 Points

(10, 20) (17, 16)


(11, 20) (18, 15)
(12, 20) (19, 14)
(13, 19) (19, 13)
(14, 19) (20, 12)
(15, 18) (20, 11)
Now, the points for rest of the part
are generated by following the signs
of other quadrants.
(16, 17) (20, 10) The other points can also be
generated by calculating each octant
separately.

These are all points for Quadrant-1.


Here, all the points have been generated with respect to quadrant-1-

Quadrant-1 (X,Y) Quadrant-2 (-X,Y) Quadrant-3 (-X,-Y) Quadrant-4 (X,-Y)


(10, 20) (10, 20) (10, 0) (10, 0)
(11, 20) (9, 20) (9, 0) (11, 0)
(12, 20) (8, 20) (8, 0) (12, 0)
(13, 19) (7, 19) (7, 1) (13, 1)
(14, 19) (6, 19) (6, 1) (14, 1)
(15, 18) (5, 18) (5, 2) (15, 2)
(16, 17) (4, 17) (4, 3) (16, 3)
(17, 16) (3, 16) (3, 4) (17, 4)
(18, 15) (2, 15) (2, 5) (18, 5)
(19, 14) (1, 14) (1, 6) (19, 6)
(19, 13) (1, 13) (1, 7) (19, 7)
(20, 12) (0, 12) (0, 8) (20, 8)
(20, 11) (0, 11) (0, 9) (20, 9)
(20, 10) (0, 10) (0, 10) (20, 10)

These are all points of the Circle.


• PRACTICE PROBLEMS BASED
ON BRESENHAM LINE
DRAWING ALGORITHM-

You might also like