Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Đồ họa máy tính docx
PREMIUM
Số trang
174
Kích thước
1.2 MB
Định dạng
PDF
Lượt xem
1354

Tài liệu Đồ họa máy tính docx

Nội dung xem thử

Mô tả chi tiết

Đồ họa máy tính

D- `Oˆ HO. A MAY T ´ ´INH I

Pha.m Tiˆe´n So.n

D- `a La.

t, 2005

2

Mu.

c lu.

c

L`o.

i n´oi d¯ˆa`u 7

1 C´ac thuˆa.

t to´an v˜e d¯u.`o

.ng cong trˆen thiˆe´t bi

.

raster 9

1.1 D- oa.n thˇa˙’ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.1.1 Thuˆa.

t to´an sˆo´ gia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1.2 Thuˆa.

t to´an d¯iˆe˙’m gi˜u.a . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.1.3 Mˆo.

t sˆo´ vˆa´n d¯ˆe` liˆen quan d¯ˆe´n thuˆa.

t to´an v˜e d¯oa.n thˇa˙’ng . . . . . . . . 18

1.1.4 C´ac thuˆo. c t´ınh cu˙’a d¯oa.n thˇa˙’ng . . . . . . . . . . . . . . . . . . . . . 21

1.2 D- u

.`o

.ng tr`on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.2.1 D- ˆo´i x´u.ng t´am d¯iˆe˙’m . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.2.2 Thuˆa.

t to´an d¯iˆe˙’m gi˜u.a v˜e d¯u.`o

.ng tr`on . . . . . . . . . . . . . . . . . . 23

1.3 D- u

.`o

.ng cong ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.3.1 Ellipse c´o da.ng ch´ınh tˇa´c . . . . . . . . . . . . . . . . . . . . . . . . . 29

1.3.2 Ellipse trong tru.`o

.ng ho.

.p tˆo˙’ng qu´at . . . . . . . . . . . . . . . . . . . 34

2 H`ınh ho.

c cu˙’a c´ac d¯u.`o

.ng cong v`a mˇa.

t cong 47

2.1 Mo.

˙’ d¯ˆa`u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3

2.2 D- u

.`o

.ng cong Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.1 Thuˆa.

t to´an de Casteljau . . . . . . . . . . . . . . . . . . . . . . . . . 48

2.2.2 D- a th´u.

c Bernstein v`a d¯u.`o

.ng cong Bezier . . . . . . . . . . . . . . . . 52

2.3 C´ac t´ınh chˆa´t cu˙’a d¯u.`o

.ng cong Bezier . . . . . . . . . . . . . . . . . . . . . . 55

2.3.1 D- iˆe` u khiˆe˙’n d¯i

.a phu.o

.ng . . . . . . . . . . . . . . . . . . . . . . . . . . 59

2.4 D- a th´u.

c t`u.ng kh´uc v`a c´ac h`am spline . . . . . . . . . . . . . . . . . . . . . . 60

2.4.1 Su.

˙’ du.ng c´ac h`am spline nhu.

c´ac h`am trˆo.n . . . . . . . . . . . . . . . 63

2.4.2 Xˆay du.

.ng c´ac h`am trˆo.n . . . . . . . . . . . . . . . . . . . . . . . . . 65

2.4.3 D- u

.`o

.ng cong spline v`a c´ac h`am co.

so.

˙’ . . . . . . . . . . . . . . . . . . 66

2.4.4 C´ac h`am B-spline co.

so.

˙’ . . . . . . . . . . . . . . . . . . . . . . . . . 66

2.4.5 Su.

˙’ du.ng c´ac knot bˆo.

i . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

2.4.6 Vector knot chuˆa˙’n . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

2.5 C´ac t´ınh chˆa´t cu˙’a d¯u.`o

.ng cong B-spline . . . . . . . . . . . . . . . . . . . . . 75

2.6 Nˆo.

i suy c´ac d¯iˆe˙’m d¯iˆe` u khiˆe˙’n bˇa`ng d¯u.`o

.ng cong B-spline . . . . . . . . . . . . 77

2.7 Thiˆe´t kˆe´ c´ac mˇa.

t Bezier v`a B-spline . . . . . . . . . . . . . . . . . . . . . . . 80

2.7.1 Patch Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

2.7.2 D´an c´ac patch Bezier . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

2.7.3 Patch spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

3 Giao cu˙’a c´ac d¯ˆo´i tu.o.

.ng 83

3.1 Mo.

˙’ d¯ˆa`u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.2 Giao cu˙’a hai d¯oa.n thˇa˙’ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.2.1 Phˆan t´ıch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4

3.2.2 Thuˆa.

t to´an x´ac d¯i

.nh giao hai d¯oa.n thˇa˙’ng . . . . . . . . . . . . . . . . 86

3.3 D- oa.n thˇa˙’ng v`a h`ınh ch˜u. nhˆa.

t . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.3.1 T`ım giao bˇa`ng c´ach gia˙’i hˆe. c´ac phu.o

.ng tr`ınh . . . . . . . . . . . . . . 89

3.3.2 Thuˆa.

t to´an chia nhi

. phˆan . . . . . . . . . . . . . . . . . . . . . . . . 89

3.3.3 Thuˆa.

t to´an Cohen-Sutherland . . . . . . . . . . . . . . . . . . . . . . 93

3.3.4 Thuˆa.

t to´an Liang-Barsky . . . . . . . . . . . . . . . . . . . . . . . . 97

3.4 Giao cu˙’a d¯oa.n thˇa˙’ng v`a d¯a gi´ac lˆo`i . . . . . . . . . . . . . . . . . . . . . . . 100

3.4.1 Vi

.

tr´ı tu.o

.ng d¯ˆo´i cu˙’a mˆo.

t d¯iˆe˙’m v´o.

