0% found this document useful (0 votes)
12 views22 pages

Unit 1

The document discusses line drawing algorithms in computer graphics, focusing on the Digital Differential Analyzer (DDA) and Bresenham's algorithm. DDA uses floating point arithmetic and can suffer from round-off errors, while Bresenham's algorithm is faster and relies solely on integer calculations. Examples and step-by-step procedures for both algorithms are provided, highlighting their advantages and limitations.

Uploaded by

sankalp.indish23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views22 pages

Unit 1

The document discusses line drawing algorithms in computer graphics, focusing on the Digital Differential Analyzer (DDA) and Bresenham's algorithm. DDA uses floating point arithmetic and can suffer from round-off errors, while Bresenham's algorithm is faster and relies solely on integer calculations. Examples and step-by-step procedures for both algorithms are provided, highlighting their advantages and limitations.

Uploaded by

sankalp.indish23
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Line Drawing Algorithms

1. A line in Computer graphics is a portion of straight line


that extends indefinitely in opposite direction.
2. It is defined by its two end points.
3. Its density should be independent of line length.
the slope intercept equation for a line:
y = mx + b (1)
where, m = Slope of the line
b = the y intercept of a line
The two endpoints of a line segment are specified at
positions (x1,y1) and (x2,y2).
y
P2(x2,y2)

P1(x1,y1)
b

0
x
We can determine the value for slope m & b intercept as
m = y2-y1/x2-x1
i.e. m= Δy/ Δx (2)
Example 1 The endpoints of line are(0,0) & (6,18).
Compute each value of y as x steps from 0 to 6 and
plot the result.
Solution : Equation of line is y= mx +b
m = y2-y1/x2-x1= 18-0/6-0 = 3
Next the y intercept b is found by plugging y1& x1 into
the equation y = 3x + b,
0 = 3(0) + b. Therefore, b=0, so the equation for the
line is y= 3x.
The challenge is to find a way to calculate the next x,y
position by previous one as quickly as possible.
DDA Algorithm
The Digital differential analyzer (DDA) algorithm
is an incremental scan-conversion method.
Such an approach is characterized by performing
calculations at each step using results from the
preceding step.
Algorithm:
(x1,y1) (x2,y2) are the end points and dx, dy are the
float variables.
Where dx= abs(x2-x1) and dy= abs(y2-y1)
(i) If dx >=dy then
length = dx
else
length = dy
endif
(ii) dx = (x2-x1)/length
dy = (y2-y1)/length
(iii) x = x1 + 0.5
y = y1 + 0.5
(iv) i=0
(v) Plot ((x), (y))
(vi) x = x + dx
y = y + dy
(vii) i=i+1
(viii) If i < length then go to step (v)
(ix) Stop
Example 2 Scan convert a line having end points (3,2) &
(4,7) using DDA.
Solution: dx= x2 - x1 = 4-3 = 1
dy= y2 - y1 = 7-2 = 5
As, dx < dy then
length = y2-y1 = 5
dx = (x2-x1)/ length = 1/5 =0.2
dy = (y2-y1)/ length = 5/5 = 1
x1 y1 x2 y2 L dx dy i x y Result Plot
3 2 4 7 5 .2 1 0 3.5 2.5 3.5, 2.5 3,2
1 3.7 3.5 3.7,3.5 3,3
2 3.9 4.5 3.9,4.5 3,4
3 4.1 5.5 4.1,5.5 4,5
4 4.3 6.5 4.3,6.5 4,6
5 4.5 7.5 4.5,7.5 4,7
Limitations of DDA:
(1) The rounding operation & floating point arithmetic
are time consuming procedures.
(2) Round-off error can cause the calculated pixel
position to drift away from the true line path for
long line segment.
The Bresenham Line Algorithm

⚫The Bresenham algorithm is another incremental scan


conversion algorithm

⚫The big advantage of this algorithm is that it uses only


integer calculations
The Big Idea
Move across the x axis in unit intervals and at each step
choose between two different y coordinates
For example, from
5 position (2, 3) we have
(xk+1,
yk+1) to choose between (3,
4
(xk, 3) and (3, 4)
yk)
3 We would like the
(xk+1,
yk) point that is closer to
2
the original line
2 3 4 5
Deriving The Bresenham Line Algorithm
At sample position x +1 the yk+1 d
k upper
vertical separations from the y
mathematical line are labelled dlower
yk
dupper and dlower
xk+1
The y coordinate on the mathematical line at xk+1
is:
The Bresenham Line Algorithm
BRESENHAM’S LINE DRAWING ALGORITHM

1. Input the two line end-points, storing the left end-point in (x1,
y1)
2. Calculate the constants Δx i.e. dx, Δy i.e. dy, 2Δy and 2 Δx,
get the first value for the decision parameter as:

3. Initialise starting
4. Initialise i=1 as a counter,
TheOtherwise,
Bresenham the nextLine Algorithm
point to plot is (xk+1,(cont…)
yk+1) and:

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

ACHTUNG! The algorithm and derivation above assumes


slopes are less than 1. for other slopes we need to adjust the
algorithm slightly.
Adjustment
For m>1, we will find whether we will increment x while
incrementing y each time.

After solving, the equation for decision parameter pk will be


very similar, just the x and y in the equation will get
interchanged.
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 - 2Δx: -4
Calculate the initial decision parameter p :
0
⚫ p0 = 2Δy – Δx = 6
Bresenham Example (cont…)
1 k pk (xk+1,yk+1)
81 0
71 1
61 2

51 3
4
41
5
31
6
21 7
11 8
0 9
2 2 2 2 2 2 2 2 2 2 3
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…)
k pk (xk+1,yk+1)
1
81 0

71 1
2
61
3
51
4
41
5
31 6
21 7
11 8

0
2 2 2 2 2 2 2 2 2 2 3
Bresenham Line Algorithm Summary
The Bresenham line algorithm has the following advantages:
⚫ An 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

You might also like