0% found this document useful (0 votes)
67 views

Lecture 5 - Plotting Points and Lines

The document discusses algorithms for plotting points and lines on a screen, including the Digital Differential Analyzer (DDA) algorithm and Bresenham's line and circle drawing algorithms. It provides details on how each algorithm works, including examples of applying the DDA and Bresenham's line algorithm to draw specific lines. Practice questions are also included asking to apply the algorithms to draw additional lines and circles.

Uploaded by

frank musa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Lecture 5 - Plotting Points and Lines

The document discusses algorithms for plotting points and lines on a screen, including the Digital Differential Analyzer (DDA) algorithm and Bresenham's line and circle drawing algorithms. It provides details on how each algorithm works, including examples of applying the DDA and Bresenham's line algorithm to draw specific lines. Practice questions are also included asking to apply the algorithms to draw additional lines and circles.

Uploaded by

frank musa
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Question

• What is an algorithm?
Plotting points and lines
• Plotting points
Illuminate a phosphor dot on a CRT

• Plotting lines
i. Specify the endpoint coordinates of each
line segment
ii. Fill the straight line path between the
end-points
• Line drawing is accomplished by calculating
intermediate positions along the line path between
two specified end point positions.
• An output device is then directed to fill in these
positions between the end points
• Discrete coordinate positions along the line path are
calculated from the equation of the line.
Line /Circle drawing Drawing
Algorithms

• Digital Differential Analyzer (DDA)


Algorithm
• Bresenham’s Line Algorithm
• Bresenham's Circle Drawing Algorithm

: know the algorithm and apply it given end


coordinates.
The DDA algorithm
1. The DDA Algorithm
Algorithm Description:

Step 1 : Accept Input as two endpoint pixel positions

Step 2: Horizontal and vertical differences between the endpoint positions are
assigned to parameters dx and dy (Calculated dx= xb - xa and dy = yb - ya).

Step 3: The difference with the greater magnitude determines the value of
parameter steps.

Step 4 : Starting with pixel position (xa, ya), determine the offset (m) needed at
each step to generate the next pixel position along the line path.

Step 5: Loop the following process for steps number of times


• a. Use a unit of increment or decrement in the x and y direction
• b. if xa is less than xb the values of increment in the x and y directions are 1 and
m
• c. if xa is greater than xb then the decrements -1 and – m are used.
Example : Consider the line from (0,0) to
(4,6)

1. xa=0, ya =0 and xb=4 yb=6

2. dx=xb-xa = 4-0 = 4 and


dy=yb-ya=6-0= 6

3. x=0 and y=0

4. 4 > 6 (false) so, steps (m) =6

5. Calculate xIncrement = dx/steps = 4 / 6 = 0.66 and yIncrement = dy/steps =6/6=1

6. Iterate the calculation for xIncrement and yIncrement for steps(6)


{yk+1 = yk + m ; xk+1 = xk + (1/m) } or
{yk+1 = yk – m ; xk+1 = xk-1(1/m) for Δx=-1 }

8. Tabulation of the each iteration


DDA

Advantages of DDA
• 1. It is the simplest algorithm
• 2. It is a is a faster method for calculating pixel
positions
Disadvantages of DDA Algorithm
• 1. Floating point arithmetic in DDA algorithm is
still time-consuming
• 2. End point accuracy is poor
Practice Question

• Explain the stages of the DDA algorithm,


and use it to plot the line from point (1,1)
to (5,7)
[10]
Bresenham Line-Drawing algorithm
2. Bresenham Line Algorithm

• A more efficient approach


• Basis of the algorithm:

Start position

• From start position decide A or B next 14


In general:
Note:

• For a line with gradient  1


d0 = 2dx – dy
if di  0 then xi+1 = xi
di+1 = di + 2dx
if di ≥ 0 then xi+1 = xi + 1
di+1 = di + 2(dx – dy)
yi+1 = yi + 1

16
Bresenham Line Drawing

To illustrate the algorithm, we digitize the line with endpoints (20, 10) and (30, 18).
This line has a slope of 0.8, with

∆x = 10, ∆ y =8

The initial decision parameter has the value:


p0 = 2 ∆ y − ∆ x =6
and the increments for calculating successive decision parameters are
2 ∆ y = 16, 2 ∆ y − 2 ∆ x = −4

We plot the initial point (x0, y0) = (20, 10), and determine successive pixel positions
along the line path from the decision parameter as:
Bresenham Line Drawing
Practice Question

• Use Bresenham’s line drawing algorithm to


draw a line from point (1,1) to (5,7).
• Use Bresenham’s line drawing algorithm to draw a
line from point (5,5) to (15,20).
3. Bresenham’s Circle algorithm
• Step through x-axis to determine y-
values

21
Circle Algorithms

• Use 8-fold symmetry and only compute pixel


positions for the 45° sector.
(-x, y) (x, y)

(-y, x) (y, x)
45°

(-y, -x) (y, -x)

(-x, -y) (x, -y)


22
Bresenham’s Circle Algorithm

p1 p3
yi
D(si)
yi - 1 D(ti)
p2

xi xi + 1
After point p1, do we choose p2 or p3?
x0 = 0
y0 = r
p0 = 3 – 2r

if pi < 0 then
yi+1 = yi
pi+1 = pi + 4xi + 6
xi+1 = xi + 1
else if pi ≥ 0 then
yi+1 = yi – 1
pi+1 = pi + 4(xi – yi) + 10

• Stop when xi ≥ yi and determine symmetry points in the


other octants
24
r = 10
p0 = 3 – 2r = -17
Initial point (x0, y0) = (0, 10)
10    

i pi xi, yi 9  
0 -17 (0, 10) 8 
7 
1 -11 (1, 10)
6 
2 -1 (2, 10)
5 
3 13 (3, 10) 4 
4 -5 (4, 9) 3 
5 17 (5, 9) 2 
1 
7
0 
0 1 2 3 4 5 6 7 8 9 10
25
• Draw the circle with r = 12 using the
Bresenham algorithm.

• Draw the circle with r = 14 and center at (15,


10).

26

You might also like