i d¯u.`o

.ng thˇa˙’ng . . . . . . . . . . . . 100

3.4.2 Thuˆa.

t to´an t`ım giao cu˙’a d¯oa.n thˇa˙’ng v`a d¯a gi´ac lˆo`i . . . . . . . . . . 102

3.5 Giao hai d¯a gi´ac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

3.5.1 Thuˆa.

t to´an Sutherland-Hodgman . . . . . . . . . . . . . . . . . . . . 108

3.5.2 Thuˆa.

t to´an Weiler-Atherton . . . . . . . . . . . . . . . . . . . . . . . 111

3.5.3 C´ac ph´ep to´an tˆa.p ho.

.p trˆen c´ac d¯a gi´ac . . . . . . . . . . . . . . . . 113

3.6 Ray tracing hai chiˆe` u: pha˙’n xa.

trong buˆo`ng k´ın . . . . . . . . . . . . . . . . 114

3.6.1 Vector pha˙’n xa.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

3.6.2 Giao cu˙’a tia s´ang v`a d¯u.`o

.ng thˇa˙’ng . . . . . . . . . . . . . . . . . . . 117

3.6.3 Giao cu˙’a tia s´ang v´o.

i d¯u.`o

.ng tr`on . . . . . . . . . . . . . . . . . . . . 121

3.6.4 Xˆay du.

.ng v´ı du.

ray tracing . . . . . . . . . . . . . . . . . . . . . . . 124

3.6.5 Buˆo`ng k´ın l`a ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

4 Tˆo m`au v`ung 127

4.1 C´ac d¯i

.nh ngh˜ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

4.1.1 V`ung d¯i

.nh ngh˜ıa bo.

˙’ i pixel . . . . . . . . . . . . . . . . . . . . . . . . 127

5

4.1.2 V`ung d¯i

.nh ngh˜ıa bo.

˙’ i d¯a gi´ac . . . . . . . . . . . . . . . . . . . . . . . 129

4.2 Thuˆa.

t to´an tˆo m`au theo vˆe´t dˆa`u loang . . . . . . . . . . . . . . . . . . . . . 129

4.3 Thuˆa.

t to´an tˆo m`au theo con cha.y . . . . . . . . . . . . . . . . . . . . . . . . 131

4.4 Thuˆa.

t to´an tˆo m`au theo biˆen . . . . . . . . . . . . . . . . . . . . . . . . . . 134

4.5 So s´anh c´ac thuˆa.

t to´an . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

4.6 Tˆo m`au c´ac h`ınh ch˜u. nhˆa.

t . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

4.7 Thuˆa.

t to´an tˆo m`au d¯a gi´ac . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

4.7.1 C´ac d`ong qu´et ngang . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

4.7.2 C´ac ma˙’nh vu. n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

4.7.3 Liˆen kˆe´t ca.nh v`a thuˆa.

t to´an tr`an . . . . . . . . . . . . . . . . . . . . 151

4.7.4 Tˆo m`au c´ac d¯a gi´ac chˆo`ng nhau . . . . . . . . . . . . . . . . . . . . . 158

4.8 Tˆo m`au theo mˆa˜u tˆo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Phˆa`n phu.

lu.

c: Thu. viˆe.n graph2D.h 163

T`ai liˆe.u tham kha˙’o 171

6

L`o.

i n´oi d¯ˆa`

u

D- `ˆo ho.a m´ay t´ınh l`a mˆo.

t l˜ınh vu.

. c hˆa´p dˆa˜n cu˙’a khoa ho. c m´ay t´ınh. Ch´ung ta su.

˙’ du. ng d¯ˆo` ho.a

m´ay t´ınh nhu. mˆo.

t cˆong cu. d¯ˆe˙’ quan s´at thˆong tin trong nhiˆe` u l˜ınh vu.

. c kh´ac nhau, bao gˆo`m

khoa ho. c v`a cˆong nghˆe.

, ho´a ho. c, kiˆe´n tr´uc v`a gia˙’i tr´ı. C´ac chu.o

.ng tr`ınh d¯ˆo` ho.a tu.o

.ng t´ac

cho ph´ep ngu.`o

.

i su.

˙’ du.ng l`am viˆe.c theo c´ach tu.

. nhiˆen nhˆa´t: ngu.`o

.

i su.

˙’ du. ng cung cˆa´p thˆong

tin cho tr`ınh ´u.ng du. ng thˆong qua c´ac hoa.

t d¯ˆo.ng bˆen ngo`ai cu˙’a ho. v`a s˜e nhˆa.n d¯u.o

.

. c thˆong

tin tro.

˙’ la.

i bˇa`ng h`ınh a˙’nh. D- `ˆo ho.a m´ay t´ınh d¯ang gi´up con ngu.`o

.

i thay d¯ˆo˙’i vˆe` quan niˆe.m v`a

c´ach th´u.

c su.

˙’ du. ng m´ay t´ınh.

Gi´ao tr`ınh D- `ˆo ho. a m´ay t´ınh I cung cˆa´p mˆo.

t sˆo´ k˜y thuˆa.

