DDA Line Drawing Algorithm
DDA Line Drawing Algorithm
line is
y= m. x + b
m is the slope of the line and b is the y intercept.
Given the endpoints of a line segment.
m = y2-y1 / x2-x1
b= y1-m.x1
Line Drawing (cont)
Also for any given interval ∆x along a line, we can
compute the corresponding y interval ∆y from
∆y= m. x
Similarly we can obtain the x interval ∆x
corresponding to a specified ∆y as
∆x= ∆y / m
These equations form the basis for determining
deflection voltages in analog devices.
Line Drawing (cont)
Also , for any given x interval ∆x along a line, we
can compute the corresponding y interval ∆y from
∆y= m. ∆ x
These equations form the basis for determining
deflection voltages in analog devices.
On Raster systems, lines are plotted with pixels,
and step sizes in the horizontal and vertical
directions are constrained by pixel separations.
Hence we ought to “sample” a line at discrete
positions and determine the nearest pixel to the line
at each sampled position.
Symmetry
If we could draw lines with positive slope (0<=slope<=1) we
would be done.
For a line with negative slope (0>=slope>=-1)
(x,-y) (x,y)
450
(-x,-y) (x,-y)
(-y,-x) (y,-x)
Code for drawing a line
……….
draw_fn = invert_y_draw
draw_pixel(y,x) Draw_line(PX, -PY, QX, -QY, draw_fn)
Desired Line
(xi+1, Round(yj+m))
(xi, yj)
(xi+1, yj+m)
(xi, Round(yj))
y2
y1
x1 x2