Đ H A RASTER Đ H A RASTER

Ồ Ọ Ồ Ọ

CÁC THU T TOÁN Ậ CÁC THU T TOÁN Ậ NG TH NG V ĐẼV ĐẼ ƯƯ NG TH NG

Ờ Ờ

Ẳ Ẳ

Gi ng viên : Bùi Ti n Lên ế ả

ng th ng Bài toán v ẽ đưđư ng th ng Bài toán v ẽ

ờ ờ

ẳ ẳ

Input

(X1, Y1) (X2, Y2)

Output

“n m trên” ể ằ {(x1, y1) (x2, y2) … (xn, yn)} là nh ng ữ đi m sáng

( X 2 , Y 2 )

( X 1 , Y 1 )

đư ng th ng ẳ ờ

Trang 22 Trang

ng th ng Bài toán v ẽ đưđư ng th ng Bài toán v ẽ

ờ ờ

ẳ ẳ

Trang 33 Trang

M t s công th c c M t s công th c c

ộ ố ộ ố

ả ủ đưđư ng th ng ng th ng b n c a ờ ứ ơơ b n c a ờ ả ủ ứ

ẳ ẳ

(X2, Y2)

= y

= - x

2

D - = = m D - y x

- + bmx b y m m Y Y 2 1 X X 1 = Yb mX 1 1

(X1, Y1)

Trang 44 Trang

ng th ng Phân lo i ạ đưđư ng th ng Phân lo i ạ

ờ ờ

ẳ ẳ

Tăng nhanh Tăng ch mậ

Gi m ch m Gi m nhanh ả ậ ả

Trang 55 Trang

Gi Gi

ả ả

i quy t ế i quy t ế

Thu t toán DDA Thu t toán Bresenham ậ ậ

Trang 66 Trang

ậThu t toán DDA Thu t toán DDA

ậThu t toán DDA Thu t toán DDA

Trang 88 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

bên trái. ăng ch m và ậ đi m ể đ u ầ ở ạ ẳ

đi m ể đ u tiên ầ Đo n th ng t Thu t toán ậ Bư c 1ớ Xác đ nh 1

2 3 ị x1 = X1 y1 = Y1 ị ữ đi m ti p theo ể ế n…

i < X2 xi+1 = xi + 1 y = mxi+1 + b yi+1 = Round(y)

Bư c 2ớ Xác đ nh nh ng L p xặ

Trang 99 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

ả ế

C i ti n tính y Xét hai đi m sáng liên ti p nhau ể ế

i (xi, ycũ)

i+1 (xi+1, ym iớ )

Công th c liên h ứ ệ

y đ u là Y 1 ym i ớ = ycũ + m

Trang 1010 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

bên d ăng nhanh và đi m ể đ u ầ ở ư i.ớ ẳ ạ

đi m ể đ u tiên ầ Đo n th ng t Thu t toán ậ Bư c 1ớ Xác đ nh

ị x1 = X1 y1 = Y1 ị ữ đi m ti p theo ế ể

i < Y2 yi+1 = yi + 1 x = yi+1/m – b/m xi+1 = Round(x)

Bư c 2ớ Xác đ nh nh ng L p yặ

Trang 1111 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

ả ế

C i ti n tính x Xét hai đi m sáng liên ti p nhau ế ể

i (xc, yi)

i+1 (xm iớ , yi+1)

Công th c liên h ứ ệ

=

k

-

X 2 Y 2

X 1 Y 1

-

x đ u là X 1 xm i ớ = xcũ + k

Trang 1212 Trang

ậThu t toán Bresenham Thu t toán Bresenham

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

D ự đoán đi m sáng th i+1 ứ ể

B

A i

Trang 1414 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

Xây d ngự bi n pế i

B yi+1

d2

y

C

d1 y = m(xi+1) + b d1 = y - yi d2 = yi + 1 - y pi = D x(d1 - d2)

yi i A

xi xi+1

Trang 1515 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

Cách tính pi

pi = 2D yxi – 2D xyi + 2D xY1 – 2D yX1 + 2D y – D x

Trang 1616 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

bên trái.

ăng ch m và ậ

đi m ể đ u

ầ ở

Đo n th ng t Thu t toán ậ Bư c 1ớ Xác đ nh

đi m ể đ u tiên ầ

ữ đi m ti p theo

ế

ị x1 = X1 y1 = Y1 Bư c 2ớ Xác đ nh nh ng ị L p xặ

i < X2

pi = … pi < 0

xi+1 = xi + 1 yi+1 = yi

pi >= 0

xi+1 = xi + 1 yi+1 = yi + 1

Trang 1717 Trang

ợng h p 1 TrTrưư ng h p 1 ợ

ờ ờ

Cách tính pi c i ti n ả ế

p1 = 2D y - D x pi < 0 :

pi+1 = pi + 2D y

pi >= 0 :

pi+1 = pi + 2D y - 2D x

Trang 1818 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

D ự đoán đi m sáng th i+1 ứ ể

B A

i

Trang 1919 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

C Xaây A B yi+1

= - x

b m

= - d2 d1

=

)

D= - döïng bieán p i + 1y i m xx i -+ x1x i ( ddy 1 2 d 1 d 2 p i

yi i

x xi xi+1

Trang 2020 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

Cách tính pi

p1 = 2D x - D y pi < 0 :

pi+1 = pi + 2D x

pi >= 0 :

pi+1 = pi + 2D x - 2D y

Trang 2121 Trang

ợng h p 2 TrTrưư ng h p 2 ợ

ờ ờ

Thu t toán ậ Bư c 1ớ Xác đ nh đi m ể đ u tiên ầ

ữ đi m ti p theo ế ể ị x1 = X1 y1 = Y1 ị

i < X2 pi < 0

Bư c 2ớ Xác đ nh nh ng L p xặ

xi+1 = xi yi+1 = yi + 1

pi >= 0

xi+1 = xi + 1 yi+1 = yi + 1

Trang 2222 Trang