Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Successfully reported this slideshow.

Like this presentation? Why not share!

No Downloads

Total views

6,604

On SlideShare

0

From Embeds

0

Number of Embeds

1

Shares

0

Downloads

268

Comments

0

Likes

7

No embeds

No notes for slide

- 1. Bresenham’s Line Algorithm Bresenham’s algorithm is a highly efficient incremental method for scan converting lines.Working: Let we want to scan convert a line with slope 0<m<1. We start with pixel P1’(x1’,y1’) then select subsequent pixels in the horizontal direction towards P2’(x2’,y2’).Once a pixel is chosen at any step, the next pixel is either the one to its right or the one to its right & up due to the limit on m.
- 2. The line is best approximated by those pixelsthat fall the least distance from its true pathbetween P1’ and P2’.The coordinates of the last chosen pixel upon entering step i are (xi,yi). The task is to choose the next one between the bottom pixel S & top pixel T.(a) If S is chosen, we have xi+1 = xi +1 yi+1 = yi
- 3. P2’ Tyi+1 t s yi P1’ S xi xi +1
- 4. (b) If T is chosen, we have xi+1 = xi + 1 yi+1 = yi + 1The actual y coordinate of line at x = xi+1 is y = mx +b = m xi+1 + b = m(xi + 1) + b ______(1)The distance from S to actual line in y direction is s = y – yi.The distance from T to actual line in y direction is t = (yi+1) – y
- 5. Now consider the difference between these twodistance values s – t.When s-t < 0 we have s < t & the closest pixel is S.When s-t > 0 we have s > t & the closest pixel is T.We also choose T when s – t = 0.The difference is:-s – t = ( y – yi ) – [(yi+1) – y] = y – yi – yi – 1 + y = 2y – 2yi – 1
- 6. From (1) y = m(xi + 1) + bs–t = 2( m(xi + 1) + b ) – 2yi – 1 = 2m(xi + 1) + 2b – 2yi –1 _____(B)Put m = ∆y / ∆xs – t = 2∆y (xi + 1) + 2b – 2yi –1 ∆x∆x (s – t) = 2∆y (xi + 1) + ( 2b – 2yi –1 ) ∆x
- 7. Take decision variable di = ∆x (s – t) ______(A)di = 2∆y(xi + 1) + ( 2b – 2yi –1 ) ∆x = 2∆yxi + 2∆y + ( 2b – 2yi –1 ) ∆x = 2∆yxi + 2∆y + 2b∆x – 2yi∆x – ∆x = 2∆yxi – 2yi∆x + 2∆y + 2b∆x – ∆x = 2∆yxi – 2yi∆x + 2∆y + (2b– 1) ∆x = 2∆yxi – 2∆x yi + C _____(2)where, C = 2∆y + (2b– 1) ∆xSimilarly, di+1 = 2∆y xi+1 – 2∆x yi+1 + C _____(3)
- 8. Subtract (2) from (3), we getdi+1 – di =2∆y xi+1 – 2∆x yi+1 +C - 2∆yxi + 2∆x yi - CPut xi+1 = xi +1di+1 – di = 2∆y (xi +1) – 2∆x yi+1 - 2∆yxi + 2∆x yi = 2∆y (xi +1) – 2∆x yi+1 - 2∆yxi + 2∆x yi = 2∆y (xi +1) - 2∆yxi – 2∆x yi+1 + 2∆x yi = 2∆y (xi +1 - xi ) – 2∆x (yi+1 – yi ) di+1 = di + 2∆y - 2∆x (yi+1 – yi ) ________(4)Now if choose pixel T, it means that s – t > 0
- 9. Then, yi+1 = yi + 1 put in (4)di+1 = di + 2∆y - 2∆x (yi + 1 - yi) = di + 2∆y - 2∆x = di + 2(∆y - ∆x) Now if choose pixel S, it means that s - t < 0 di < 0 as di = (s – t)∆xthen, yi+1 = yi put in (4)di+1 = di + 2∆y - 2∆x (yi - yi) = di + 2∆y
- 10. Thus we have, di+1 = di + 2(∆y - ∆x) if di > 0 di + 2∆y if di < 0Now we calculate d1 from the original valueof diFrom (A) di = ∆x(s – t)From (B) = ∆x(2m(xi + 1) + 2b – 2yi –1 ) d1 = ∆x(2m(x1 + 1) + 2b – 2y1 –1 ) = ∆x[2(mx1 + b - y1) + 2m –1 )
- 11. But y = mx + b mx + b – y = 0 mx1 + b – y1 = 0Thus d1 = ∆x[2(0) + 2m –1]d1 = ∆x[ 2m – 1] = ∆x [ 2∆y –1 ] ∆xd1 = 2∆y – ∆x
- 12. Algorithm:Algorithm for scan converting a line fromP1’(x1’,y1’) to P2’(x2’,y2’) with x1’<x2’ & 0<m<1.(i) int x = x1’ and y = y1’(ii) int dx = x2’ – x1’ dy = y2’ – y1’ dT = 2(dy – dx) dS = 2dy(iii) int d = 2dy – dx
- 13. (iv) Setpixel (x,y)(v) while (x < x2’) { x++ if ( d < 0) d = d + dS else { y++ d = d + dT } Setpixel (x,y) }
- 14. Example 1 Scan convert a line from (1,1) &(8,5) with 0<m<1. x1’= 1, y1’= 1, x2’ = 8, y2’ = 5 x= y= dx= dy= dT= dS= d= Plot x1’ y1’ x2’-x1’ y2’- y1’ 2(dy-dx) 2dy 2dy-dx 1 1 7 4 -6 8 1 1,1 2 2 -5 2,2 3 3 3,2 4 3 -3 4,3 5 5 5,3 6 4 -1 6,4

No public clipboards found for this slide

Be the first to comment