t co. ba˙’n cu˙’a d¯ˆo` ho.a m´ay t´ınh

hai chiˆe` u. (D- `ˆo ho.a m´ay t´ınh ba chiˆe` u, mˆo.

t phˆa`n quan tro.ng khˆong thˆe˙’ thiˆe´u d¯u.o

.

. c s˜e d¯u.o

.

. c

d¯ˆe` cˆa.p trong mˆo.

t gi´ao tr`ınh kh´ac). D- ˆe˙’ c´o mˆo.

t khung ca˙’nh to`an diˆe.n v`a sˆau sˇa´c vˆe` nh˜u.ng

nguyˆen l´y v`a thu.

. c h`anh cu˙’a d¯ˆo` ho.a m´ay t´ınh, xem c´ac t`ai liˆe.u dˆa˜n [9] v`a [11]. C´ac phu.o

.ng

ph´ap phˆan t´ıch v`a thiˆe´t kˆe´ c´ac thuˆa.

t to´an trong gi´ao tr`ınh cho ph´ep sinh viˆen c´o thˆe˙’ viˆe´t

dˆe˜ d`ang c´ac chu.o

.ng tr`ınh minh ho.a. Gi´ao tr`ınh d¯u.o

.

. c biˆen soa.n cho c´ac d¯ˆo´i tu.o

.

. ng l`a sinh

viˆen To´an-Tin v`a Tin ho. c.

Gi´ao tr`ınh su.

˙’ du. ng ngˆon ng˜u. C d¯ˆe˙’ minh ho.a, tuy nhiˆen c´o thˆe˙’ dˆe˜ d`ang chuyˆe˙’n d¯ˆo˙’i

sang c´ac ngˆon ng˜u. kh´ac; v`a do d¯´o, sinh viˆen cˆa`n c´o mˆo.

t sˆo´ kiˆe´n th´u.

c vˆe` ngˆon ng˜u. C. Ngo`ai

ra, hˆa`u hˆe´t c´ac chu.o

.ng tr`ınh thao t´ac trˆen cˆa´u tr´uc d˜u.

liˆe.u nhu. danh s´ach liˆen kˆe´t, nˆen d¯`oi

ho˙’i sinh viˆen pha˙’i c´o nh˜u.ng k˜y nˇang lˆa.p tr`ınh tˆo´t.

Sinh viˆen c˜ung cˆa`n c´o co.

so.

˙’ to´an ho. c cu˙’a nh˜u.ng nˇam d¯ˆa`u d¯a.

i ho. c: hiˆe˙’u biˆe´t vˆe` d¯a.

i sˆo´

tuyˆe´n t´ınh v`a h`ınh ho. c gia˙’i t´ıch, ph´ep t´ınh vi t´ıch phˆan.

Mu. c d¯´ıch cu˙’a gi´ao tr`ınh l`a, o.

˙’ m´u.

c d¯ˆo. n`ao d¯´o, cho thˆa´y c´ac tr`ınh ´u.ng du.ng d¯ˆo` ho.a

d¯u.o

.

. c ta.o ra nhu.

thˆe´ n`ao: Ch´ung ta cˆa`n viˆe´t v`a cha.y thu.

˙’ c´ac chu.o

.ng tr`ınh. Mˆo.

t trong

nh˜u.ng mu. c d¯´ıch ch´ınh cu˙’a gi´ao tr`ınh l`a gi´up sinh viˆen nˇa´m v˜u.ng c´ac phu.o

.ng ph´ap, tru.´o

.

c

hˆe´t to´an ho. c ho´a c´ac kh´ac niˆe.m h`ınh ho. c v`a sau d¯´o chuyˆe˙’n ta˙’i th`anh c´ac d¯oa.n m˜a chu.o

.ng

tr`ınh.

7

Gi´ao tr`ınh bao gˆo`m bˆo´n chu.o

.ng v`a mˆo.

t phˆa`n phu.

lu. c v´o.

i nh˜u.ng nˆo.

i dung ch´ınh nhu.

sau:

• Chu.o

.ng th´u. nhˆa´t d¯ˆe` cˆa.p d¯ˆe´n c´ac phu.o

.ng ph´ap v˜e c´ac “nguyˆen so.” cu˙’a d¯ˆo` ho.a m´ay

t´ınh: d¯oa.n thˇa˙’ng, d¯u.`o

.ng tr`on v`a ellipse.

• Phˆan t´ıch v`a thiˆe´t kˆe´ bˇa`ng h`ınh ho. c l`a nˆo.

i dung ch´ınh cu˙’a Chu.o

.ng 2. Hˆa`u hˆe´t c´ac

phˆa`n mˆe` m d¯ˆo` ho.a d¯ˆe` u c´o nh˜u.ng ch´u.

c nˇang ta.o ra c´ac d¯u.`o

.ng cong du.

. a trˆen c´ac d¯iˆe˙’m

m`a ngu.`o

.

i su.

˙’ du.ng lu.

. a cho.n. Chu.o

.ng n`ay cung cˆa´p nh˜u.ng nguyˆen l´y v`a c´ach tiˆe´p cˆa.n

thu.

. c h`anh m`a c´ac tr`ınh ´u.ng du.ng d¯ˆo` ho.a ´ap du.ng.

• Chu.o

.ng 3 gia˙’i quyˆe´t b`ai to´an x´ac d¯i

.nh giao cu˙’a nh˜u.ng nguyˆen so. d¯ˆo` ho.a: Giao hai

d¯oa.n thˇa˙’ng, giao cu˙’a d¯oa.n thˇa˙’ng v`a d¯a gi´ac lˆo`i (bao h`am c´ac h`ınh ch˜u. nhˆa.

t) v`a giao

cu˙’a hai d¯a gi´ac. Cuˆo´i chu.o

.ng l`a mˆo.

t v´ı du. cu˙’a k˜y thuˆa.

t “ray tracing” hai chiˆe` u:

Chuyˆe˙’n d¯ˆo.ng cu˙’a tia s´ang trong buˆo`ng k´ın c´o ch´u.a c´ac “chu.´o

.ng nga.

i vˆa.

t”.

• Chu.o

.ng 4 d¯ˆe` cˆa.p d¯ˆe´n nh˜u.ng thuˆa.

t to´an tˆo m`au v`ung bˆa´t k`y: V`ung d¯i

.nh ngh˜ıa bo.

˙’ i

phˆa`n trong, bo.

˙’ i d¯u.`o

.ng biˆen v`a v`ung l`a d¯a gi´ac.

• Phˆa`n phu.

lu. c l`a thu. viˆe.n c´ac cˆa´u tr´uc d˜u.

liˆe.u v`a c´ac h`am cˆa`n thiˆe´t v`a thu.`o

.ng xuyˆen

su.

˙’ du.ng trong gi´ao tr`ınh.

Trong lˆa`n xuˆa´t ba˙’n th´u. hai n`ay, ch´ung tˆoi d¯u.a thˆem c´ac v´ı du.

t´ınh to´an nhˇa`m minh

ho.a cho phˆa`n l´y thuyˆe´t c˜ung nhu. gi´up sinh viˆen nˇa´m v˜u.ng kiˆe´n th´u.

c d¯˜a ho. c. Ngo`ai ra, c´ac

lˆo˜i trong xuˆa´t ba˙’n lˆa`n tru.´o

.

c c˜ung d¯˜a d¯u.o

.

. c chı˙’nh l´y; mˇa. c d`u vˆa.y, t´ac gia˙’ vˆa˜n mong c´o nh˜u.ng

d¯´ong g´op t`u. ba.n d¯o. c.

Tˆoi xin ca˙’m o.n nh˜u.ng gi´up d¯˜o. d¯˜a nhˆa.n d¯u.o

.

. c t`u. nhiˆe` u ngu.`o

.

i m`a khˆong thˆe˙’ liˆe.

t kˆe

hˆe´t, d¯ˇa. c biˆe.

t l`a c´ac ba.n sinh viˆen, trong qu´a tr`ınh biˆen soa.n gi´ao tr`ınh n`ay.

D- `a La.

t, ng`ay 10 th´ang 1 nˇam 2005

PHA. M Tiˆe´n So.n

8

Chu.o

.ng 1

C´ac thuˆa.

t to´an v˜e d¯u.`o

.ng cong trˆen

thiˆe´t bi

.

raster

Chu.o

.ng n`ay tr`ınh b`ay c´ac thuˆa.

t to´an v˜e d¯oa.n thˇa˙’ng, d¯u.`o

.ng tr`on v`a ellipse trˆen lattice

nguyˆen Z

2

. C´ac thuˆa.

t to´an chı˙’ thao t´ac trˆen nh˜u.ng sˆo´ nguyˆen v`a trong c´ac v`ong lˇa.p chı˙’ su.

˙’

du.ng ph´ep to´an cˆo.ng nˆen rˆa´t hiˆe.u qua˙’.

1.1 D- oa.n thˇa˙’

ng

Thuˆa.

t to´an v˜e d¯oa.n thˇa˙’ng x´ac d¯i

.nh to.a d¯ˆo. cu˙’a c´ac pixel nˇa`m trˆen hoˇa. c gˆa`n v´o.

i d¯oa.n thˇa˙’ng

thu.

. c tˆe´ nhˆa´t. Vˆe` nguyˆen tˇa´c, ch´ung ta muˆo´n cho.n d˜ay c´ac pixel gˆa`n v´o.

i d¯oa.n thˇa˙’ng thu.

. c tˆe´

nhˆa´t v`a thˇa˙’ng nhˆa´t. X´et d¯oa.n thˇa˙’ng thu.

. c tˆe´ d¯u.o

.

. c xˆa´p xı˙’ v´o.

i mˆa.

t d¯ˆo. mˆo.

t pixel; ta cˆa`n c´o

nh˜u.ng t´ınh chˆa´t g`ı? V´o.

i c´ac d¯oa.n thˇa˙’ng c´o hˆe.

sˆo´ g´oc thuˆo. c d¯oa.n [−1, 1], c´o d¯´ung mˆo.

t pixel

d¯u.o

.

. c v˜e lˆen trˆen mˆo˜i cˆo.

t; v´o.

i c´ac d¯oa.n thˇa˙’ng m`a hˆe.

sˆo´ g´oc nˇa`m ngo`ai d¯oa.n n`ay, c´o d¯´ung

mˆo.

t pixel d¯u.o

.

. c v˜e trˆen mˆo˜i h`ang. Tˆa´t ca˙’ c´ac d¯oa.n thˇa˙’ng d¯u.o

.

. c v˜e v´o.

i c`ung mˆo.

t d¯ˆo.

s´ang,

khˆong phu.

thuˆo. c v`ao d¯ˆo. d`ai v`a hu.´o

.ng, v`a nhanh nhˆa´t c´o thˆe˙’ d¯u.o

.

. c. Thuˆa.

t to´an v˜e d¯oa.n

thˇa˙’ng c˜ung cˆa`n ch´u ´y d¯ˆe´n c´ac thuˆo. c t´ınh cu˙’a d¯oa.n thˇa˙’ng nhu. d¯ˆo.

rˆo.ng, kiˆe˙’u v˜e... Thˆa.m ch´ı

ch´ung ta muˆo´n cu.

. c tiˆe˙’u ho´a m´u.

c d¯ˆo.

rˇang cu.a do tiˆe´n tr`ınh r`o.

i ra. c ho´a d¯u.`o

.ng thˇa˙’ng thu.

. c

tˆe´ nh`o.

su.

˙’ du. ng k˜y thuˆa.

t antialiasing (xem [9], [11]) bˇa`ng c´ach ´ap du.ng kha˙’ nˇang d¯ˇa.

t cu.`o

.ng

d¯ˆo. cu˙’a mˆo˜i pixel trˆen c´ac thiˆe´t bi

. hiˆe˙’n thi

. m`a mˆo.

t pixel tu.o

.ng ´u.ng nhiˆe` u bit.

Tru.´o

.

c hˆe´t ch´ung ta chı˙’ d¯ˆe` cˆa.p d¯ˆe´n c´ac d¯oa.n thˇa˙’ng d¯ˆo.

rˆo.ng mˆo.

t pixel v`a c´o d¯´ung mˆo.

t

pixel trˆen mˆo˜i cˆo.

t (hoˇa. c h`ang d¯ˆo´i v´o.

i c´ac d¯oa.n thˇa˙’ng dˆo´c). Phˆa`n cuˆo´i chu.o

.ng s˜e d¯ˆe` cˆa.p

9

d¯ˆe´n d¯ˆo.

rˆo.ng c´ac nguyˆen so. v`a c´ac mˆa˜u v˜e.

Mˆo.

t c´ach h`ınh ho. c, ch´ung ta biˆe˙’u diˆe˜n mˆo.

t pixel nhu. mˆo.

t chˆa´m tr`on v´o.

i tˆam ta.

i vi

.

tr´ı (x, y) cu˙’a pixel trˆen lu.´o

.

i c´ac to.a d¯ˆo. nguyˆen Z

2

. Biˆe˙’u diˆe˜n n`ay l`a mˆo.

t xˆa´p xı˙’ th´ıch ho.

. p

nh´at cˇa´t ngang trong mˆo.

t chu k`y cu˙’a ch`um tia electron cu˙’a CRT; xˆa´p xı˙’ n`ay phu.

thuˆo. c v`ao

khoa˙’ng c´ach (tu`y thuˆo. c v`ao hˆe.

thˆo´ng) gi˜u.a c´ac vˆe´t trˆen m`an h`ınh hiˆe˙’n thi

.

. Trong mˆo.

t sˆo´

hˆe.

thˆo´ng, c´ac chˆa´m kˆe` nhau phu˙’ lˆa´p mˆo.

t phˆa`n lˆen nhau; v´o.

i nh˜u.ng hˆe.

thˆo´ng kh´ac c´o nh˜u.ng

khoa˙’ng c´ach gi˜u.a c´ac pixel d¯´u.ng kˆe` nhau; trong hˆa`u hˆe´t c´ac hˆe.

thˆo´ng, khoa˙’ng c´ach theo

chiˆe` u ngang nho˙’ ho.n theo chiˆe` u d¯´u.ng. Mˆo.

t kh´ac biˆe.

t n˜u.a tu`y theo hˆe.

thˆo´ng trong viˆe.c biˆe˙’u

diˆe˜n hˆe.

to.a d¯ˆo.

, chˇa˙’ng ha.n Macintosh xem c´ac pixel d¯u.o

.

. c d¯ˇa.

t ta.

i tˆam cu˙’a h`ınh ch˜u. nhˆa.

t

gi˜u.a c´ac d¯u.`o

.ng thˇa˙’ng kˆe` nhau cu˙’a lu.´o

.

i d¯iˆe` u khiˆe˙’n thay cho nˇa`m trˆen c´ac d¯u.`o

.ng thˇa˙’ng cu˙’a

lu.´o

.

i. Theo c´ach n`ay, c´ac h`ınh ch˜u. nhˆa.

t (x´ac d¯i.nh bo.

˙’ i hai g´oc) gˆo`m c´ac pixel thuˆo. c phˆa`n

trong cu˙’a n´o. D- i

.nh ngh˜ıa n`ay cho ph´ep c´ac v`ung d¯ˆo.

rˆo.ng bˇa`ng khˆong: H`ınh ch˜u. nhˆa.

t t`u.

(x, y) d¯ˆe´n (x, y) khˆong ch´u.a pixel n`ao, trong khi v´o.

i nh˜u.ng hˆe.

thˆo´ng kh´ac, c´o d¯´ung mˆo.

t

pixel ta.

i d¯iˆe˙’m n`ay. Du.´o

.

i d¯ˆay ch´ung ta s˜e biˆe˙’u diˆe˜n c´ac pixel nhu.

c´ac h`ınh tr`on r`o.

i nhau c´o

tˆam nˇa`m trˆen lu.´o

.

i.

H`ınh 1.1 l`a ph´ong to cu˙’a d¯u.`o

.ng thˇa˙’ng thu.

. c tˆe´ v`a xˆa´p xı˙’ d¯ˆo.

rˆo.ng mˆo.

t pixel cu˙’a n´o.

C´ac pixel d¯u.o

.

. c v˜e tu.o

.ng ´u.ng c´ac h`ınh tr`on m`au d¯en v`a c´ac pixel khˆong d¯u.o

.

. c v˜e tu.o

.ng ´u.ng

h`ınh tr`on khˆong tˆo. Trˆen m`an h`ınh thu.

. c tˆe´, d¯u.`o

.ng k´ınh cu˙’a h`ınh tr`on biˆe˙’u diˆe˜n pixel l´o.n

ho.n khoa˙’ng c´ach gi˜u.a c´ac pixel kˆe` nhau, bo.

˙’ i vˆa.y biˆe˙’u diˆe˜n bˇa`ng k´y hiˆe.u cu˙’a ch´ung ta l`a

mˆo.

t ph´ong d¯a.

i m´u.

c d¯ˆo.

r`o.

i ra. c cu˙’a c´ac pixel.

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................

.............................................................................................................................................................................................................................................................................................................................................................................................................................................................

. . . . .

✐ ✐ ✐ ✐ ✐

✐ ✐ ✐ ✐ ✐

✐ ✐ ✐ ✐ ✐

✐ ✐ ✐ ✐ ✐

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

......

...... ②

② ②

② ②

H`ınh 1.1: D- oa.n thˇa˙’ng xˆa´p xı˙’ d¯u.o

.

. c biˆe˙’u diˆe˜n bo.

˙’ i c´ac h`ınh tr`on d¯en.

V`ı c´ac nguyˆen so.

trong hˆe.

thˆo´ng ch´ung ta x´ac d¯i

.nh trˆen lu.´o

.

i d¯iˆe` u khiˆe˙’n nguyˆen nˆen

c´ac to.a d¯ˆo. d¯ˆa`u cuˆo´i cu˙’a d¯oa.n thˇa˙’ng l`a nguyˆen. Thˆa.

t ra, nˆe´u ch´ung ta cˇa´t d¯oa.n thˇa˙’ng v´o.

i

h`ınh ch˜u. nhˆa.

t tru.´o

.

c khi hiˆe˙’n thi

. n´o th`ı to.a d¯ˆo. c´ac d¯iˆe˙’m d¯ˆa`u cuˆo´i cu˙’a d¯oa.n thˇa˙’ng c´o thˆe˙’

khˆong nguyˆen. (Ch´ung ta s˜e tha˙’o luˆa.n c´ac giao d¯iˆe˙’m khˆong nguyˆen trong Phˆa`n 1.1.3). Gia˙’

10

su.

˙’ d¯oa.n thˇa˙’ng c´o hˆe.

sˆo´ g´oc |m| ≤ 1; c´ac tru.`o

.ng ho.

. p kh´ac d¯u.o

.

. c xu.

˙’ l´y tu.o

.ng tu.

.

. Ho.n n˜u.a

tru.`o

.ng ho.

. p c´ac d¯oa.n thˇa˙’ng ngang, d¯´u.ng hoˇa. c c´o hˆe.

sˆo´ g´oc ±1 l`a tˆa`m thu.`o

.ng v`ı ch´ung chı˙’

d¯i qua c´ac pixel trˆen lu.´o

.

i.

1.1.1 Thuˆa.

t to´an sˆo´ gia

X´et hai pixel A = (xA, yA) v`a B = (xB, yB) (t´uc c´ac phˆa`n tu.

˙’ cu˙’a lattice nguyˆen Z

2

). Phu.o

