Consider the midpoint (or Bresenham) algorithm for rasterizing lines given below:
(1) Input (x1, y1) and (x2, y2)
(2) y = y1
(3) d = f(x1 + 1, y1 + ½) // f is the implicit form of a line
(4) for x = x 1 to x 2
(5) do
(6) plot(x,y)
(7) if(d<0)
(8) then
(9) y = y + 1
(10) d = d + (y1 - y2) + (x2 - x1)
(11) else
(12) d = d + (y1 - y2)
(13) end
(14) end
Which statements are true?
P: For a line with slope m>1, we should change the outer loop in line (4) to be over y.
Q: Lines (10) and (12) update the decision variable d through an incremental evaluation of the line equation f.
R: The algorithm fails if d is ever 0.
1
Q and R only
2
P only
3
P and Q only
4
P, Q and R