Circle Drawing Techniques are algorithms used in computer graphics to draw a circle efficiently on a pixel-based display.
👉 Since a circle is continuous but the screen has discrete pixels, we must approximate it using the best possible pixels.
A circle with center ((x_c, y_c)) and radius (r) is given by:
[ (x - x_c)^2 + (y - y_c)^2 = r^2 ]
A circle is highly symmetric, which helps reduce computation.
👉 If we find one point, we can generate 7 more points using symmetry.
If ((x, y)) is a point on the circle, then:
[ (x, y), (-x, y), (x, -y), (-x, -y) ] [ (y, x), (-y, x), (y, -x), (-y, -x) ]
👉 This reduces calculations to only 1/8th of the circle.
Use circle equation directly:
[ y = \pm \sqrt{r^2 - x^2} ]
Input center ((x_c, y_c)) and radius (r)
For each x:
Plot points using symmetry
Start at point: [ (x, y) = (0, r) ]
Initial decision parameter: [ p_0 = 1 - r ]
Input radius (r) and center ((x_c, y_c))
Set: [ x = 0,\quad y = r ]
Calculate: [ p = 1 - r ]
Repeat while (x < y):
If (p < 0): → Choose East pixel → (x = x + 1) → (p = p + 2x + 1)
Else: → Choose South-East pixel → (x = x + 1,\ y = y - 1) → (p = p + 2x + 1 - 2y)
Plot points using 8-way symmetry
For radius (r = 5):
Then compute next points step-by-step using decision parameter.
👉 Similar to midpoint algorithm (often considered a variation)
Select between:
| Method | Speed | Accuracy | Complexity |
|---|---|---|---|
| Polynomial | Slow | Good | Simple |
| Midpoint | Fast | High | Moderate |
| Bresenham | Very Fast | High | Moderate |
Show two candidate pixels:
Highlight selected pixel
Circle equation: [ (x - x_c)^2 + (y - y_c)^2 = r^2 ]
Use 8-way symmetry to reduce work
Midpoint Algorithm is most important
Decision parameter: [ p = 1 - r ]
Choose between:
Algorithms avoid floating-point operations for speed
Open this section to load past papers