.ng

tr`ınh d¯u.`o

.ng thˇa˙’ng AB c´o da.ng y = mx+t, trong d¯´o hˆe.

sˆo´ g´oc m = dy/dx v`a t = yA −mxA.

C´ach d¯o.n gia˙’n nhˆa´t d¯ˆe˙’ v˜e d¯oa.n thˇa˙’ng AB l`a:

1. T´ınh hˆe.

sˆo´ g´oc m;

2. Tˇang x mˆo.

t d¯o.n vi

.

(kho.

˙’ i d¯ˆa`u t`u. d¯iˆe˙’m bˆen tr´ai nhˆa´t), v´o.

i mˆo˜i xi t´ınh yi = mxi + t v`a

sau d¯´o v˜e pixel ta.

i (xi

, byi + 0.5c)

1

.

Theo c´ach n`ay ta cho.n pixel tˆo´t nhˆa´t, t´u.

c l`a pixel m`a khoa˙’ng c´ach d¯ˆe´n d¯u.`o

.ng thˇa˙’ng thu.

. c

tˆe´ nho˙’ nhˆa´t. Phu.o

.ng ph´ap n`ay khˆong hiˆe.u qua˙’ do mˆo˜i bu.´o

.

c lˇa.p cˆa`n t´ınh mˆo.

t ph´ep nhˆan,

mˆo.

t ph´ep cˆo.ng v`a mˆo.

