Lecture 4 Scan Conversion Bresenhams Algorithm
Lecture 4 Scan Conversion Bresenhams Algorithm
4
(x , y )
k k
between (3, 3) and
3 (3, 4)
(x +1, y )
We would like the
k k
2
point that is closer to
2 3 4 5
the original line
Deriving The Bresenham Line Algorithm
2y xk 2x yk c
Deriving The Bresenham Line Algorithm
(cont…)
So, a decision parameter pk for the kth step
along a line is given by:
pk x(d lower d upper )
2y xk 2x yk c
The sign of the decision parameter pk is the
same as that of dlower – dupper
If pk is negative, then we choose the lower
pixel, otherwise we choose the upper pixel
Deriving The Bresenham Line Algorithm
(cont…)
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:
pk 1 2y xk 1 2x yk 1 c
Subtracting pk from this we get:
pk 1 pk 2y ( xk 1 xk ) 2x( yk 1 yk )
Deriving The Bresenham Line Algorithm
(cont…)
But, xk+1 is the same as xk+1 so:
pk 1 pk 2y 2x( yk 1 yk )
where yk+1 - yk is either 0 or 1 depending on
the sign of pk
The first decision parameter p0 is evaluated
at (x0, y0) is given as:
p0 2y x
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 (2Δy - 2Δx)
and get the first value for the decision parameter as:
p0 2y x
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:
pk 1 pk 2y
The Bresenham Line Algorithm (cont…)
18 k pk (xk+1,yk+1)
17 0
16 1
15 2
3
14
4
13
5
12
6
11
7
10
8
20 21 22 23 24 25 26 27 28 29 30 9
Bresenham Exercise
Go through the steps of the Bresenham line
drawing algorithm for a line going from
(21,12) to (29,16)
Bresenham Exercise (cont…)
18 k pk (xk+1,yk+1)
17 0
16 1
15 2
14 3
13 4
5
12
6
11
7
10
8
20 21 22 23 24 25 26 27 28 29 30
Bresenham Line Algorithm Summary