- 228 Views
- Uploaded on

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

**An Image/Link below is provided (as is) to download presentation**

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

- Pixel addressing

- 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)

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

1. Input radius r

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

5. Determine symmetry points in the other seven octants and plot points

6. Repeat steps 4 and 5 until x y

Download Presentation

Connecting to Server..