t ph´ep to´an l`am tr`on. Ta c´o thˆe˙’ khu.

˙’ ph´ep nhˆan bˇa`ng c´ach ch´u ´y rˇa`ng

yi+1 = mxi+1 + t

= m(xi + ∆x) + t

= yi + m∆x,

v`a nˆe´u bu.´o

.

c tˇang ∆x = 1 th`ı yi+1 = yi + m.

Do d¯´o nˆe´u x tˇang mˆo.

t d¯o.n vi

.

th`ı y tˇang m d¯o.n vi

.

. V´o.

i mo.

i d¯iˆe˙’m (xi

, yi) trˆen d¯oa.n

thˇa˙’ng ta biˆe´t rˇa`ng nˆe´u xi+1 = xi + 1 th`ı yi+1 = yi + m; t´u.

c l`a, c´ac gi´a tri

. x v`a y d¯u.o

.

. c t´ınh

theo c´ac gi´a tri

.

tru.´o

.

c d¯´o cu˙’a n´o (xem H`ınh 1.2). D- ˆay ch´ınh l`a “thuˆa.

t to´an sˆo´ gia”: v´o.

i mˆo˜i

bu.´o

.

c lˇa.p ta thu.

. c hiˆe.n c´ac ph´ep to´an sˆo´ gia du.

. a trˆen bu.´o

.

c tru.´o

.

c.

Kho.

˙’ i ta.o ta g´an (x0, y0) l`a to.a d¯ˆo. nguyˆen cu˙’a d¯iˆe˙’m xuˆa´t ph´at, chˇa˙’ng ha.n A. Ch´u ´y

