22
ÑOÀ HOÏA RASTER ÑOÀ HOÏA RASTER CAÙC THUAÄT TOAÙN CAÙC THUAÄT TOAÙN VEÕ ÑÖÔØNG THAÚNG VEÕ ÑÖÔØNG THAÚNG Giaûng vieân : Buøi Tieán Leân

chuong_1a [Compatibility Mode].pdf

Embed Size (px)

Citation preview

ÑOÀ HOÏA RASTERÑOÀ HOÏA RASTER

CAÙC THUAÄT TOAÙNCAÙC THUAÄT TOAÙNVEÕ ÑÖÔØNG THAÚNGVEÕ ÑÖÔØNG THAÚNG

Giaûng vieân : Buøi Tieán Leân

Baøi toaùn veõ ñöôøng thaúngBaøi toaùn veõ ñöôøng thaúngInput

(X1, Y1) (X2, Y2)Output

{(x1, y1) (x2, y2) … (xn, yn)} laø nhöõng ñieåm saùng “naèm treân” ñöôøng thaúng

Trang Trang 22

(X1, Y1)

(X2, Y2)

Moät soá coâng thöùc cô baûn cuûa ñöôøng thaúngMoät soá coâng thöùc cô baûn cuûa ñöôøng thaúng

mb

my

x

bmxy

−=

+=

(X2, Y

2)

Trang Trang 33

11

12

12

mXYbxy

XXYY

m

mm

−=

∆=

−=

(X1, Y

1)

Phaân loaïi ñöôøng thaúngPhaân loaïi ñöôøng thaúng

Taêng chaäm Taêng nhanh

Trang Trang 44

Giaûm chaäm Giaûm nhanh

Giaûi quyeátGiaûi quyeátThuaät toaùn DDAThuaät toaùn Bresenham

Trang Trang 55

Thuaät toaùn DDAThuaät toaùn DDA

Tröôøng hôïp 1Tröôøng hôïp 1Ñoaïn thaúng taêng chaäm vaø ñieåm ñaàu ôû beân traùi.Thuaät toaùn

Böôùc 1 Xaùc ñònh ñieåm ñaàu tieânx1 = X1

y1 = Y1

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theo

1

2 3 n…

Trang Trang 77

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theoLaëp xi < X2

xi+1 = xi + 1y = mxi+1 + byi+1 = Round(y)

2 3 n…

Tröôøng hôïp 1Tröôøng hôïp 1Caûi tieán tính y

Xeùt hai ñieåm saùng lieân tieáp nhau

i

i+1

(xi, ycuõ)

(xi+1, ymôùi)

Trang Trang 88

Coâng thöùc lieân heä

y ñaàu laø Y1ymôùi = ycuõ + m

Tröôøng hôïp 2Tröôøng hôïp 2Ñoaïn thaúng taêng nhanh vaø ñieåm ñaàu ôû beân döôùi.Thuaät toaùn

Böôùc 1 Xaùc ñònh ñieåm ñaàu tieânx1 = X1

y1 = Y1

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theo

Trang Trang 99

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theoLaëp yi < Y2

yi+1 = yi + 1x = yi+1/m – b/mxi+1 = Round(x)

Tröôøng hôïp 2Tröôøng hôïp 2Caûi tieán tính x

Xeùt hai ñieåm saùng lieân tieáp nhau

Coâng thöùc lieân heä

i

i+1

(xc, yi)

(xmôùi, yi+1)

Trang Trang 1010

Coâng thöùc lieân heä

x ñaàu laø X1xmôùi = xcuõ + k

12

12

YYXX

k−

−=

Baøi toaùn môû roängBaøi toaùn môû roängInput

(X1, Y1, C1) (X2, Y2, C2)Output

{(x1, y1, c1) (x2, y2, c2) … (xn, yn, cn)} laø nhöõng ñieåm saùng “naèm treân” ñöôøng thaúng vaø coù maøu khaùc nhau

(X2, Y2, C2)

Trang Trang 1111

(X1, Y1, C1)

(X2, Y2, C2)

Thuaät toaùn BresenhamThuaät toaùn Bresenham

Tröôøng hôïp 1Tröôøng hôïp 1Döï ñoaùn ñieåm saùng thöù i+1

B

Trang Trang 1313

i A

Tröôøng hôïp 1Tröôøng hôïp 1Xaây döïng bieán pi

y = m(xi+1) + bd1 = y - yi

d2 = yi + 1 - ypi = ∆x(d1 - d2)

Byi+1

yC

d2

d1

Trang Trang 1414

i A

xi xi+1

yi

Tröôøng hôïp 1Tröôøng hôïp 1Khoaûng caùch d1, d2 hay khoaûng caùch h1, h2 ?

B

C

d2

h2

Trang Trang 1515

A

xi+1

C

d1

h1

Tröôøng hôïp 1Tröôøng hôïp 1Caùch tính pi

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

Trang Trang 1616

Tröôøng hôïp 1Tröôøng hôïp 1Ñoaïn thaúng taêng chaäm vaø ñieåm ñaàu ôû beân traùi.Thuaät toaùn

Böôùc 1 Xaùc ñònh ñieåm ñaàu tieânx1 = X1

y1 = Y1

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theoLaëp x < X

Trang Trang 1717

Laëp xi < X2

pi = …pi < 0

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

pi >= 0xi+1 = xi + 1yi+1 = yi + 1

Tröôøng hôïp 1Tröôøng hôïp 1Caùch tính pi caûi tieán

p1 = 2∆y - ∆xpi < 0 :

pi+1 = pi + 2∆ypi >= 0 :

p = pi + 2∆y - 2∆x

Trang Trang 1818

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

Tröôøng hôïp 2Tröôøng hôïp 2Döï ñoaùn ñieåm saùng thöù i+1

A B

Trang Trang 1919

i

Tröôøng hôïp 2Tröôøng hôïp 2

A Byi+1C

d2d1

i2

i1

i

i

x1xd

xxdmb

m1y

x

p bieán döïng Xaây

−+=

−=

−+

=

Trang Trang 2020

i

xi xi+1

yi

x

( )21i

i2

ddyp −∆=

Tröôøng hôïp 2Tröôøng hôïp 2Caùch tính pi

p1 = 2∆x - ∆ypi < 0 :

pi+1 = pi + 2∆xpi >= 0 :

p = pi + 2∆x - 2∆y

Trang Trang 2121

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

Tröôøng hôïp 2Tröôøng hôïp 2Thuaät toaùnBöôùc 1 Xaùc ñònh ñieåm ñaàu tieân

x1 = X1

y1 = Y1

Böôùc 2 Xaùc ñònh nhöõng ñieåm tieáp theoLaëp xi < X2

Trang Trang 2222

Laëp xi < X2

pi < 0 xi+1 = xi

yi+1 = yi + 1pi >= 0

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