Raster conversion algorithms for line and circle

1 / 19

# Raster conversion algorithms for line and circle - PowerPoint PPT Presentation

Raster conversion algorithms for line and circle. Introduction - Pixel addressing - Primitives and attributes Line drawing algorithms - DDA - Bresenham Circle generating algorithms - Direct method - Bresenham algorithm. Pixel addressing in raster graphics.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Raster conversion algorithms for line and circle' - betty_james

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Raster conversion algorithms for line and circle

Introduction

- Primitives and attributes

Line drawing algorithms

- DDA

- Bresenham

Circle generating algorithms

- Direct method

- Bresenham algorithm

Raster conversion algorithms: requirements
• visual accuracy
• spatial accuracy
• speed
Digital Differential Algorithm
• input line endpoints, (x0,y0) and (xn, yn)
• set pixel at position (x0,y0)
• calculate slope m
• Case |m|≤1: repeat the following steps until (xn, yn) is reached:
• yi+1 = yi + y/ x
• xi+1 = xi + 1
• set pixel at position (xi+1,Round(yi+1))
• Case |m|>1: repeat the following steps until (xn, yn) is reached:
• xi+1 = xi + x/ y
• yi+1 = yi + 1
• set pixel at position (Round(xi+1), yi+1)

y = mx + b

d2

y = m(x+1) + b

d1

Bresenham\'s line algorithm

y = mx + b

y

x

x+1

Bresenham\'s line algorithm (slope ≤ 1)
• input line endpoints, (x0,y0) and (xn, yn)
• calculate x = xn - x0 and y = yn - y0
• calculate parameter p0 = 2 y - x
• set pixel at position (x0,y0)
• repeat the following steps until (xn, yn) is reached:
• if pi < 0
• set the next pixel at position (xi +1, yi )
• calculate new pi+1 = pi + 2 y
• if pi ≥ 0
• set the next pixel at position (xi +1, yi + 1 )
• calculate new pi+1 = pi + 2(y - x)
DDA versus Bresenham’s Algorithm
• DDA works with floating point arithmetic
• Rounding to integers necessary
• Bresenham’s algorithm uses integer arithmetic
• Constants need to be computed only once
• Bresenham’s algorithm generally faster than DDA
Circle generating algorithms
• Direct
• Polar coordinate based
• Bresenham’s
Direct circle algorithm
• Cartesian coordinates
• Circle equation:

( x - xc )2 + ( y - yc )2 = r2

• Step along x axis from xc - r to xc + r and calculate

y = yc ± r2 - ( x - xc )2

Polar coordinates
• Polar coordinate equation

x = xc + r cos

y = yc + r sin

• step through values of  from 0 to 2π
Optimisation and speed-up
• Symmetry of a circle can be used
• Calculations of point coordinates only for a first one-eighth of a circle

(-x,y)

(x,y)

(-y,x)

(y,x)

(-y,-x)

(y,-x)

(-x,-y)

(x,-y)

Bresenham’s circle algorithm

2. Plot a point at (0, r)

3. Calculate the initial value of the decision parameter as p0 = 5/4 – r ≈ 1 – r

4. At each position xk, starting at k = 0, perform the following test:

if pk < 0

plot point at (xk +1, yk)

compute new pk+1 = pk + 2xk+1 + 1

else

plot point at (xk + 1, yk – 1)

compute new pk+1 = pk + 2xk+1 + 1 – 2yk+1

where xk+1 = xk + 1 and yk+1 = yk - 1

6. Repeat steps 4 and 5 until x  y