rˇa`ng trong tru.`o

.ng ho.

. p |m| > 1 nˆe´u x tˇang mˆo.

t d¯o.n vi

.

th`ı y tˇang ho.n mˆo.

t d¯o.n vi

.

. Do d¯´o

cˆa`n ho´an d¯ˆo˙’i vai tr`o cu˙’a x v`a y bˇa`ng c´ach g´an bu.´o

.

c tˇang mˆo.

t d¯o.n vi

. cho y v`a tˇang x mˆo.

t

lu.o

.

. ng ∆x =

∆y

m =

1

m

.

1K´y hiˆe.u [x], bxc v`a dxe tu.o

.ng ´u.ng l`a phˆa`n nguyˆen, l`am tr`on xuˆo´ng v`a l`am tr`on lˆen cu˙’a x.

11

. . . .

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

.....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

(xi

, yi)

.................................................................................................................................................................................

.

..

..

....................

...

.

(xi

, byic)

....................................................................................

........

(xi + 1, yi + m)

.

.

..

.

(xi + 1, dyi + me)

........................................................................................................................................................................

.

..

..

..................

...

.

D- u

.`o

.ng thˇa˙’ng

thu.

. c tˆe´

..................................................................................................................................................................................................................................................................................................................................................................................................................................

✇ ✇

H`ınh 1.2: T´ınh to´an sˆo´ gia cu˙’a (xi

, yi).

