Sie sind auf Seite 1von 7

8/12/2009

BRESENHAM'S LINE ALGORITHM BRESENHAMS LINE DRAWING ALGORITHM


y = mx + b

Yi Xi Xi+1

Nihar Ranjan Roy

Nihar Ranjan Roy

BRESENHAM'S LINE ALGORITHM


WORKING PRINCIPAL
y = mx + b D =0

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


D=d1-d2
Selection Any one pixel Lower pixel is chosen Upper Pixel Yi+1 Y Yi Xi Xi+1 d2 d1 y = mx + b

D=d1-d2
Yi

d2 d1

<0 >0

Decision Parameter

Xi

Xi+1

Nihar Ranjan Roy

Nihar Ranjan Roy

8/12/2009

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


y = mx + b

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


d1=y - yi d2=yi+1 - y
y = mx + b

Yi+1 y = m(x+1) + b Yi Xi Xi+1

d2 d1

y = m(x+1) + b

Yi+1 Yi Xi Xi+1

d2 d1

Nihar Ranjan Roy

Nihar Ranjan Roy

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


d1=y - yi d2=yi+1 - y
y = m(x+1) + b Yi+1 Yi
d2 d1

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


D= d1 d2 ((Yi+1- (m(Xi+1)+b))

y = mx + b

D= m(Xi+1)+b-Yi D=2m(Xi+1)-2Yi+2b-1

D=d1-d2
Xi Xi+1

Nihar Ranjan Roy

Nihar Ranjan Roy

8/12/2009

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


D= d1 d2 (Yi+1-(m(Xi+1)+b))

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


D=2m(Xi+1)-2Yi+2b-1 Pi=D. x=2 y(Xi)- 2Yi x+(2b-1) x+2 y Pi = 2 y(Xi) - 2Yi x + C

D= m(Xi+1)+b-Yi D=2m(Xi+1)-2Yi+2b-1
Floating point calculation

Nihar Ranjan Roy

Nihar Ranjan Roy

10

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


D=2m(Xi+1)-2Yi+2b-1 Pi=D. x=2 y(Xi)- 2Yi x+(2b-1) x+2 y Pi = 2 y(Xi) - 2Yi x + C Pi+1= ?

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


Pi = 2 y(Xi) - 2Yi x + C Pi+1 = 2 y(Xi+1) - 2Yi+1 x + 1 Xi+1=Xi+1 Pi+1 Pi= 2 y(Xi+1-Xi) - 2 x(Yi+1 Yi) Pi+1 =Pi+ 2 y- 2 x(Yi+1 Yi) C

Nihar Ranjan Roy

11

Nihar Ranjan Roy

12

8/12/2009

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


Pi+1 =Pi+ 2 y- 2 x(Yi+1 Yi) 2

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


Pi+1 =Pi+ 2 y- 2 x(Yi+1 Yi)

Now if Pi <0 Lower pixel is chosen i.e. (xi+1,yi) xi+1=xi+1 & yi+1=yi substituting it in 2 we get
Pi+1 =Pi+ 2 3

Now if Pi >0 upper pixel is chosen i.e. (xi+1,yi +1) xi+1=xi+1 & yi+1=yi +1 substituting it in 2 we get
Pi+1 =Pi+ 2( yx) 4

Nihar Ranjan Roy

13

Nihar Ranjan Roy

14

BRESENHAM'S LINE ALGORITHM BRESENHAM'S LINE ALGORITHM


Pi+1 =Pi+ 2 y- 2 x(Yi+1 Yi) P0= ? from equation 1 Pi=2 y(Xi)- 2Yi x+(2b-1) x+2 y Put Xi=X0 and Yi=Y0 b=y-mx P0=2 y- x 5
4.
Nihar Ranjan Roy

ALGORITHM
1. 2. 3. Input the two end points and store left pt in (x0,y0) Calculate y, x, 2 y and 2( y- x) and calculate P0 P0=2 y- x At each Xi along the line, starting at i=0 perform the following test If (Pi<0) the next point plotted would be(Xi+1,Yi) Pi+1=Pi+2 y Otherwise the next point would be (Xi+1,Yi+1) and Pi+1=P + 2( y- x) Repeat step 3 x times
Nihar Ranjan Roy

15

16

8/12/2009

PROBLEM

SIMPLE ALGORITHM - EXAMPLE


x=6 y=5 m=5/6<1 2 y=10 2( y- x)=-2
(26,15)

Raster plot all the points that make the line with end points (20,10) and (26,15) using Bresenhams Line drawing algorithm

(20,10)
Nihar Ranjan Roy

17

Nihar Ranjan Roy

18

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11
(26,15)

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11 (22,12) Pi P0=4 P1=2

y=5 2 y=10
(Xi+1,Yi+1) (21,11)

2( y- x)=-2

y=5 2 y=10
(Xi+1,Yi+1) (21,11) (22,12)

2( y- x)=-2

Pi P0=4

(26,15)

P0=2 y- x=4 P0>0 so (X++,Y++) 21,11

P1=P0+2( y- x)=4-2=2 (x++,y++)=(22,12)


(20,10) (20,10)

Nihar Ranjan Roy

19

Nihar Ranjan Roy

20

8/12/2009

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11 (22,12) Pi P0=4 P1=2 P2=0

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11
(26,15)

y=5 2 y=10
(Xi+1,Yi+1) (21,11) (22,12) (23,13)

2( y- x)=-2

y=5 2 y=10
(Xi+1,Yi+1) (21,11) (22,12) (23,13) (24,13)

2( y- x)=-2

Pi P0=4 P1=2 P2=0 P3 =-2

(22,12) (23,13)

(26,15)

P2=P1+2( y- x)=2-2=0 (x++,y++)=(23,12) P3=P2+2( y- x)=0-2=-2 (x++,y++)=(24,13)


(20,10) (20,10)

Nihar Ranjan Roy

21

Nihar Ranjan Roy

22

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11 (22,12) (23,13) (24,13) Pi P0=4 P1=2 P2=0 P3 =-2 P4=8

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11
(26,15)

y=5 2 y=10
(Xi+1,Yi+1) (21,11) (22,12) (23,13) (24,13) (25,14)

2( y- x)=-2
Pi P0=4 P1=2 P2=0 P3 =-2 P4=8 P5=6 (Xi+1,Yi+1) (21,11) (22,12) (23,13) (24,13) (25,14) (26,15)

y=5 2 y=10

2( y- x)=-2
(26,15)

(22,12) (23,13) (24,13) (25,14)

P4=P3+2 y=-2+10=8 (x++,y++)=(25,14)


(20,10)

P5=P4+2( y- x)=8-2=6 (x++,y++)=(26,15)


(20,10)

Nihar Ranjan Roy

23

Nihar Ranjan Roy

24

8/12/2009

SIMPLE ALGORITHM - EXAMPLE


x=6
(xi,yi) (20,10) 21,11 (22,12) (23,13) (24,13) (25,14) Pi P0=4 P1=2 P2=0 P3 =-2 P4=8 P5=6

y=5 2 y=10
(Xi+1,Yi+1) (21,11) (22,12) (23,13) (24,13) (25,14) (26,15)

2( y- x)=-2

Nihar Ranjan Roy

25

Das könnte Ihnen auch gefallen