Line Generation Algorithm PDF
Line Generation Algorithm PDF
Line Generation Algorithm PDF
A line connects two points. It is a basic element in graphics. To draw a line, you need two points
between which you can draw a line. In the following three algorithms, we refer the one point of line
as X 0 , Y0 and the second point of line as X 1 , Y1 .
DDA Algorithm
Digital Differential Analyzer DDA algorithm is the simple line generation algorithm which is
explained step by step here.
dx = X1 - X0
dy = Y1 - Y0
Step 3 − Based on the calculated difference in step-2, you need to identify the number of steps to
put pixel. If dx > dy, then you need more steps in x coordinate; otherwise in y coordinate.
Step 5 − Put the pixel by successfully incrementing x and y coordinates accordingly and complete
the drawing of the line.
For example, as shown in the following illustration, from position 2, 3 you need to choose between
3, 3 and 3, 4. You would like the point that is closer to the original line.
At sample position X k + 1, the vertical separations from the mathematical line are labelled as dupper
and dlower.
Y = m$X k$ + 1 + b
dlower = y − yk
= m(X k + 1) + b − Yk
and
dupper = (yk + 1) − y
= Yk + 1 − m(X k + 1) − b
You can use these to make a simple decision about which pixel is closer to the mathematical line.
This simple decision is based on the difference between the two pixel positions.
Let us substitute m with dy/dx where dx and dy are the differences between the end-points.
dy
dx(dlower − dupper) = dx(2 dx (xk + 1) − 2yk + 2b − 1)
So, a decision parameter P k for the kth step along a line is given by −
pk = dx(dlower − dupper)
= 2dy. xk − 2dx. yk + C
The sign of the decision parameter P k is the same as that of dlower − dupper.
If pk is negative, then choose the lower pixel, otherwise choose the upper pixel.
Remember, the coordinate changes occur along the x axis in unit steps, so you can do everything
with integer calculations. At step k+1, the decision parameter is given as −
pk +1 = 2dy. xk +1 − 2dx. yk +1 + C
p0 = 2dy − dx
Now, keeping in mind all the above points and calculations, here is the Bresenham algorithm for
slope m < 1 −
Step 1 − Input the two end-points of line, storing the left end-point in (x0 , y0 ).
Step 3 − Calculate the constants dx, dy, 2dy, and 2dy– 2dx and get the first value for the decision
parameter as −
p0 = 2dy − dx
Step 4 − At each X k along the line, starting at k = 0, perform the following test −
pk +1 = pk + 2dy
Otherwise,
pk +1 = pk + 2dy − 2dx
For m > 1, find out whether you need to increment x while incrementing y each time.
After solving, the equation for decision parameter P k will be very similar, just the x and y in the
equation gets interchanged.
Mid-Point Algorithm
Mid-point algorithm is due to Bresenham which was modified by Pitteway and Van Aken. Assume
that you have already put the point P at x, y coordinate and the slope of the line is 0 ≤ k ≤ 1 as
shown in the following illustration.
Now you need to decide whether to put the next point at E or N. This can be chosen by identifying
the intersection point Q closest to the point N or E. If the intersection point Q is closest to the point
N then N is considered as the next point; otherwise E.
To determine that, first calculate the mid-point Mx + 1, y + ½. If the intersection point Q of the line
with the vertical line connecting E and N is below M, then take E as the next point; otherwise take N
as the next point.
Fx, y = mx + b - y