V´ı du. 1.1.1 Gia˙’ su.

˙’ A(2, 0), B(9, 3). Khi d¯´o d¯u.`o

.ng thˇa˙’ng qua hai d¯iˆe˙’m A v`a B c´o hˆe.

sˆo´

g´oc m =

3

7

∈ (0, 1). Ap du ´

. ng thuˆa.

t to´an sˆo´ gia ta d¯u.o

.

. c d˜ay c´ac d¯iˆe˙’m v˜e tˆo´t nhˆa´t nhu.

trong

ba˙’ng du.´o

.

i:

i xi yi byi + 0.5c

0 2 0 0

1 3

3

7

0

2 4

6

7

1

3 5

9

7

1

4 6

12

7

2

5 7

15

7

2

6 8

18

7

3

7 9

21

7

3

Thu˙’ tu. c Line() du.´o

.

i d¯ˆay minh ho.a thuˆa.

t to´an v˜e d¯oa.n thˇa˙’ng t`u.

(x0, y0) d¯ˆe´n (x1, y1)

v´o.

i gi´a tri

. m`au V alue. D- iˆe˙’m kho.

˙’ i d¯ˆa`u l`a d¯iˆe˙’m bˆen tr´ai nhˆa´t. Ngo`ai ra ta chı˙’ x´et tru.`o

.ng ho.

. p

−1 ≤ m ≤ 1 v`ı c´ac tru.`o

.ng ho.

. p kh´ac c´o thˆe˙’ thu.

. c hiˆe.n do t´ınh d¯ˆo´i x´u.ng. Ho.n n˜u.a, ch´ung ta

c˜ung bo˙’ qua viˆe.c kiˆe˙’m tra c´ac tru.`o

.ng ho.

. p d¯ˇa. c biˆe.

t: d¯u.`o

.ng thˇa˙’ng nˇa`m ngang, d¯´u.ng, xiˆen

mˆo.

t g´oc ±450

. Ch´u ´y rˇa`ng, trong ngˆon ng˜u. C, (int)y bˇa`ng by + 0.5c.

void Line(int x_A, int y_A, int x_B, int y_B, int Value)

{

12

int x;

int dx, dy;

float y, m;

dx = x_B - x_A;

dy = y_B - y_A;

m = dy/(float)dx;

y = y0;

for (x = x_A; x <= x_B; x ++)

{

putpixel(x, (int)(y), Value);

y += m;

}

}

1.1.2 Thuˆa.

t to´an d¯iˆe˙’m gi˜u.a

Thu˙’ tu. c Line() thao t´ac trˆen c´ac sˆo´ thu.

. c y v`a m. Bresenham d¯˜a xˆay du.

. ng thuˆa.

t to´an [2] v˜e

d¯oa.n thˇa˙’ng chı˙’ su.

˙’ du. ng c´ac ph´ep to´an trˆen sˆo´ nguyˆen do d¯´o tr´anh go.

i h`am l`am tr`on v`a cho

ph´ep x´ac d¯i

.nh (xi+1, yi+1) theo sˆo´ gia du.

. a trˆen nh˜u.ng gi´a tri

. o

.

˙’ bu.´o

.

c tru.´o

.

c (xi

, yi). Thuˆa.

t

to´an n`ay c´o thˆe˙’ mo.

˙’ rˆo.ng da.ng dˆa´u chˆa´m d¯ˆo.ng d¯ˆo´i v´o.

i c´ac to.a d¯ˆo.

thu.

. c. Ho.n n˜u.a, phu.o

.ng

ph´ap cu˙’a Bresenham c´o thˆe˙’ d¯u.o

.

. c ´ap du.ng t´ınh to´an trˆen sˆo´ nguyˆen v˜e d¯u.`o

.ng tr`on mˇa. c d`u

n´o khˆong dˆe˜ d`ang mo.

˙’ rˆo.ng cho conic tu`y ´y. V`ı vˆa.y ch´ung ta su.

˙’ du. ng phu.o

.ng ph´ap tu.o

.ng

d¯ˆo´i kh´ac, thuˆa.

t to´an d¯iˆe˙’m gi˜u.a, d¯u.o

.

. c cˆong bˆo´ lˆa`n d¯ˆa`u tiˆen bo.

˙’ i Pitteway [16], [17] v`a d¯u.o

.

. c

ca˙’i tiˆe´n bo.

˙’ i Van Aken [26] v`a mˆo.

t sˆo´ t´ac gia˙’ kh´ac [28], [29]. Van Aken d¯˜a chı˙’ ra [26] d¯ˆo´i v´o.

i

c´ac d¯u.`o

.ng thˇa˙’ng v`a d¯u.`o

.ng tr`on v´o.

i d˜u.

liˆe.u nguyˆen, cˆong th´u.

c d¯iˆe˙’m gi˜u.a suy ra cˆong th´u.

c

cu˙’a Bresenham v`a do d¯´o sinh ra c`ung d˜ay c´ac pixel.

Khˆong mˆa´t t´ınh tˆo˙’ng qu´at, gia˙’ su.

˙’ hˆe.

sˆo´ g´oc m cu˙’a d¯u.`o

.ng thˇa˙’ng thuˆo. c khoa˙’ng (0, 1)

