Raster conversion algorithms for line and circle
Download
1 / 19

Raster conversion algorithms for line and circle - PowerPoint PPT Presentation


  • 228 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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

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
Raster conversion algorithms: requirements

  • visual accuracy

  • spatial accuracy

  • speed







Digital differential algorithm
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

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
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 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
Circle generating algorithms

  • Direct

  • Polar coordinate based

  • Bresenham’s


Direct circle algorithm
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 coordinates

  • Polar coordinate equation

    x = xc + r cos

    y = yc + r sin

  • step through values of  from 0 to 2π


Optimisation and speed up
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
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


ad