0% found this document useful (0 votes)
94 views5 pages

Bresebham Line Drawing Intro

The Bresenham algorithm is an incremental line drawing algorithm that uses only integer calculations. It moves across the x-axis in unit intervals, choosing between two possible y-coordinates at each step to select the point closer to the original line. The algorithm calculates a decision parameter Pk at each step k to determine whether to increment the y-coordinate or keep it the same when advancing to the next x value. It efficiently draws lines on a raster display by minimizing deviations from the true line path.

Uploaded by

Tanmay Gupta
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)
94 views5 pages

Bresebham Line Drawing Intro

The Bresenham algorithm is an incremental line drawing algorithm that uses only integer calculations. It moves across the x-axis in unit intervals, choosing between two possible y-coordinates at each step to select the point closer to the original line. The algorithm calculates a decision parameter Pk at each step k to determine whether to increment the y-coordinate or keep it the same when advancing to the next x value. It efficiently draws lines on a raster display by minimizing deviations from the true line path.

Uploaded by

Tanmay Gupta
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/ 5

What is Bresenham’s Line Drawing Algorithm?

The Bresenham algorithm is another incremental scan conversion algorithm. The big
advantage of this algorithm is that, it uses only integer calculations. Moving across the x
axis in unit intervals and at each step choose between two different y coordinates.

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 Xk+1, the vertical separations from the mathematical line are labelled
as dupper and dlower.
From the above illustration, the y coordinate on the mathematical line at xk+1 is –

Y = m(Xk+1) + b

So, dupper and dlower are given as follows −

Dlower = y−yk

= m(Xk+1)+b−Yk

and

dupper = (yk+1)−y

= Yk+1−m(Xk+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.

dlower−dupper = 2m(xk+1)−2yk+2b−1
Let us substitute m with dy/dx where dx and dy are the differences between the end-
points.

dx (dlower−dupper) = dx (2dy/dx(xk+1)−2yk+2b−1)

= 2dy.xk−2dx.yk+2dy+dx (2b−1)

= 2dy.xk−2dx.yk+C

So, a decision parameter Pk 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 Pk 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

Subtracting pk from this we get −

pk+1−pk = 2dy(xk+1−xk)−2dx(yk+1−yk)

But, xk+1 is the same as (xk)+1. So −

pk+1 = pk+2dy−2dx(yk+1−yk)

Where, Yk+1–Yk is either 0 or 1 depending on the sign of Pk.

{as for Pk +ive, we choose yk+1 = Yk +1 so this will be 1, and for Pk –ive, we choose yk+1 =yk so this will
be 0}

The first decision parameter p0p0 is evaluated at (x0,y0) is given as −


p0 = 2dy−dx

as initial point (Xk, Yk)-

Pk =2 dy Xk + 2dy -2dx Yk + dx (2b-1)

=“ + dx (2 (y-mx) -1)

= “ + dx (2 (y- (dy/dx)x) -1)

= “ + 2y dx -2x dy –dx

Now as initial point is xk, yk; means x=xk and y=yk.

Pk= 2 dy –dx

Now, keeping in mind all the above points and calculations, here is the Bresenham Line
Drawing algorithm for slope m < 1 −

Step 1 − Input the two end-points of line, storing the left end-point in (x0,y0).

Step 2 − Plot the point (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 Xk along the line, starting at k = 0, perform the following test −

If pk < 0, the next point to plot is (xk+1,yk) and

pk+1 = pk+2dy
Otherwise,

pk+1 = pk+2dy−2dx

if Pk>= 0, then Xk+1 = Xk +1 and Yk+1 = Yk +1 so next point is (Xk+1, Yk+1)

if Pk <0, then Xk+1 =Xk +1 and Yk+1 = Yk so next point is (Xk+1, Yk)

Step 5 − Repeat step 4 until x0 < = x1.

For m > 1, increment y each time and increment x according to the value of p.

After solving, the equation for decision parameter Pk will be very similar, just the x and y in
the equation gets interchanged.

You might also like