(c´ac tru.`o

.ng ho.

. p kh´ac c´o thˆe˙’ d¯u.o

.

. c xu.

˙’ l´y bo.

˙’ i c´ac ph´ep lˆa´y d¯ˆo´i x´u.ng mˆo.

t c´ach th´ıch ho.

. p qua

c´ac tru. c to.a d¯ˆo.

). Ta c˜ung k´y hiˆe.u d¯iˆe˙’m xuˆa´t ph´at l`a (xA, yA) v`a d¯iˆe˙’m kˆe´t th´uc l`a (xB, yB).

D- ˇa.

t dy := yB − yA, dx = xB − xA. Phu.o

.ng tr`ınh d¯u.`o

.ng thˇa˙’ng l qua hai d¯iˆe˙’m A v`a B x´ac

d¯i

.nh bo.

˙’ i

y =

dy

dxx + t;

13

......................................................................................................................................................................................................................................................

.......................... (l

−)

(l

+)

M

Q

C

R

D

l

H`ınh 1.3: Lu.´o

.

i c´ac pixel v`a vi

.

tr´ı d¯iˆe˙’m C, R, D, Q v`a M.

hay tu.o

.ng d¯u.o

.ng

f(x, y) := ax + by + c = 0,

trong d¯´o a = dy, b = −dx, v`a c = b × dx. K´y hiˆe.u c´ac nu.

˙’ a mˇa.

t phˇa˙’ng ngo`ai v`a nu.

˙’ a mˇa.

t

phˇa˙’ng trong x´ac d¯i

.nh bo.

˙’ i l tu.o

.ng ´u.ng bo.

˙’ i

(l

+) := {(x, y) ∈ R2

| f(x, y) > 0},

(l

−) := {(x, y) ∈ R2

| f(x, y) < 0}.

Y tu ´ .o

.

˙’ ng cu˙’a thuˆa.

t to´an d¯iˆe˙’m gi˜u.a l`a xˆay du.

. ng mˆo.

t d˜ay c´ac d¯iˆe˙’m v˜e “tˆo´t nhˆa´t” (xi

, yi)

bˇa´t d¯ˆa`u t`u. d¯iˆe˙’m (x0, y0) = (xA, yA). Kh´ai niˆe.m tˆo´t nhˆa´t o

.

˙’ d¯ˆay l`a nh˜u.ng d¯iˆe˙’m (xi

, yi) d¯u.o

.

. c

cho.n gˆa`n v´o.

i d¯u.`o

.ng thˇa˙’ng thu.

. c tˆe´ (da.ng liˆen tu. c) nhˆa´t. Theo gia˙’ thiˆe´t, 0 < m < 1, nˆen khi

x tˇang mˆo.

t lu.o

.

. ng ∆x th`ı y tˇang khˆong qu´a ∆y = m∆x d¯o.n vi

.

.

V`ı vˆa.y nˆe´u bu.´o

.

c th´u.

i cho.n d¯u.o

.

. c d¯iˆe˙’m v˜e tˆo´t nhˆa´t C := (xi

, yi) th`ı o.

˙’ bu.´o

.

c th´u.

i + 1

ta s˜e cho.n d¯iˆe˙’m v˜e (xi+1, yi+1), trong d¯´o xi+1 = xi + 1 v`a yi+1 = yi hoˇa. c yi+1 = yi + 1.

N´oi c´ach kh´ac, bu.´o

.

c th´u.

i + 1 ch´ung ta s˜e cho.n mˆo.

t trong hai pixel R := (xi + 1, yi) hoˇa. c

D := (xi + 1, yi + 1) (xem H`ınh 1.3). K´y hiˆe.u Q l`a giao d¯iˆe˙’m cu˙’a hai d¯u.`o

.ng thˇa˙’ng l v`a

x = xi + 1. Theo Bresenham, dˆa´u cu˙’a biˆe˙’u th´u.

c x´ac d¯i

.nh bo.

˙’ i hiˆe.u gi˜u.a hai khoa˙’ng c´ach t`u.

R v`a D d¯ˆe´n Q cho ph´ep x´ac d¯i

.nh pixel tˆo´t nhˆa´t o.

˙’ bu.´o

.

c i + 1. Trong thuˆa.

t to´an d¯iˆe˙’m gi˜u.a,

ta quan s´at vi

.

tr´ı cu˙’a d¯iˆe˙’m gi˜u.a M v`a c´ac nu.

˙’ a mˇa.

t phˇa˙’ng x´ac d¯i

.nh bo.

˙’ i d¯u.`o

.ng thˇa˙’ng l. Dˆe˜

d`ang chı˙’ ra rˇa`ng, nˆe´u M ∈ (l

+) th`ı pixel D gˆa`n v´o.

i d¯u.`o

.ng thˇa˙’ng l ho.n; nˆe´u M ∈ (l

−) th`ı

pixel R gˆa`n ho.n. D- u

.`o

.ng thˇa˙’ng l c´o thˆe˙’ d¯i ngang qua M; hoˇa. c ca˙’ hai pixel nˇa`m vˆe` c`ung

mˆo.

t nu.

˙’ a mˇa.

t phˇa˙’ng (l

+) (hoˇa. c (l

−)) nhu.ng trong bˆa´t c´u.

tru.`o

.ng ho.

. p n`ao, ta vˆa˜n cho.n d¯iˆe˙’m

gˆa`n v´o.

i l nhˆa´t. Ho.n n˜u.a, sai sˆo´-t´u.

c l`a khoa˙’ng c´ach gi˜u.a pixel d¯u.o

.

. c cho.n v`a d¯u.`o

.ng thˇa˙’ng

thu.

. c tˆe´ l-luˆon luˆon nho˙’ ho.n hoˇa. c bˇa`ng 1/2.

14

Tải ngay đi em, còn do dự, trời tối mất!