• Tidak ada hasil yang ditemukan

PDF Professor Dr. Md. Ismail Jabiullah - Daffodil International University

N/A
N/A
Protected

Academic year: 2023

Membagikan "PDF Professor Dr. Md. Ismail Jabiullah - Daffodil International University"

Copied!
18
0
0

Teks penuh

(1)

Bresenham’s Line Drawing Algorithm

Professor Dr. Md. Ismail Jabiullah

(2)

2 of

39

Contents

Big Idea of Bresenham’s Line Drawing Algorithm

Deriving the Bresenham’s Line Drawing Algorithm

Bresenham’s Line Drawing Algorithm

Example of Bresenham’s Line Drawing Algorithm

Exercise

(3)

The Bresenham’s Line Algorithm

 The Bresenham’s algorithm is another incremental scan conversion algorithm

 The big advantage of this

algorithm is that it uses only integer calculations

J a c k B r e s e n h a m worked for 27 years at IBM before entering academia. Bresenham developed his famous algorithms at IBM in t h e e a r l y 1 9 6 0 s

(4)

The Big Idea

Move across the x axis in unit intervals and at each step choose between two different y- coordinates

2 3 4 5

2 4

3 5

For example, from position (2, 3) we have to choose

between (3, 3) and (3, 4)

We would like the

point that is closer to the original line

(xk, yk)

(xk+1, yk) (xk+1, yk+1)

(5)

The

y

coordinate on the mathematical line at

x

k

+1

is:

Deriving The Bresenham Line Algorithm

At sample position

x

k

+1

the vertical

separations from the mathematical line are labelled

d

upper and

d

lower

b x

m

y  (

k

 1 ) 

y yk yk+1

xk+1

dlower dupper

(6)

So,

d

upper and

d

lower are given as follows:

and:

We can use these to make a simple decision about which pixel is closer to the mathematical line

Deriving The Bresenham Line Algorithm (cont…)

k

lower y y

d  

k

k b y

x

m   

 ( 1) y y

dupper  ( k 1) 

b x

m

yk   k  

 1 ( 1)

(7)

This simple decision is based on the

difference between the two pixel positions:

Let’s substitute

m

with ∆

y

/∆

x

where ∆

x

and

y

are the differences between the end-points:

Deriving The Bresenham Line Algorithm (cont…)

1 2

2 )

1 (

2    

d m x y b

d

lower upper k k

) 1 2

2 )

1 (

2 ( )

(

x y b

x x y

d d

x lower upper k k

) 1 2

( 2

2

2

y xk x yk y x b

c y

x x

y k k

2 2

(8)

So, a decision parameter

p

k for the

k

th step

along a line is given by:

The sign of the decision parameter

p

k is the

same as that of

d

lower

d

upper

If

p

k is negative, then we choose the lower pixel, otherwise we choose the upper pixel

Deriving The Bresenham Line Algorithm (cont…)

c y

x x

y

d d

x p

k k

upper lower

k

2 2

) (

(9)

Remember coordinate changes occur along the

x

axis in unit steps so we can do

everything with integer calculations

At step

k

+1 the decision parameter is given as:

Subtracting

p

k from this we get:

Deriving The Bresenham Line Algorithm (cont…)

c y

x x

y

pk1  2  k1  2  k1

) (

2 )

(

2 1 1

1 k k k k k

k p y x x x y y

p      

(10)

But,

x

k+1 is the same as

x

k

+1

so:

where

y

k+1 -

y

k is either 0 or 1 depending on the sign of

p

k

The first decision parameter p0 is evaluated at (x0, y0) is given as:

Deriving The Bresenham Line Algorithm (cont…)

) (

2

2 1

1 k k k

k p y x y y

p     

x y

p0  2  

(11)

The Bresenham Line Algorithm

BRESENHAM’S LINE DRAWING ALGORITHM (for |m| < 1.0)

1. Input the two line end-points, storing the left end-point in (x0, y0)

2. Plot the point (x0, y0)

3. Calculate the constants Δx, Δy, 2Δy, and (y - x)

and get the first value for the decision parameter as:

4. At each xk along the line, starting at k = 0, perform the following test. If pk < 0, the next point to plot is

(xk+1, yk) and:

x y

p0 2

y p

pk1 k 2

(12)

The Bresenham Line Algorithm…

Otherwise, the next point to plot is (xk+1, yk+1) and:

5. Repeat step 4 (Δx – 1) times

x y

p

pk1 k 2 2

(13)

Bresenham Example

Let’s have a go at this

Let’s plot the line from (20, 10) to (30, 18) First off calculate all of the constants:

– Δx: 10 – Δy: 8

– 2Δy: 16

– 2Δy - x: -4

Calculate the initial decision parameter

p

0:

p0 = 2Δy – Δx = 6

(14)

Bresenham Example…

17 16 15 14 13 12 11 10 18

29 27

26 25

24 23

22 21

20 28 30

k pk (xk+1,yk+1) 0

1 2 3 4 5 6 7 8 9

(15)

Bresenham Exercise

Go through the steps of the Bresenham line drawing algorithm for a line going from

(21,12) to (29,16)

(16)

Bresenham Exercise …

17 16 15 14 13 12 11 10 18

29 27

26 25

24 23

22 21

20 28 30

k pk (xk+1,yk+1)

0 1 2 3 4 5 6 7 8

(17)

Bresenham Line Algorithm Summary

The Bresenham line algorithm has the following advantages:

– A fast incremental algorithm – Uses only integer calculations

Comparing this to the DDA algorithm, DDA has the following problems:

– Accumulation of round-off errors can make the pixelated line drift away from what was intended

– The rounding operations and floating point arithmetic involved are time consuming

(18)

Course Website: http://www.comp.dit.ie/bmacnamee

Thanks

Referensi

Dokumen terkait

Application development uses the FAST algorithm as detection of home catalog markers to define how well images can be detected and tracked.. The FAST algorithm will calculate every