You are on page 1of 59

B GIAO THNG VN TI

TRNG I HC HNG HI
B MN: KHOA HC MY TNH
KHOA: CNG NGH THNG TIN
BI GING
HA MY TNH
TN HC PHN : HA MY TNH
M HC PHN : 17211
TRNH O TO : I HC CHNH QUY
DNG CHO SV NGNH : CNG NGH THNG TIN

HI PHNG - 2010
MC LC
STT NI DUNG TRANG
CHNG 1 GII THIU HA MY TNH 1
1.1
Gii thiu v ha my tnh 1
1.2
Tng quan v mt h ha 1
1.2.1
H ta thc, h ta thit b v h ta chun 2
1.2.2
M hnh mu 3
CHNG 2 CC I TNG HA C BN 4
2.1
Gii thiu v cc i tng ha c s 4
2.1.1
Cc i tng ha c s: im, ng, vng t, vn bn 4
2.1.2
Cc thuc tnh ca cc i tng ha c s 4
2.2
Cc thut ton v i tng ha c s 4
2.2.1
V ng thng 6
2.2.2
V ng trn, elip 8
2.3
Cc thut ton t mu 9
2.3.1
Thut ton t mu da theo dng qut n gin 10
2.3.2
Thut ton t mu da theo ng bin 11
2.4
Bi tp p dng 12
CHNG 3 CC PHP BIN I HA 2 CHIU 13
3.1 Cc php bin i c s 13
3.1.1 Gii thiu v php bin i 13
3.1.2 Php tnh tin 13
3.1.3 Php bin i t l 13
3.1.4 Php quay 14
3.2 Kt hp cc php bin i 14
3.2.1 Kt hp cc php tnh tin 14
3.2.2 Kt hp cc php bin i t l 14
3.2.3 Kt hp cc php quay 14
3.3 Mt s php bin i khc 15
3.3.1 Php bin dng 15
3.3.2 Php i xng 15
3.3.3 Tnh cht ca php bin i affine 15
3.4 Php bin i gia cc h ta 15
3.5 Bi tp p dng 16
CHNG 4 PHP QUAN ST 2 CHIU 17
4.1 Ca s v vng quan st 17
4.2 Php bin i t ca s - n vng quan st 18
4.3 Php ct xn hai chiu 19
4.3.1 Gii thut Cohen Sutherland 20
4.3.2 Gii thut chia ti trung im 21
4.3.3 Gii thut Liang Barsky 22
4.4 Bi tp p dng 23
CHNG 5 HA 3 CHIU 24
5.1 Tng quan v ha ba chiu 24
5.1.1 Quy trnh hin th ha ba chiu 24
5.1.2 M hnh ha i tng 24
5.2 Biu din i tng ba chiu 26
5.2.1 Biu din mt a gic 26
5.2.2 ng cong v mt cong , ng cong v mt cong Bezier, B-
Spline
26
5.3 Cc php bin i hnh hc ba chiu 28
5.3.1 Php bin i t l 29
5.3.2 Php bin dng 29
5.3.3 Php tnh tin 30
5.3.4 Php quay 30
5.4 Bi tp p dng 31
CHNG 6 QUAN ST 3 CHIU 32
6.1 Cc php chiu 32
6.2 Php chiu song song 33
6.3 Php chiu phi cnh 36
6.4 Bi tp p dng 40
CHNG 7 HIN TH HNH NH THT 41
7.1 Kh ng khut, mt khut 41
7.2 Php t bng 44
7.3 Bi tp p dng 48
Ti liu, thi n tp 49
Tn hc phn: ha my tnh Loi hc phn: 4
B mn ph trch ging dy: Khoa hc My tnh Khoa ph trch: CNTT
M hc phn: 17211 Tng s TC: 4
TS tit L thuyt Thc hnh/Xemina T hc Bi tp ln n mn hc
75 45 15 0 15 0
iu kin tin quyt:
Sinh vin phi hc xong cc hc phn sau mi c ng k hc phn ny:
Ton cao cp, Ton ri rc, K thut lp trnh, Tin hc i cng, Cu trc d liu, Gii thut
Mc tiu ca hc phn:
Cung cp cho sinh vin kin thc v rn luyn k nng lp trnh ha my tnh ha my
tnh, cc phng php dng hnh, x l hnh nh c bn trong ha.
Ni dung ch yu
- Nhng vn c bn v ha my tnh
- Cc thut ton c bn trong ha my tnh.
- ha 2D/3D
- Cc phng php bin hnh
- Cc phng php to bng
Ni dung chi tit ca hc phn:
TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
Chng 1: Gii thiu ha my tnh. 3 3 0
1.1. Gii thiu v ha my tnh
1.2. Tng quan v mt h ha
Chng 2 : Cc i tng ha c bn 12 9 2 1
2.1. Gii thiu v cc i tng ha c s
2.1.1. Cc i tng ha c s : im, ng,
vng t, vn bn,...
TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
2.1.2. Cc thuc tnh ca cc i tng ha c
s
2.2. Cc thut ton v i tng ha c s
2.2.1. V ng thng
2.2.2. V ng trn, ellipse
2.3. Cc thut ton t mu
2.3.1. Thut ton t mu da theo ng bin
2.3.2. Thut ton t mu theo dng qut
2.4. Bi tp p dng
Chng 3: Cc php bin i ha 2 chiu. 10 8 2
3.1. Cc php bin i c s
3.1.1 Gii thiu v php bin i, biu din ma trn
ca php bin i, php bin i affine
3.1.2. Php tnh tin
3.1.3. Php bin i t l
3.1.4. Php quay quanh gc ta
3.1.5. Biu din ma trn ca cc php bin i. H
ta thun nht
3.2. Kt hp cc php bin i
3.2.1. Kt hp hai hay nhiu php tnh tin
3.2.2. Kt hp hai hay nhiu php bin i t l
3.2.3. Kt hp hai hay nhiu php quay quanh tm
3.3. Mt s php bin i khc
3.3.1. Php bin dng
3.3.2. Php i xng
TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
3.3.3. Tnh cht ca php bin i affine
3.4. Php bin i gia cc h ta
3.5. Bi tp p dng
Chng 4: Php quan st hai chiu 9 6 2 1
4.1. Ca s, Vng quan st
4.2. Php bin i t ca s - n vng quan st
4.3. Php ct xn 2 chiu
4.3.1 Gii thut Cohen Suntherland
4.3.2 Gii thut chia trung im
4.3.3 Gii thut Liang Barsky
4.4. Bi tp p dng
Chng 5: ha ba chiu 21 9 5 6 1
5.1. Tng quan v ha ba chiu
5.1.1. Quy trnh hin th ha ba chiu
5.1.2. M hnh ha i tng
5.2. Biu din i tng ba chiu
5.2.1. Biu din mt a gic
5.2.2. ng cong v mt cong , ng cong v mt
cong Bezier, B-Spline
5.3. Cc php bin i hnh hc ba chiu
5.3.1. Php t l
5.3.2. Php bin dng
5.3.3. Php quay quanh trc ta
5.3.4. Php i xng
5.4. Bi tp p dng
TN CHNG MC
PHN PHI S TIT
TS LT TH/Xemina BT KT
Chng 6: Quan st ba chiu 10 6 2 2
6.1. Cc php chiu
6.2. Php chiu song song
6.3. Php chiu phi cnh
6.4. Bi tp p dng
Chng 7: Hin th hnh nh tht 10 4 2 3 1
7.1 Kh ng khut, mt khut
7.2 Php t bng
Nhim v ca sinh vin :
Tham d cc bui thuyt trnh ca gio vin, t hc, t lm bi tp do gio vin giao, tham d
cc bi kim tra nh k v cui k.
Ti liu hc tp :
- ng Vn c. K thut ha my tnh. Vin Cng ngh thng tin. 2002.
- Donald Hearn, M. Pauline Baker, Computer Graphics, Prentice-Hall Inc., Englewood
Cliffs, New Jersey, 1986.
- F.S.Hill, Computer graphics, 1990
Hnh thc v tiu chun nh gi sinh vin:
- Hnh thc thi cui k : Thi vit.
- Sinh vin phi m bo cc iu kin theo Quy ch ca Nh trng v ca B
Thang im: Thang im ch A, B, C, D, F
im nh gi hc phn: Z = 0,4X + 0,6Y.
CHNG I GII THIU HA MY TNH
1.1 Gii thiu v ha my tnh
Ngy nay, ha my tnh c ng dng rng ri trong ngnh cng ngh thng tin. Kh m tm
c mt ng dng thng mi ca cng ngh thng tin khng s dng mt thnh phn no ca
h ha my tnh. ha my tnh v tr quan trng trong lnh vc thit k v giao tip k
thut. N l c s chuyn i cc gii php tnh ton s sang th hin hnh nh t nhin cho thit
k k thut hay mun sng t mt vn phc tp. ha my tnh biu din c hnh nh i
tng, quan h, d liu, v tr ha my tnh cn c chc nng m t kch thc ca i
tng, phn tch d liu. Trong nhng thp nin cui th k 20, s pht trin mnh ca nhng h
ha nh CAD/CAM tr thnh chun cng nghip v trng hc.
7.2 Tng quan v mt h ha
Mc tiu ca ha my tnh c chc nng to ra v thao tc cc hnh nh ha, nn n phi c
kh nng to ra v hiu chnh cc hnh nh bng cc tng tc v p ng. Cc ng dng ha
a ra cc ch dn thut ng theo yu cu ha ngi dng. Th vin ha thc hin tng tc,
lm cu ni cho giao tip gia ngi dng v cc thit b vt l n gin i.
H thng ha
Mt trong cc yu cu chnh ca mt h thng ha l cc ng dng, p dng cho nhiu h thit
b vt l, phi c pht trin khng ph thuc vo phn cng. c c iu , phi c tiu
chun ha cho mi trng ha mc chc nng, bng vic cung cp s c lp thit b v ngn
ng lp trnh.
S c lp vi thit b cho php cc chng trnh ng dng ha chy trn cc dng phn cng
khc nhau. N c thc hin thng qua thit b nhp xut logic cung cp cho phn mm ng dng
thng qua th vin ha v nh x thit b vt l c th.
Cho ti nay, c nhng tiu chun ha c pht trin trong nhiu nm, bao gm:
GKS(Graphics Kernel System 1985), c pht trin ring cho cc thit b nhp xut 2 chiu.
GKS-3D b sung thm kh nng lp trnh 3 chiu. PHIGS (Programmers Hierarchical Graphics
System 1984) hay PHIGS+ bao gm kh nng lp trnh khng gian , to thnh thao tc d liu
ha phc tp
Cc tiu chun ha thc t l kt qu ca vic chp nhn trong cng nghip cc giao din c
trng, c xut bi nhiu cng ty v khng nu ra trong cc tiu chun chnh thc. c nhc
n trong s ny l h X-Windows, cung cp mt lot cc chc nng nhp v thao tc ha 2
chiu. S m rng c bt u vo gia nhng nm 80 l h X-Windows 3 chiu.
m bo s linh hot, cc tiu chun ha thit lp cho ng dng cc thay i ti thiu, cho
php n nh a ch cc thit b nhp xut khc nhau. Khi u, ngi lp trnh to ra mt h thng
Trang
1
ta m hnh, m t i tng gi l h thng ta thc. Tip theo, l h ta tiu chun v
h ta thit b. Chng trnh ng dng s giao tip vi h ta chun theo cch thc ph hp,
khng quan tm n thit b xut c dng. Do , to ra s c lp vi thit b trong vic to ra
hnh nh ca i tng.
1.2.1 H ta thc, h ta thit b v h ta chun
Trong lnh vc k thut ha, chng ta phi hiu c rng thc cht ca ha l lm th no
c th m t v bin i c cc i tng trong th gii thc trn my tnh. Bi v, cc
i tng trong th gii thc c m t bng ta thc. Trong khi , h ta thit b li s
dng h ta nguyn hin th cc hnh nh. y chnh l vn c bn cn gii quyt.
Ngoi ra, cn c mt kh khn khc l vi cc thit b khc nhau th c cc nh ngha khc nhau.
Do , cn c mt phng php chuyn i tng ng gia cc h ta v i tng phi c
nh ngha bi cc thnh phn n gin nh th no c th m t gn ng vi hnh nh thc
bn ngoi.
H ta thc l h ta Decac, m t ta thc ca i tng. Cc php bin hnh m t trong cc
chng sau c th p dng trc tip trong ta thc.
H ta thit b c dng cho mt thit b
xut c th no , v d nh my in, mn hnh..
Trong h ta thit b th cc im c m
t bi ta nguyn. iu ny c ngha l cc
im trong h ta thc c nh ngha lin
tc, cn cc im trong h ta thit b l ri rc
v gii hn. Ngoi ra, php bin hnh t ta
thc sang ta thit b ph thuc loi thit b
hin th. Do , cc phng php tng qut ca
ng dng ha c khuynh hng b qua c
im ring ca thit b, m c gng thay th thng qua mt tiu chun th vin giao din ha,
chng hn nh GKS hay PHIGS.
H ta thit b chun c nh ngha cho thit b ha l tng. Do cch nh ngha cc h
ta thit b khc nhau nn mt hnh nh hin th c trn thit b ny l chnh xc th cha
chc hin th chnh xc trn tht b khc. Ngi ta xy dng mt h ta thit b chun i din
chung cho tt c cc thit b c th m t cc hnh nh m khng ph thuc vo bt k thit b
no. Trong h ta chun, cc ta x, y s c gn cc gi tr trong on t [0,1].
1.2.2 M hnh mu
Mu sc c s dng trong cc ng dng ha my tnh gip ngi dng hiu r v i tng hnh
hc. Cc mn hnh ha da trn vic s dng cc mu sc chromatic. Chng da trn l thuyt v b
no ngi l mu sc nh sng c tip nhn nh s phi hp t 3 mu l (red), xanh l cy (green),
v xanh dng (blue). Ni chung, mu c m t bng 3 thuc tnh l mu sc (hue), bo ha
(saturation), v sng (brightness); chng xc nh v tr trong quang ph mu, tinh khit v cng
sng. C hng lot phng php c to cc m hnh mu trong cc ng dng ha. Trong phn
ny ch a ra nhng m hnh mu tiu biu hn c, gip tm hiu cc ng dng la chn mu sc
thch hp nh th no.

Trang
2
a. RGB (Red Green Blue):
M hnh mu RGB m t mu
sc bng 3 thnh phn chnh l
Red Green v Blue. M hnh
ny c xem nh mt khi lp
phng 3 chiu vi mu red l
trc x, mu Green l truc y,
v mu Blue l trc z. Mi
mu trong m hnh ny c
xc nh bi 3 thnh phn R, G,
B. ng vi cc t hp khc
nhau ca 3 mu ny s cho ta
mt mu mi .
Trong hnh lp phng trn,
mi mu gc (R,G,B) c cc
gc i din l cc mu b vi n. Hai mu c gi l b nhau khi kt hp hai mu ny li vi
nhau ra mu trng. V d : Green Magenta, Red Cyan, Blue Yellow.
b. CMY (Cyan Magenta Yellow):
Tng t nh m hnh mu RGB nhng 3 thnh phn chnh l Cyan Magenta Yellow. Do ,
ta cc mu trong m hnh CMY tri ngc vi m hnh RGB. V d : mu White c cc
thnh phn l (0,0,0), mu Black (1,1,1), mu Cyan (1,0,0),....
c. HSV (Hue Saturation Value ):
Thc cht ca m hnh ny l s bin i ca m hnh RGB. M hnh HSV c m t bng lnh
lp phng RGB quay trn nh Black. H (Hue) l gc quay trc V (value) qua 2 nh Black v
White. Cc gi tr bin thin ca H, S, V nh sau: (Hue) ch sc thi c gi tr t 0
0
360
0
. S
(Saturation) ch bo ho. V (Value) c gi tr t 0 1. Cc mu t gi tr bo ha khi s = 1 v v
= 1.

CHNG II CC I TNG HA C BN
Trang
3
2.1 Gii thiu v cc i tng ha c s
K thut ha lin quan n tin hc v ton hc bi v hu ht cc gii thut v, t cng cc php
bin hnh u c xy dng da trn nn tng ca hnh hc khng gian hai chiu v ba chiu.
Trong chng ny, chng ta gii thiu cc thut ton v v t cc ng c bn nh ng thng,
a gic, ng trn, ellipse. Cc thut ton ny gip cho sinh vin hiu c qu trnh v v t mt
i tng hnh hc c s nh th no.
2.1.1 Cc i tng ha c s
- im: im l thnh phn c s c nh ngha trong mt h ta , i vi h ta 2 chiu
mi im c xc nh bi honh v tung . Ngoi thng tin ta , im cn c thng tin
mu sc.
- on thng, ng thng: ng thng xc nh qua 2 im, on thng b gii hn bi 2 im
u v cui. Phng trnh ng thng c xc nh qua 2 im P(x
1
, y
1
) v Q(x
2
, y
2
) nh sau:

1 2
1 2
1
1
y y
x x
y y
x x

Hay dng phng trnh on chn y = mx + b, trong : D


x
= x
2
x
1
, D
y
= y
2
y
1
,
x
y
D
D
m
Hay dng tng qut: Ax + By + C = 0 , trong : A = y
2
- y
1
, B = x
1
x
2
, C = x
2
y
1
x
1
y
2
- ng gp khc: l tp cc on thng ni vi nhau mt cch tun t, cc on khng nht thit
phi to thnh hnh khp kn v c th ct nhau. Giao ca hai on thng l nh, nh u v nh
cui ca a gic trng nhau.
- Vng t: bao gm ng bin v vng bn trong, ng bin l ng khp kn nh a gic li.
- K t, chui k t: K t cho php hin th thng tin theo ngn ng no .
2.1.2 Cc thuc tnh ca cc i tng ha c s
- im c thuc tnh mu sc.
- on thng, ng thng c thuc tnh mu sc, rng, kiu nt.
- Vng t c thuc tnh ca ng thng, v thuc tnh ring l mu t v mu t.
- K t c thuc tnh mu sc, kiu ch, c ch, khong cch gia cc k t, hng
hin th k t...
2.2 Cc thut ton v i tng ha c s
2.2.1 Thut ton v ng thng
Xt on thng c h s gc 0<m<=1 v x>0. Vi cc on thng dng ny, nu (x
i
, y
i
) l im
c xc nh bc th i th im k tip (x
i+1
, y
i+1
) bc th i+1 s l mt trong hai im (x
i
+
1, y
i
) hoc (x
i
+ 1, y
i
+ 1).
Vn t ra l chn im v nh th no ng thng c v gn vi ng thng mun v
nht v t c ti u ha v mt tc ?
Thut ton DDA
Trang
4
L thut ton tnh ton cc im v dc theo ng thng da vo h s gc ca phng trnh
ng thng y = mx+b. Trong :
1 2 x
1
2 y
x
y
x x y y m , ,


. Nhn thy ta ca
im x s tng 1 n v trn mi im v, cn vic quyt nh chn y
i +1
l y
i
+1 hay y
i
s ph
thuc vo gi tr sau khi lm trn ca tung y. Tuy nhin, nu tnh trc tip gi tr thc ca y
mi bc t phng trnh y = mx+b th cn mt php ton nhn v mt php ton cng s thc:
y
i +1
= mx
i +1
+ b = m(x
i
+ 1) + b = mx
i
+ b + m
ci thin tc , ngi ta kh php nhn trn s thc. Ta c :
y
i
= mx
i
+ b y
i +1
= y
i
+ m int(y
i
+1) (2-1)
C 2 kh nng:
0<m<=1: x
i +1
= x
i
+ 1, y
i +1
= y
i
+ m int(y
i +1
) (2-2)
m>1: x
i +1
= x
i
+ 1/m int(x
i+1
), y
i +1
= y
i
+ 1
Hai trng hp ny dng v mt im bt u t bn tri n im cui cng bn phi ca ng
thng (xem hnh 2.1). Nu im bt u t bn phi n im cui cng bn tri th xt ngc li :
0<m<=1: x
i +1
= x
i
- 1, y
i +1
= y
i
- m int(y
i +1
) (2-3)
m>1: x
i +1
= x
i
- 1/m int(x
i+1
), y
i +1
= y
i
- 1
Hnh 2.1 Dng ng thng tng ng 2 kh nng ca m.
Tng t, c th tnh ton cc im v cho trng hp m<0:
khi |m|<=1 hoc |m|>1 (sinh vin t tm hiu thm).
Thut ton Bresenham
Hnh 2.2 Dng ng thng nu
0<m<=1
Gi (x
i+1
, y
i +1
) l im thuc on thng (xem hnh 2.2). Ta c y = m(x
i
+1) + b
t d1

= y
i +1
y
i
v d2

= (y
i
+1) y
i +1
Trang
5
Vic chn im (x
i +1
, y
i +1
) l P
1
hay P
2
ph thuc vo vic so snh d1 v d2
Nu d1- d2<0 : chn im P
1
, tc l y
i +1
= y
i
Nu d1- d2 0 : chn im P
2
, tc l y
i +1
= y
i
+1
Ta c : d1 d2 = 2y
i+1
2y
i
1 = 2m(x
i
+1) + 2b 2y
i
1 (2-4)
P
i
= x (d1

d2) = x[2m(x
i
+1) + 2b - 2y
i
1] =
= 2y(x
i
+1) 2x.y
i
+ x(2b 1) = 2y.x
i
2x.y
i
+ 2y + x(2b 1)
Vy C = 2y + x(2b 1) = Const P
i
= 2y.x
i
2x.y
i
+ C (2-5)
Nhn xt rng nu ti bc th i ta xc nh c du ca P
i
th xem nh ta xc nh c im cn
chn bc (i+1). Ta c :
P
i +1
P
i
= (2y.x
i+1
2x.y
i+1
+ C) (2y.x
i
2x.y
i
+ C )
P
i +1
= P
i
+ 2y 2x ( y
i+1
- y
i
)
Nu P
i
< 0 : chn im P
1
, tc l y
i +1
= y
i
v P
i +1
= P
i
+ 2y
Nu P
i
0 : chn im P
2
, tc l y
i +1
= y
i
+1 v P
i +1
= P
i
+ 2y 2x (2-6)
Gi tr P
0
c tnh t im v u tin (x
o
, y
o
) theo cng thc: P
o
= 2y.x
o
2x.y
o
+ C
Do (x
o
,y
o
) l im nguyn thuc v on thng nn ta c: b x
x
y
b mx y
o o o

+ +
Thay y
o
vo phng trnh trn ta c: P
o
= 2y x
Nhn xt:
Thut ton Bresenham ch thao tc trn s nguyn v ch tnh ton trn php cng v php nhn 2.
iu ny l mt ci tin lm tng tc ng k so vi thut ton DDA. tng chnh ca thut
ton ny l ch xt du P
i
quyt nh im k tip, v s dng cng thc truy hi P
i +1
P
i
tnh P
i
bng cc php ton n gin trn s nguyn. Tuy nhin, vic xy dng trng hp tng
qut cho thut ton Bresenham c phc tp hn thut ton DDA.
2.2.2 Thut ton v ng trn, elip
Trong h ta Descartes, phng trnh ng trn bn knh R c dng:
Tm O(0,0) : x
2
+ y
2
= R
2
;
Tm C(x
c
,y
c
) : (x x
c
)
2
+ (y y
c
)
2
= R
2

(2-7)
Trong h ta cc :
] 2 [0,
Rsin y y
Rcos x x
,
c
c

'

+
+

Trang
6
] ) (

[ 1 2y 2b 1 x
x
y
2 x
i i
+ +
Do tnh i xng ca ng trn C, nn ta ch cn
v 1/8 cung trn, sau ly i xng qua 2 trc
ta v 2 ng phn gic th ta v c c
ng trn.
Hnh 2.3 ng trn vi cc im i xng.
Thut ton xt trung im
Do tnh i xng ca ng trn nn ta ch cn v 1/8 cung trn, sau ly i xng l v c c
ng trn. Thut ton trung im a ra cch chn y
i+1
l y
i
hay y
i
-1 bng cch so snh im
Q(x
i+1
,y) vi im gia l trung im (Midpoint) ca S1 v S2. Chn im bt u v l (0, R).
Gi s (x
i
, y
i
) l im nguyn tm c bc th i (xem hnh 2.4), th im (x
i+1
, y
i+1
)
bc i+1 l s la chn gia S1 (x
i
+ 1, y
i
) v S2 (x
i
+ 1, y
i
1).

Hnh 2.4 ng trn vi im Q(x
i
+1, y)
v trung im.
t F(x,y) = x
2
+ y
2
R
2
, ta c :
F(x,y) < 0 , nu im (x,y) nm
trong ng trn.
F(x,y) = 0 , nu im (x,y) nm
trn ng trn.
F(x,y) > 0 , nu im (x,y) nm
ngoi ng trn.
Xt P
i
= F(MidPoint) = F(x
i
+1, y
i
1/2). Ta c :

Nu P
i
< 0 : im MidPoint nm trong ng trn. Khi , im Q gn vi im
S1 hn
nn ta chn y
i+1
= y
i
.
Nu P
i
>= 0 : im MidPoint nm ngoi ng trn. Khi , im Q gn vi im S2 hn
nn ta chn y
i+1
= y
i
1.
Mt khc : P
i+1
P
i
= F(x
i+1
+1, y
i+1
1/2) F(x
i
+ 1, y
i
1/2)
= [(x
i+1
+1)
2
+ (y
i+1
1/2)
2
R
2
] [(x
i
+1)
2
+ (y
i
1/2)
2
R
2
]
= 2x
i
+ 3 + ((y
i+1
)
2
(y
i
)
2
) (y
i+1
y
i
)
Trang
7
Vy: Nu P
i
< 0 : chn y
i+1
= y
i
. Khi P
i+1
= P
i
+ 2x
i
+3 (2-8)
Nu P
i
>= 0 : chn y
i+1
= y
i
1. Khi P
i+1
= P
i
+ 2x
i
2y
i
+5
P
i
ng vi im ban u (x
o
, y
o
) = (0,R) l: P
o
= F(x
o
+ 1, y
o
1/2) = F(1, R 1/2) = 5/4 R
Thut ton Bresenham
Tng t thut ton v ng thng
Bresenham, cc v tr ng vi cc ta
nguyn nm trn ng trn c th
tnh c bng cch xc nh mt trong
hai pixel gn nht vi ng trn hn
trong mi bc.
Hnh 2.5 ng trn vi khong cch
d1 v d2.
Ta c : d1 = (y
i
)
2
y
2
= (y
i
)
2
(R
2
- (x
i
+ 1)
2
)
d2 = y
2
(y
i
1)
2
= (R
2
- (x
i
+ 1)
2
) (y
i
1)
2
t P
i
= d1 d2 , do P
i+1
= P
i
+ 4x
i
+ 6 + 2((y
i+1
)
2
(y
i
)
2
) 2(y
i+1
y
i
)
Nu Pi < 0 : chn y
i+1
= y
i
. Khi P
i+1
= P
i
+ 4x
i
+6 (2-9)
Nu P
i
>= 0 : chn y
i+1
= y
i
1. Khi P
i+1
= P
i
+ 4(x
i
y
i
) + 10
P
o
ng vi im ban u (x
o
, y
o
) = (0,R) l: P
o
= 3 2R.
Thut ton v elip
Tng t thut ton v ng trn, s dng thut ton Bresenham v, ta ch cn v 1/4 ellipse,
sau ly i xng qua cc trc ta s v c ton b ellipse.
Xt ellipse c tm O, cc bn knh l a v b, phng trnh l:
t F(x, y) = b
2
x
2
+ a
2
y
2
a
2
b
2
(2-10)
Cung1/4 ellipse c v nm trong phn t th nht ca h ta . Cn c dc gradient theo
hng x (Fx = 2b
2
x) v hng y (Fy = 2a
2
y) v cung 1/4 ellipse, cung chia thnh 2 phn.
Phn th nht ca 1/4 ellipse cha ta im u tin cn hin th (0 , b). Nu c (x
i

, y
i
), tm
im tip theo l (x
i
+1, y
i
-1) hay (x
i
+1 , y
i
).
Chn P
i
= F(x
i
+ 1, y
i
1/2), do : P
i+1
= P
i
+ b
2
(2x
i
+ 3) + a
2
((y
i+1
1/2)
2
(y
i
1/2)
2
)
Nu P
i
< 0 : y
i+1
= y
i
, do P
i+1
= P
i
+ b
2
(2x
i
+ 3)

Nu P
i
>= 0 :
y
i+1
= yi - 1, do P
i+1
= P
i
+ b
2
(2x
i
+ 3) + a
2
(2 2y
i
)
P
o
ca im ban u (0, b) l: b
2
a
2
b + a
2
/4
Phn cn li ca 1/4 ellipse: nu c (x
i

, y
i
), tm im (x
i+1
,y
i+1
) l (x
i
, y
i
-1) hay (x
i
+1, y
i
- 1)
Chn P
i
= F(x
i
+ 1/2, y
i
1) , do : P
i+1
= P
i
+ a
2
(3 2y
i
) + b
2
((x
i+1
+ 1/2)
2
(x
i
+ 1/2)
2
)
Trang
8
1
b
y
a
x
2
2
2
2
+

Nu P
i
>=0 : x
i+1
= x
i
, do P
i+1
= P
i
+ a
2
(3 - 2y
i
)

Nu P
i
< 0 : x
i+1
= x
i
+1, do P
i+1
= P
i
+ b
2
(2x
i
+ 2) + a
2
(3 - 2y
i
)

P
o
ca im u tin trong phn th hai l: P
o
(x
i
, y
i
) = a
2
b
2
+ b
2
(x
i
+ 1/2)
2
+ a
2
(y
i
-
1)
2


2.3 Thut ton t mu
T mu mt vng l thay i mu sc ca cc im v nm trong vng cn t. Mt vng t thng
c xc nh bi mt ng khp kn no gi l ng bin. Dng ng bin n gin
thng gp l a gic.
Vic t mu thng chia lm 2 cng on :
- Xc nh v tr cc im cn t mu.
- Quyt nh t cc im trn bng mu no. Cng on ny s tr nn phc tp khi ta cn t
theo mt mu t no ch khng phi t thun mt mu.
C 3 cch tip cn chnh t mu. l : t mu theo tng im (c th gi l t n gin), t
mu theo dng qut v t mu da theo ng bin. Chng ta s gii thiu 2 loi thut ton t mu
n gin v t mu ng bin. Thut ton t mu theo dng qut th sinh vin t tm hiu.
2.3
.1 T n gin
Thut ton ny bt u t vic xc nh mt im c thuc vng cn t hay khng ? Nu ng l
im thuc vng cn t th s t vi mu mun t.
a. T ng trn
t ng trn th ta tm hnh vung nh nht ngoi tip ng trn bng cch xc nh im
trn bn tri (x
c
r, y
c
r) v im di bn phi (x
c
+ r, y
c
+ r) ca hnh vung .
Gii thut gi m nh sau:
i chy t x
c
-r n x
c
+r
j chy t y
c
-r n y
c
+r
tm khong cch d gia hai im (i,j) v tm (x
c
,y
c
)
nu d<r th t im (i,j) vi mu mun t
Hnh 2.6 ng trn ni tip hnh vung. Hnh 2.7 a gic ni tip hnh ch nht.
b.T a gic
Trang
9
Trc tin, chng ta gii quyt bi
ton tm hnh ch nht nh nht c
cc cnh song song vi hai trc ta
cha a gic cn t da vo hai
ta (xmin, ymin), (xmax, ymax).
Trong , xmin, ymin l honh
v tung nh nht, xmax, ymax l
honh v tung ln nht ca
cc nh ca a gic. Cch t a
gic l cho x i t xmin n xmax, y
i t ymin n ymax (hoc ngc
li). Nhng khc vi hnh trn, ta
khng th xc nh mt im no
c nm trong a gic khng?
Do , chng ta phn tch bi ton sau y:
Hnh 2.8 Cho a gic gm 13 nh l P
o

, P
1

, ....., P
12

, P
o
.
Xt im P(x,y) c thuc a gic khng ? Nu c th t vi mu cn t.
Thng thng mt im nm trong a gic th s giao im t mt tia bt k xut pht t im
ct bin ca a gic phi l mt s l ln. c bit, ti cc nh cc tr (cc i hay cc tiu ) th
mt giao im phi c tnh 2 ln (xem hnh 2.8). Tia c th qua phi hay qua tri. Thng
thng ta chn tia qua phi. Tuy nhin c 4 kh nng ny sinh nh sau :
Gi tung ca nh Pi l Pi.y . Nu :
P
i
.y < Min( P
i+1
.y, P
i -1
.y) hay P
i
.y > Max( P
i+1
.y, P
i -1
.y) th P
i
l nh cc tr ( cc tiu
hay cc i ).
P
i -1
.y < P
i
.y < P
i+1
.y hay P
i -1.y
> P
i
.y > P
i+1
.y th P
i
l nh n iu.
P
i.y
= P
i+1.y
v P
i
.y < Min( P
i+2
.y , P
i-1
.y) hay P
i.y
> Max( P
i+2
.y , P
i -1
.y) th on
[P
i
, P
i+1
] l on cc tr ( cc tiu hay cc i ).
P
i. y
= P
i+1.y
v P
i -1
.y < P
i
.y < P
i+2
.y hay P
i -1.y
> P
i
.y > P
i+2
.y th on [P
i
,P
i+1
]
l on n iu.
Thut ton kim tra im c nm trong a gic
- Vi mi nh ca a gic ta nh du l 0 hay 1 theo qui c nh sau: nu l nh cc tr hay on
cc tr th nh s 0. Nu l nh n iu hay on n iu th nh du 1.
- Xt s giao im ca tia na ng thng t P l im cn xt vi bin ca a gic. Nu s giao
im l chn th kt lun im khng thuc a gic. Ngc li, s giao im l l th im thuc a
gic.
2.3.2 T mu ng bin
Bi ton t ra : Cn t mu mt vng nu bit c mu ca ng bin vng t v mt im nm
bn trong vng t.
tng : Bt u t mt im nm bn trong vng t, kim tra cc im ln cn ca n c t
vi mu mun t, hay im ln cn c mu trng vi mu bin khng ? Nu c hai trng hp u
khng phi th ta s t im vi mu mun t. Qu trnh ny c lp li cho n khi khng cn
t c na th dng.

Trang
10
C 2 quan im v cch t ny. l dng 4 im ln cn (c th gi l 4 lin thng) hay 8 im
ln cn (8 lin thng)
Ci t minh ha thut ton 4 lin thng
Boundary_fill ( x,y, mauto, maubien :integer);
mau_ht : integer;
begin
mau_ht:= getpixel(x, y);
If (mau_ht <> mauto) and (mau_ht <> maubien) then
begin
putpixel(x,y,color);
Boundary_fill ( x+1,y, mauto, maubien );
Boundary_fill ( x-1,y, mauto, maubien );
Boundary_fill ( x,y+1, mauto, maubien );
Boundary_fill ( x,y-1, mauto, maubien );
end;
end;
Nhn xt :
- Thut ton c th khng chnh xc khi c mt s im nm trong vng t c mu l mu cn t
ca vng.
- Vic thc hin gi qui lm thut ton khng th s dng cho vng t ln ( trn stack).
- C th khc phc vic trn stack bng cch gim s ln gi qui. Khi u im (x,y) l im
c v tr c bit trong vng t, sau , gi qui cc im ln cn ca (x,y).
2.4 Bi tp p dng
Bi 1 Ti sao phi so snh gi tr P
i
vi 0 trong cc gii thut Bresenham hay Midpoint. Bn cht
ca so snh l g?
Gi : gi tr P
i
to ra khng c php chia nguyn, tnh ton nhanh v chnh xc hn l tnh trc
Trang
11
tip.
Bi 2 Ct t cc gii thut Bresenham, MidPoint v on thng vi h s gc trong khong [-1, 1],
ng trn.
Gi : V ng thng, ta xt 3 trng hp 0 < m < 1, -1 < m < 0, m= 0.
Bi 3 Gii thch ti sao ch chn cung 1/8 v ri ly i xng m khng m rng cho cung 1/16
hay 1/32.
Gi : Nu cung di nh hn 1/8 th gii thut Midpoint khng cn ng na, v khng chnh
xc.
Bi 4 Ci t gii thut v elip c tm l gc ta , bn knh trc chnh, trc ph l a, b.
Gi : Da trn c s gii thut Midpoint cho v ng trn, nhng v cho cung ri ly i
xng.
Bi 5 Ci t thut ton t mu ng bin cho i tng hnh trn.
Gi : S dng gi thut t mu ng bin ci tin, s dng gii thut khng quy th tt hn
gii thut quy.
CHNG III CC PHP BIN I HA 2 CHIU
3.1 Cc php bin i c s
Trong lnh vc ha my tnh, hnh dng v kch thc ca i tng 2 chiu c trng bi h
thng ta Descartes 2 chiu. Mt tp hp cc php bin i hnh hc p dng cho i tng nh:
Trang
12
dch chuyn, thay i kch thc, phng chiu ca n . Cc h CAD lun c thao tc nh: scale,
move, rotate, copy thc hin nhng php bin i hnh hc c s.
Mi i tng hnh hc c biu din bng tp im. ng thng to thnh t hai im nt, mt tam
gic l kt hp t ba on thng. Do , tt c cc biu din hai chiu c nh ngha bng tp cc ta
(x, y) v xem l thnh phn c bn ca mi i tng hnh hc 2 chiu.
Ma trn hay dng cho cc nh ngha hnh hc v cc thao tc trong ha my tnh. N s thun tin
nu mi bin i hnh hc c th biu din theo dng ny. Tuy nhin, m t ma trn vung cp 2 trong h
ta Descartes 2 chiu khng m t y cc php bin i. khc phc, h ta thun nht
c p dng, vi mi im bt k, ngoi honh v tung s c ta th ba l 1 trong h ta
thun nht.
3.1.1 Php tnh tin
Kh nng tnh tin i tng l mt c im cn thit ca mi h thng ha. Php tnh tin lm cho
i tng dch chuyn theo mt hng vi di xc nh. Di dng ton hc, m t vi h phng
trnh sau:
x = x + T
x
(3-1)
y = y + T
y
3.1.2 Php bin i t l
Php bin i t l lm thay i kch thc i tng. co hay gin ta ca mt im P(x,y)
theo trc honh v trc tung ln lt l S
x
v S
y
(gi l cc h s t l), nu tm t l l gc ta
, th ta nhn S
x
v S
y
ln lt cho cc ta ca P.
x = x.S
x
(3-2)
y = y.S
y
- Khi cc gi tr S
x
, S
y
nh hn 1, php bin i s thu nh i tng. Ngc li, khi cc
gi tr ny ln hn 1, php bin i s phng ln i tng.
- Khi S
x
= S
y
, ngi ta gi l php ng dng (uniform scaling). y l php bin i
bo ton tnh cn xng ca i tng. Ta gi l php phng i nu |S|>1 v l php thu nh nu |
S|<1.
- Nu hai h s t l khc nhau th ta gi l php khng ng dng. Trong trng
hp hoc S
x
hoc S
y
c gi tr 1, ta gi l php cng (strain).
3.1.3 Php i xng
Thut ng i xng hiu nh hnh nh trong gng. Php i xng s dng trong vic to cc hnh
i xng. V d nh mt na hnh c to ra, sau ly i xng to nguyn hnh, v d nh
vic to khung mi nh. Cc ng dng nh CAD lun c ch th Mirror thc hin chc nng trn.
Php i xng qua im hay qua trc no . Ma trn i xng s c dng chung nh sau :
1
1
1
]
1

1 0 0
0 0
0
[M] b
0 a
RFL
(3-3)
Trang
13
Cc trng hp khc nhau ca i xng trc X, Y nh sau :

1
1
1
]
1

1 0 0
0 0
0
[M] 1 -
0 1
RFL_X

1
1
1
]
1

1 0 0
0 0
0
[M] 1
0 1 -
RFL_Y

3.1.4 Php quay
Php quay lm thay i hng ca i tng. Mt php quay i hi phi c tm quay, gc
quay. Gc quay dng thng c qui c l chiu ngc chiu kim ng h, cn tm quay l
gc ta . Ta c cng thc bin i ca php quay im P(x,y) quanh gc ta gc ti v tr
P(x, y):
x = x.cos - y.sin (3-4)
y = x.sin + y.cos
hoc di dng ma trn sau:
] ] [ [
1
1
1
]
1


1 0 0
0 cos sin
0 sin cos
1 y x 1 y' x'
3.2 Kt hp cc php bin i
Nhng php bin hnh 2 chiu i hi khng ch mt m l chui th t cc php bin hnh c s
cui cng thu c mc tiu mong mun.
3.2.1 Kt hp cc php tnh tin
Nu ta thc hin php tnh tin t im P c im P, ri li thc hin tip mt php tnh tin
khc ln P c im Q. Nh vy, im Q l nh ca php bin i kt hp hai php tnh tin lin
tip.
Q
x
= P
x
+ ( T
x1
+T
x2
)
Q
y
= P
y
+ ( T
y1
+ T
y2
)
Vy kt hp hai php tnh tin l mt php tnh tin. T , ta c kt hp ca nhiu php tnh
tin l mt php tnh tin.
3.2.2 Kt hp cc php bin i t l
Tng t nh php tnh tin, ta c ta im Q l im c c sau hai php t l M
1
(S
x1
, S
y1
),
M
2
(S
x2
, S
y2
) l :
Q
x
= P
x
* S
x1
* S
x2
Q
y
= P
y
* S
y1
* S
y2
Ta c kt hp ca nhiu php t l l mt php t l.
3.2.3 Kt hp cc php quay
Trang
14
Tng t, ta c ta im Q l im kt qu sau khi kt hp hai php quay cng chiu dng
quanh gc ta M
R1
(
1
) v M
R2
(
2
) l :
Q
x
= P
x
*cos(
1
+
2
) - P
y
*sin (
1
+
2
)
Q
y
= P
x
*sin(
1
+
2
) + P
y
*cos(
1
+
2
)
Ta c kt hp ca nhiu php quay l mt php quay.
3.3 Mt s php bin i khc
3.3.1 Php bin dng
Php bin dng lm thay i hnh dng i tng, bin dng theo trc honh hay trc tung bng
cch thay i ta im ban u theo cch sau y:

1
1
1
]
1

1 0 0
0 s
0
[M] 1
0 1
x SH_X

1
1
1
]
1

1 0 0
0 0
0 s
[M] 1
1
y
SH_Y
S
x
v S
y
l cc h s bin dng theo trc honh v trc tung.
3.3.2 Php i xng
Php i xng xem nh php quay quanh trc i xng gc 180
o
. Nu trc i xng l trc honh
hay trc tung , ta c cc ma trn bin i i xng qua trc honh v trc tung nh sau:

1
1
1
]
1

1 0 0
0 0
0
[M] 1 -
0 1
RFX

1
1
1
]
1

1 0 0
0 0
0
[M] 1
0 1 -
RFY
3.3.3 Tnh cht ca php bin i affine
Php bin i affine l php bin i tuyn tnh, nh nhng bin i trn. Nu c mt im P(x,y),
sau bin i affine c im Q(x, y) th php bin i thc hin theo php nhn ma trn:
] ] [ [
1
1
1
]
1

1 f c
0 e b
0 d a
1 y x 1 y' x'
Sau y l mt vi tnh cht c bn ca php bin i affine:
- Php bin i affine bo ton ng thng.
- Tnh song song ca cc ng thng c bo ton.
- T l khong cch c bo ton.
V d: Thc hin php i xng on thng AB c ta A(-1, -1) v B(2, 1) qua trc x = -2.
Php bin i l kt hp t 2 php bin i c s: tnh tin, i xng.
Chuyn trc x = -2 trng trc tung
i xng on AB theo trc tung
Chuyn trc i xng v v tr ban u.
Trang
15
Ma trn biu din cc bin i trn:
1
1
1
]
1

1
1
1
]
1

1
1
1
]
1

1
1
1
]
1


1 0 4 -
0 1 0
0 0 1 -
1 0 2 -
0 1 0
0 0 1
1 0 0
0 1 0
0 0 1 -
1 0 2
0 1 0
0 0 1
M
p dng cho on AB:
1
]
1

1
1
1
]
1

1
]
1


1 1 6
1 1 3
1 0 4 -
0 1 0
0 0 1 -
1 1 2
1 1 1
Do , v tr sau bin hnh l : A(-3 , -1) v B(-6 , 1).
3.4 Php bin i gia cc h ta
Cc php bin hnh da trn hai phng php l php bin hnh i tng v bin hnh h thng ta
. Php bin hnh i tng thay i ta cc im nhng khng thay i h ta , cn bin
hnh h ta to ra h ta mi, chng hn nh t h ta cc, ta cu sang h ta
cc hay gia hai h ta cc. Cc php bin i i tng xem xt phn trc, cn trong
phn ny, ta kho st php bin i gia 2 h ta cc.
Gi s ta c h ta I c gc ta O v cc vc t n v l i, j . H ta II l nh ca h ta
I qua php bin i T(M), c gc ta O v cc vc t n v l tng ng u, v. Lc ny, mt
im P(x, y) trong h ta I s bin i thnh im Q(a, b) trong h ta II.
Qua chng minh, tm c mi lin h gia 2 im Q v P trong h ta I v II nh sau:
Q = P.M
-1
hoc QM = P
Trong , M l ma trn bin i ca php bin i T(M) , M
-1
l ma trn nghch o ca M.
Nu h ta II nhn c t h ta I sau khi quay gc

theo chiu dng quanh gc ta


th Q v P s xc nh nh sau:

cos sin
sin cos
1] y [x 1] b [a
1
]
1

3.5 Bi tp p dng
Bi 1 Cho bit php bin i hnh vung thnh hnh ch nht?
Gi : S dng php bin i t l
Bi 2 Chng minh rng ma trn php bin i ly i xng qua ng thng y = x tng ng vi
kt hp ca php ly i xng trc honh v php quay quanh gc ta gc 90
o
.
Gi : Tm ma trn M
1
ca php ly i xng qua trc y = x, ma trn M
2
ca php i xng qua
trc honh, ma trn M
3
ca php quay 90
o
quanh gc ta . Chng minh M
1
= M
2
M
3
Bi 3 Chng minh php quay c tnh giao hon.
Gi : Gi s vi php quay quanh gc ta 1 gc , ta c c kt qu:
M
R1
(1) M
R2
(2) = M
R
( 1 + 2 ) = M
R2
(2) M
R1
(1)
Trang
16
Bi 4 Chng minh php bin i affine c phn tch thnh tch ca cc php tnh tin, t l, quay.
Gi : p dng quy tc phn r php bin i.
Bi 5 H ta xOy nhn c bng cch quay quanh gc ta gc , ri tnh tin theo vc t
(tr
x
, tr
y
) trong h ta xOy. Hy cho bit cng thc ta ca im Q trong h ta xOy nu
P(x, y) l ta ca im P trong xOy.
Gi : H ta xOy l nh ca h ta xOy, cn tm ma trn bin i l tch gia ma trn
quay v ma trn tnh tin.

CHNG IV PHP QUAN ST 2 CHIU
4.1 Ca s, Vng quan st
H ta Descartes l d thch ng cho cc chng trnh ng dng miu t cc hnh nh trn h
ta thc. Cc hnh nh c nh ngha trn h ta thc ny sau c h ha v ln
cc h ta thit b. in hnh, mt vng ha cho php ngi s dng xc nh vng no ca
hnh nh s c hin th v bn mun t n ni no trn h ta thit b. Mt vng n l
hoc vi vng ca hnh nh c th c chn. Nhng vng ny c th c t nhng v tr tch
bit, hoc mt vng c th c chn vo mt vng ln hn. Qu trnh bin i ny lin quan n
nhng thao tc nh tnh tin, bin i t l vng c chn , xa b vng khng c chn. Nhng
thao tc trn l Windowing v Clipping.
Trang
17
Hnh 4.1 nh x ca s - n vng quan st
Mt vng c dng hnh ch nht c xc nh trong h ta thc c gi l mt ca s
(window). Cn vng hnh ch nht trn thit b hin th ca s nh x n c gi l mt
vng quan st (viewport). Hnh 4.1 minh ha vic nh x mt phn hnh nh vo trong mt vng
quan st. Vic nh x ny gi l mt php bin i h quan st, bin i ca s, bin i chun ha.
Cc lnh xy dng mt ca s v vng quan st t mt chng trnh ng dng c th c nh
ngha nh sau:
set_window(xw_min, xw_max, yw_min, yw_max)
set_viewport(xv_min, xv_max, yv_min, yv_max)
Cc tham s trong mi hm c dng nh ngha cc gii hn ta ca cc vng ch nht.
Cc gii hn ca ca s c xc nh trong h ta thc. H ta thit b chun thng c
dng nht cho vic xc nh vng quan st, d rng h ta thit b c th c dng nu ch c
mt thit b xut duy nht trong h thng. Khi h ta thit b chun c dng, lp trnh vin
xem thit b xut c gi tr ta trong khong [0,1]. Mt s xc nh vng quan st c cho vi
cc gi tr trong khong [0, 1]. Cng vic xc nh s l t mt phn ca s nh ngha h ta
thc vo trong gc trn bn phi ca vng hin th, nh c minh ha trong hnh 4.2:
set_window(-60.5, 41.25, -20.75, 82.5);
set_viewport(0.5, 0.8, 0.7, 1.0);
Nu mt ca s buc phi c nh x lp y vng hin th, s xc nh vng quan st c thit
lp theo th tc: set_viewport(0, 1, 0, 1)
Cc v tr c biu din trn h ta thit b chun phi c bin i sang h ta thit b
trc khi c hin th bi mt thit b xut c th. Thng thng mt thit b xc nh c cha
trong cc gi ha cho mc ch ny. Thun li ca vic dng h ta thit b chun l cc
gi ha c lp vi thit b. Cc thit b xut khc nhau c th c dng nh vic cung cp cc
trnh iu khin thit b thch hp. Mi im c tham kho n trong cc gi ha phi c
xc nh tng ng trong h ta Descartes. Bt k s nh ngha hnh nh no dng trong mt h
ta khc, nh h ta cc, ngi s dng trc tin phi bin i n sang h ta thc.
Nhng h ta Descart ny sau c dng trong cc lnh ca s xc nh phn no ca hnh
nh mun c hin th.
Trang
18
vmin
wmin wmax
vmin vmax
)
wmin w
(
v
x
x x
x x
x x x +


vmin
wmin wmax
vmin vmax
)
wmin w
(
v
y
y y
y y
y y y +


Hnh 4.2: nh x mt ca s vo mt vng quan st trong h ta thit b chun
4.2 Php bin i t ca s - n vng quan st
Khi tt c cc im, on thng, v vn bn va b ct, chng c nh x ln vng quan st
hin th. Php bin i n vng quan st ny c thc hin cc v tr ta lin h c gi
li. Trong hnh, mt im v tr (x
w
, y
w
) trong mt ca s c nh x v trong v tr (x
v
, y
v
) trong
vng quan st. duy tr s sp t lin h tng t trong vng quan st nh trong ca s, chng ta
cn xc nh nh x:
,
wmin wmax
wmin w
vmin vmax
vmin v
y y
y y
y y
y y

(4-1)
Do :
, (4.2)
Cc gi tr t l
wmin wmax
vmin vmax
x x
x x

v
wmin wmax
vmin vmax
y y
y y

l hng s i vi cc im c nh x v
l h s t l S
x
v S
y
theo 2 trc tng ng. Nu 2 t l khc nhau th hnh v mi trong vng quan
st b bin dng so vi hnh ban u, cn nu 2 t l ging nhau th hnh v mi khng bin dng.
V d: Tm ma trn bin hnh, nh x im trong ca s c gc tri di l (2,2); gc trn phi l
(6,5); sang vng quan st c gc tri di (1/2 , 1/2) , gc phi trn (1 , 1) .
Cc tham s ca s/vng quan st l: x
wmin
= 2 , x
vmin
=1/2
x
wmax
= 6 , x
vmax
= 1
y
wmin
= 2 , y
vmin
=1/2
y
wmax
= 5 , y
vmax
= 1
Trang
19
wmin wmax
wmin w
vmin vmax
vmin v
x x
x x
x x
x x

Theo phng trnh 4.2, suy c ma trn bin i l:



1
1
1
]
1

1
1
1
1
]
1

+ +

1 1/6 1/4
0 1/6 0
0 0 1/8
1 y y S x x S
0 S 0
0 0 S
M
) (- ) (-
vmin wmin y vmin wmin x
y
x
4.3 Php ct xn 2 chiu
nh x mt vng ca s vo trong mt vng quan st, kt qu l ch hin th nhng phn trong
phm vi ca s. Mi th bn ngoi ca s s b loi b. Cc th tc loi b cc phn hnh nh
nm bn ngoi bin ca s c xem nh cc thut ton ct xn (clipping algorithms) hoc n gin
c gi l clipping.
Vic ci t php bin i ca s thng c thc hin bng vic ct khi ca
s, sau nh x phn bn trong ca s vo mt vng quan st . Nh mt la chn, mt vi gi
ha u tin nh x s nh ngha trong h ta thc vo trong h ta thit b chun v
sau ct khi bin vng quan st. Trong cc cc phn tho lun sau, chng ta gi thit rng vic
ct c thc hin da vo ng bin ca s trong h ta thc. Sau khi ct xong, cc im
bn trong ca s mi c nh x n vng quan st.
Vic ct cc im khi ca s c hiu n gin l chng ta kim tra cc gi tr ta xc
nh xem chng c nm bn trong bin khng. Mt im v tr (x,y) c gi li chuyn i
sang vng quan st nu n tha cc bt phng trnh sau:
xwmin x xwmax, ywmin y ywmax (4-3)
Nu im no khng tha mt trong bn bt phng trnh trn, n b ct b. Trong hnh di y,
im P1 c gi li, trong khi im P2 b ct b.
Hnh 4.3
Hnh 4.3 minh ha cc quan h c th c gia cc v tr on thng vi bin ca s. Chng ta kim
tra mt on thng xem c b ct hay khng bng vic xc nh xem hai im u mt on thng
l nm trong hay nm ngoi ca s. Mt on thng vi c hai u nm trong ca s th c gi
Trang
20
li ht, nh on t P5 n P6. Mt on vi mt u nm ngoi (P9) v mt u nm trong (P10)
s b ct bt ti giao im vi bin ca s (P9). Cc on thng c c hai u u nm ngoi ca
s, c th ri vo hai trng hp: ton b on thng u nm ngoi hoc on thng ct hai cnh
ca s. on t P3 n P4 b ct b hon ton. Nhng on t P7 n P8 s c gi li phn t
P7 n P8.
Thut ton ct xn ng xc nh xem on no ton b nm trong, on no b ct b hon ton
hay b ct mt phn. i vi cc on b ct b mt phn, cc giao im vi bin ca s phi c
tnh. V mt hnh nh c th cha hng ngn on thng, vic x l clipping nn c thc hin sao
cho c hiu qu nht. Trc khi i tnh cc giao im, mt thut ton nn xc nh r tt c cc on
thng c gi li hon ton hoc b ct b hon ton. Vi nhng on c xem xt l b ct b,
vic xc nh cc giao im cho phn c gi li nn c thc hin vi s tnh ton t nht.
4.3.1 Gii thut Cohen Suntherland
Mt tip cn ct cc on l da trn c ch nh m c pht trin bi Cohen v Sutherland.
Mi im hai u mt on thng trong hnh nh s c gn
mt m nh phn 4 bit, c gi l m vng, gip nhn ra vng
ta ca mt im. Cc vng ny c xy dng da trn s
xem xt vi bin ca s, nh hnh 4.4. Mi v tr bit trong m
vng c dng ch ra mt trong bn v tr ta tng ng
ca im so vi ca s: bn tri, phi, trn nh, di y. Vic
nh s theo v tr bit trong m vng t 1 n 4 cho t phi sang
tri, cc vng ta c th lin quan vi v tr bit nh sau: Bit 1
tri ; Bit 2 phi; Bit 3 di; Bit 4 trn. Hnh 4.4
Gi tr 1 bt k v tr no ch ra rng im v tr tng ng, ngc li bit v tr l 0. Nu mt
im nm trong ca s, m v tr l 0000. Mt im bn di v bn tri ca s c m vng l 0101 .
Cc gi tr bit trong m vng c xc nh bng cch so snh gi tr ta (x,y) ca im u mt
vi bin ca s. Bit 1 t ln 1 nu x < xwmin. Cc gi tr ca ba bit cn li c xc nh bng
cch so snh tng t. Trong cc ngn ng lp trnh, lm vic trn bit nh th ny c th thc hin
c, cc gi tr bit m vng c th c xc nh theo cc bc sau: (1) Tm hiu gia ta cc
im u mt vi bin ca s. (2) Dng bit du (kt qu ca mi hiu) t gi tr tng ng trong
m vng. Bit 1 l bit du ca x xwmin ; bit 2 l bit du ca xwmax x ; bit 2 l bit du ca y
ywmin ; v bit 4 l bit du ca ywmax y.
Khi chng ta xy dng xong cc m vng cho tt c cc im u mt, chng ta c th xc nh
nhanh chng on thng no l hon ton nm trong ca s, on no l hon ton nm ngoi. Bt
k on no c m vng ca c 2 u mt l 0000 th nm trong ca s v chng ta chp nhn cc
ng ny. Bt k ng no m trong hai m vng ca hai u mt c mt s 1 cng v tr bit th
on hon ton nm ngoi ca s, v chng ta loi b cc on ny. V d, chng ta vt b on c
m vng mt u l 1001, cn u kia l 0101 (c cng bit 1 v tr 1 nn c hai u mt ca on
ny nm pha bn tri ca s). Mt phng php c th c dng kim tra cc on cho vic
ct ton b l thc hin php and vi c hai m vng. Nu kt qu khng phi l 0000 th on
nm bn ngoi ca s.
Cc ng khng c nhn dng l hon ton nm trong
hay hon ton nm ngoi mt ca s thng qua cc php
kim tra trn s c tm giao im vi bin ca s. Nh
c ch ra nh bn, cc ng thuc nhm ny c th
ct hoc khng ct ca s. Chng ta c th x l cc on
Trang
21
ny bng cch so snh mt im u mt (ci ang nm ngoi ca s) vi mt bin ca s xc
nh phn no ca ng s b b. Sau , phn ng c gi li s c kim tra vi cc bin
khc, v chng ta tip tc cho n khi ton b ng b b i hay n khi mt phn ng c xc
nh l nm trong ca s. Chng ta xy dng thut ton kim tra cc im u mt tng tc vi
bin ca s l bn tri, bn phi, bn di hay trn nh. Chng ta xem cc on trong hnh c
x l nh th no. Bt u im u mt bn di t P1 n P2, ta kim tra P1 vi bin tri, phi
v y ca s v thy rng im ny nm pha di ca s. Ta tm giao im P1 vi bin di.
Sau khi tm giao im P1, chng ta vt b on t P1 n P1. Giao im P2 c tnh, v on
t P1 n P2 c gi li.
Hnh 4.5
Kt thc qu trnh x l on P1P2. By gi xt on k tip, P3P4. im P3 nm bn tri ca s,
v vy ta xc nh giao im P3 v loi b on t P3 n P3. Bng cch kim tra m vng phn
on thng t P3 n P4, chng ta thy rng phn cn li ny nm pha di ca s v cng b vt
b lun.
Cc giao im vi bin ca s c th c tnh bng cch dng cc tham s ca phng trnh
ng thng. Vi mt ng thng i qua hai im (x
1
, y
1
) v (x
2
, y
2
), tung y ca giao im vi
mt bin dc ca s c th tnh c theo php tnh :
y = y
1
+ m (x x
1
) (4-4)
y gi tr x c t l x
wmin
hoc x
wmax
, v dc m = (y
2
y
1
)/ (x
2
x
1
)
Tng t, nu ta tm giao im vi bin ngang, honh x c th c tnh nh sau :
x = x
1
+ (y y
1
)/m (4-5)
vi y l y
wmin
hoc y
wmax
.
4.3.2 Gii thut chia ti trung im
Mt k thut xc nh giao im vi bin ca s m khng dng n phng trnh ng thng
l dng th tc tm kim nh phn, c gi l s phn chia ti trung im. u tin, vic kim tra
cc on vn c thc hin bng cch dng m vng. Bt k on no khng c chp nhn hon
ton hoc khng b hu b hon ton (nh vo kim tra m vng) th s c i tm giao im bng
cch kim tra ta trung im.
Tip cn ny c minh ha trong hnh 4.6. Mi on thng vi hai im u mt (x
1
,y
1
) v (x
2
, y
2
),
trung im c tnh nh sau:
x
m
= (x
1
+ x
2
) / 2 ; y
m
= (y
1
+ y
2
) / 2 (4-6)
Mi kt qu tnh ton cho ta giao
im lin quan n mt php cng v
mt php chia 2. Khi ta giao
im c xc nh, mi na on
thng c kim tra chp nhn
hay hu b ton b. Nu mt na
on c chp nhn hoc b hu b,
mt na kia sau s c x l
theo cch tng t. iu ny tip tc
cho n khi gp mt giao im.

Trang
22
Hnh 4.6
Nu mt na c chp nhn hoc b hu b ton b, na kia tip tc c x l cho n khi ton
b n l b hu b hoc c gi li. Ci t phn cng theo phng php ny c th gip ta
clipping khi bin vng quan st nhanh chng sau khi cc i tng va c chuyn sang h ta
thit b.
4.3.3 Gii thut Liang Barsky
Gii thut c da trn phn tch phng trnh tham s on thng:

,
1 t 0

(4-7)
ng vi mi gi tr t, ta c mt im P tng ng thuc ng thng. Tp hp cc im thuc
phn giao ca on thng v ca s tha mn h bt phng trnh:
(4-8)

t p
1
= -D
x
, q
1
= x
1
x
wmin
p
2
= D
x
, q
2
= x
wmax
- x
1
p
3
= -D
y
, q
3
= y1 y
wmin

p
4
=

D
y
, q
4
= y
wmax
y
1
H bt pt (4-8) vit li nh sau : (4-9)
Nh th, tm on giao thc cht l tm nghim ca h bt pt 4-9. C cc trng hp sau:
Nu k

{1,2,3,4} : p
k
= 0 v q
k
< 0 th h v nghim.
Nu k

{1,2,3,4} : p
k

0 hay q
k
0 th vi cc bt pt ng vi p
k
= 0 lun ng.
Nu p
k
< 0: ta c
k
k
p
q
t

Nu p
k
> 0: ta c
k
k
p
q
t

Vy nghim ca h (4-9) l [t
1
, t
2
] tha mn : (4-10)

Nu h (4-9) c nghim th on giao gia on thng v ca s l Q
1
(
v Q
2
(
Trang
23

'


+
+
1 t 0
y tD y y
x tD x x
wmax
y 1
wmin
wmax
x 1
wmin
{1,2,3,4} k ,
1 t 0
q t p
k k

'

'

>
<
2 1
k
k
k
2
k
k
k
1
t t
1) , } 0 p ,
p
q
min({ t
0) , } 0 p ,
p
q
max({ t
) D t y , D t x
y 1 1
x
1
1
+ +
) D t y , D t x
y 2 1
x
2
1
+ +
1 2 x
x x D ,
x 1 1 2 1
tD x ) x t(x x x + +
1 2 y
y y D ,
y 1 1 2 1
tD y ) y t(y y y + +
4.4 Bi tp p dng
Bi 1 ngha m vng trong gii thut Cohen Sutherland.
Gi : m vng m t v tr tng i ca vng no so vi ca s.
Bi 2 So snh hai thut ton Cohen Sutherland v Liang Barsky v s php tnh thc hin trong
cc trng hp chnh.
Gi : Gii thut Liang Barsky thc hin t php ton hn.
Bi 3 Ci t thut ton ct xn hnh ch nht vi 1 on thng cho trc theo gii thut Liang
Barsky hay Cohen Sutherland.
Gi : S dng gii thut Liang Barsky.
Bi 4 Cho bit ma trn ca php bin i t ca s sang vng quan st.
Gi : ma trn bin i l tch ba ma trn tnh tin, t l, tnh tin.
CHNG V HA 3 CHIU
5.1 Tng quan v ha ba chiu
Cc i tng trong th gii thc phn ln l cc i tng 3 chiu, vic th hin chng trn my
tnh l vic cn thit a tin hc gn gi vi thc t. Cng ging nh cch biu din i tng 3
chiu trn mt phng, biu din trn my tnh cng phi tun theo cc quy lut nh : phi cnh, nh
sng, mu sc nhm gip ngi quan st tng tng c hnh nh gn ng nht. Trong
chng ny, chng ta tho lun mt vi k thut biu din i tng 3 chiu trn my tnh, t cc
i tng n gin nh hnh khi, a din.. cho ti cc hnh, mt phc tp khc.
Khi m hnh ha v hin th mt i tng ba chiu, phi xem xt nhiu kha cnh v vn ch
khng n gin l thm ta th 3 cho i tng. B mt c th xy dng bi nhiu t hp khc
nhau ca cc mt phng v mt cong. Ngoi ra, ta cn m t thng tin cho i tng. Cc cng c
h tr ha cung cp mt s hm hin th cc thnh phn bn trong, nhng nt tiu biu hay mt
phn ca i tng 3 chiu. Ngoi ra, cc php bin i c dng a dng hn so vi ha hai
chiu v phi chn nhiu tham s m t i tng.
M t mt i tng ba chiu phi qua quy trnh x l gm nhiu cng on nh php bin i h
ta quan st v php chiu phi cnh , chuyn i t h ta quan st ba chiu sang h ta
quan st hai chiu. Nhng phn nhn thy ca cnh, ng vi h ta quan st c chn, phi xc
nh v cui cng l gii thut v b mt ca i tng c p dng nhm to ra hnh nh thc t
ca i tng ba chiu.
5.1.1 Quy trnh hin th ha ba chiu
Bc u tin trong quy trnh hin th l bin i i tng t khng gian i tng sang khng
gian thc. Trong khng gian ny th i tng, ngun sng, ngi quan st cng tn ti. Qu trnh
ny gi l bin i m hnh.
Tip theo l bc ti u, ta loi b cc phn ca i tng khng nhn thy, gip gim bt nhng
thao tc d tha ca hnh nh s hin th.
Trang
24
Bc tip theo l phi chiu sng i tng , gn cho chng mu sc da vo c tnh ca cc cht
to nn vt v cc ngun sng tn ti trong khung cnh.
Sau khi chiu sng, phi thc hin mt php bin i h ta t v tr quan st v gc ta
v mt phng quan st ti v tr ph hp. Bc ny l c xem l bin i h quan st. Cc i
tng c a t khng gian thc v khng gian quan st. Trong khng gian quan st, ta phi thc
hin vic xn cc i tng tha, khng nhn thy c trong cnh.
Sau , chiu i tng xung mt phng hai chiu, bin i t khng gian quan st sang khng
gian thit b mn hnh. i tng xem nh tp hp cc im ri rc, ton cnh i tng c hin
th ln mn hnh.
5.1.2 M hnh ha i tng
C hai dng m hnh ha l hnh hc khi c (Solid Geometric) hay m hnh b mt (Boundary
Representation).
Hnh hc khi c gi thit l cc i tng t nhin c th to ra bng cch phi hp cc khi c s
thng qua cc quy lut i s Bool. C nhiu loi khi c s nh khi ch nht, tr, nn, cu
trong khi cc php ton tp hp nh php giao, hp, loi tr c s dng phi hp cc i
tng hnh hc c s. M hnh b mt c xy dng da trn c s i tng c bao kn bi tp
cc mt. Cc mt ny thuc v cc mt cong khp kn v c hng. Hng ca b mt phn bit hai
pha trong v ngoi b mt. tm hng b mt, hng ca vc t php tuyn s c tnh ton.
Trong m hnh ny, mi mt bao li bi cc cnh v mi cnh c to bi hai nh. Thng tin v
cc thnh phn hnh hc c lu tr trong c s d liu ca B-rep.
Mi m hnh c nhng u im ring, vi nhng i tng nh mt cong, khi bc hai th s dng
m hnh ha khi c. Cc tnh ton giao nhau gia ng cong v ng cong, ng cong vi
mt cong, khi vi mt phng ct, da trn thng tin l d liu v tr, kch thc hnh hc, phng
chiu khi c s nh trong hnh hc khng gian song khng tht chnh xc. M hnh b mt c u
im hin th mc chi tit chnh y hn m hnh khi rn, v nu c s cp nht nhng thay i
ca i tng th m hnh b mt cn c th thc hin c da trn c s d liu lu tr. Tuy
nhin, m hnh cng c nhc im l nu m hnh i tng c b mt phc tp, chng hn nh
mt hnh tr, b mt ngoi khi tr c xp x bng nhiu b mt B-rep. Cch thc hin ny rt d
dng ch vi mt s mt cong nhng hnh dng khng trn. Do , to ra mc chnh xc chp
nhn th cn lu tr lng d liu ln.
5.2 Biu din i tng ba chiu
Cc cnh ha c biu din theo nhng phng php khc nhau sao cho ph hp vi thuc tnh
i tng. Cc mt a gic v mt bc hai cung cp cho chng ta m t gn ng ca cc i tng
elip, hyperbol, cch tip cn hnh hc Fractal cho php ta biu din chnh xc cc i tng t
nhin nh bu tri, khng gian thc t. biu din i tng c b mt phc tp, ngi ta dng
cc phng php xp x a mt cong v dng mt a gic hoc dng nhiu mt cong trn ghp
ni vi nhau.
5.2.1 Biu din mt a gic
M hnh ha b mt i tng thng c biu din i tng, thng qua tp hp cc mt a gic
xc nh b mt i tng. Vi cch biu din trn, ta n gin ha cch lu tr d liu v tng tc
hin th i tng v b mt c m t bng phng trnh tuyn tnh. V nguyn nhn trn m
m t cc i tng thng qua mt a gic c dng cho cc i tng ha c s.
Trong mt vi trng hp, ta ch c th chn la cch biu din a gic, vic biu din nh th cung
cp mt nh ngha chnh xc v c tnh ca i tng. V d nh biu din mt hnh tr th xem
Trang
25
nh hnh tr l tp cc mt a gic ghp lin. Nu cn th hin hnh tr thc hn th phi bin i
to bng ni suy cho hnh tr.
Hnh 5.1 M hnh biu din hnh tr
thng qua mt a gic.
5.2.2 ng cong v mt cong , ng cong v mt cong Bezier, B-Spline
Hnh nh cc ng cong v mt cong c th c to ra t mt tp cc hm ton hc nh ngha
cc i tng hoc tp cc im trn i tng. i vi cc i tng hnh hc nh hnh trn hay
elip th th vin ha cung cp sn hm v i tng ln mt phng hin th. Hnh biu din
ng cong l tp cc im dc theo hnh chiu ca ng m t bi hm s. Nhng vi cc ng
cong hay mt cong khng c quy lut, th tp im hay li a gic xp x vi ng mt cong s
to ra. H ha hay to cc li tam gic m bo tnh ng phng ca cc cnh.
Mt ng cong hay mt cong c th din t bng phng trnh tham s hay khng c tham s, tuy
nhin cch biu din th nht c p dng trong cc bi ton ha s thun tin hn cch kia.
Nhng i tng hnh hc nh hnh trn, elip hnh tr, hnh nn, hay hnh cu c xem l
nhng ng v mt cong xc nh c phng trnh tham s chnh xc cho n. Do , mi h
ha u h tr trc tip biu din cc i tng hnh hc trn. Tuy nhin, trong thc t, c nhng
i tng hnh hc khng c quy lut chnh xc m t nhng i tng nh mt cong ca thanh
chn va p ca xe t, hnh thn tu thy, tay cm tch chn cafe Nhng i tng hnh hc
theo m t trn, hnh dng hin th tha mn yu cu thit k ch khng quan tm lm ti chnh
xc php ni suy.
Yu cu t ra l: C mt ng cong, xc nh theo tp cc im phn bit p
1
, p
2
, .. p
k
. Hy tm ra
gii thut to ng cong ban u vi chnh xc no ?
C 2 cch gii quyt:
- Th nht, nh v ta cc im bit thuc ng cong, tm ra phng trnh tham s n i
qua cc im v trng khp hnh dng vi ng cong ban u.
- Th hai, xc nh mt s im iu khin, v tm gii thut to ng cong da trn cc im .
Ta phi thay i v tr im iu khin cho ti khi ng cong mi c hnh dng ging nh hnh
dng ng cong ban u th xem nh gii quyt xong.
Trong phn ny, chng ta s gii thiu phng trnh ng cong Bezier v B Spline, chng da
trn cch gii quyt th hai.
ng cong Bezier: ng cong da trn L+1 im iu khin p
0
, p
1
, .. p
L
c biu din
qua cng thc sau y:
(5-1)
(t) B
L
k
l a thc Berntein c xc nh theo:
k k L
t t) (1 C (t) B
k
L
L
k

(5-2)

k
L
C l t hp chn k t L. T cng thc 5-2, dn n

L
0 k
1 (t) B
L
k
Trang
26

L
0 k
k
(t) B P P(t)
L
k
ng cong phc tp th yu cu s lng im iu khin nhiu, tuy nhin trong trng
hp khin bc a thc cng cao, i hi tnh ton di v kh. Cch khc phc l ng
cong phc tp vn c ghp t nhng on khc nhau, mi on xp x theo mt ng
cong Bezier bc nh hn.
Vic to cc ng cong phc tp, bng cch ghp cc on ngn cng cho php kim sot
s thay i mt phn ng cong, trong khi cc on khc thuc tp im iu khin khc
th khng b nh hng.
ng cong B Spline: ng cong cp m da trn vc t nt T v L+1 im kim sot p
k
c dng:
(5-3)
Trong
(t) N
m k,
l a thc c s nh sau:
(5-4)
k = 0,1,...,L;
(t) N
k,1
= 1 nu t
k
t < t
k+1
;
(t) N
k,1
= 0 trong cc trng hp khc.
Cc khong cch [t
i
, t
i+1
] c th chia u nhau hoc khng u.
Gi thit mt ng cong B Spline bc 3, 4 nt iu khin, khong cch nt u nhau, th
4 a thc c s nh sau:

3
0,3
t
6
1
(t) N ; 1) 3t 3t (-3t
6
1
(t) N
2 3
1,3
+ + +
1] , [0 t

4) 6t - (3t
6
1
(t) N
2 3
2,3
+ ; 1) 3t 3t (-t
6
1
(t) N
2 3
3,3
+ +
Mt cong Bezier: Xt ng cong Bezier nh hm theo tham s v v cc im kim sot
theo tham s u. Cng thc cho ng cong s l:
Lc ny, khi u thay i ko theo cc im kim sot thay i dn ti ng cong thay i.
S bin thin ca ng cong Bezier trong khng gian to ra mt cong. Nu u thay i, cc
im kim sot cng thay i trn mt ng cong no xem nh ng cong Bezier, da
trn M+1 im kim sot.
Phng trnh mt cong Bezier l: (5-5)
Mt cong B Spline: Cng da trn phn tch trn, ta c phng trnh mt cong B Spline
l:

(5-6)
5.3 Cc php bin i hnh hc 3 chiu
Cc im trong khng gian ba chiu c biu din bng h trc ta ba chiu, c th xem l m
rng ca h trc ta hai chiu. Trong th gii hai chiu, mt phng xy cha ton b i tng.
Trong th gii ba chiu, mt trc z vung gc c a ra to thm hai mt phng chnh khc l
Trang
27

L
0 k
m k,
k
(t) N P P(t)
(t) )N
t t
t t
( (t) )N
t t
t - t
( (t) N
1 m 1, k
1 k m k
m k
1 m k,
k 1 - m k
k
m k, +
+ +
+

L
0 k
k
(v) (u)B P v) P(u,
L
k


M
0 i
L
0 k
k i,
(v) B (u) B P v) P(u,
L
k
M
i


M
0 i
L
0 k
m k, m i,
k i,
(v) (u)N N P v) P(u,
xz v yz.
Chiu ca cc trc ta trong h trc ta ba chiu c th tun theo quy tc bn tay phi hay
quy tc bn tay tri.
Hnh 5.2 Cc h trc ta
bn tay phi v tay tri
H trc ta tun theo quy tc bn tay phi c m t bng bn tay phi, vi ngn tay ci hng
theo trc z, cc ngn tay cn li xon theo chiu t trc x dng sang trc y dng. H trc ta
tun theo quy tc bn tay tri c m t bng bn tay tri, nu t bn tay tri sao cho cc ngn tay
un cong theo chiu t trc x dng ti trc y dng, th ngn tay ci s ch theo chiu trc z
dng.
H ta thun nht: Mi im (x,y,z) trong khng gian Descartes c biu din bi mt b bn
ta trong khng gian 4 chiu thu gn (hx,hy,hz,h). Ngi ta thng chn h=1.
Cc php bin i tuyn tnh l t hp ca cc php bin i sau : t l, quay, bin dng v i xng.
Cc php bin i tuyn tnh c cc tnh cht nh trong ta 2 chiu:
- Gc ta l im bt ng
- nh ca ng thng l ng thng
- nh ca cc ng thng song song l cc ng thng song song
- Bo ton t l khong cch
- T hp cc php bin i c tnh phn phi.
5.3.1 Php bin i t l
Php bin i t l to thnh bng cch gn cc gi tr cho ng cho chnh ca ma trn bin hnh
tng qut 44 . Mt im P(x, y, z) c bin i t l thnh P(x, y, z) bng php bin i sau:
] ] [ [
1
1
1
1
]
1

1 0 0 0
0 Sz 0 0
0 0 Sy 0
0 0 0 Sx
1 z y x 1 z' y' x'
(5-7)
Php bin i c coi l php t l theo gc ta . Nu cc h s Sx, Sy, Sz khc nhau th hnh
nh ca i tng s bin dng. Ngc li, th kch thc i tng c th thay i nhng t l vi
gc ta vn gi nguyn.
5.3.2 Php bin dng
Php bin dng ba chiu to ra s bin dng cho i tng bi vic thay gi tr ca mt hoc nhiu
ta bng cc h s t l ca ct th ba. Cch thc hin trn l bin dng theo mt phng to ra
bi hai trc ta c iu khin bi trc th ba. Cc thnh phn ngoi ng cho chnh ca ma
trn con 33 pha trn ca ma trn bin hnh tng qut nh hng n php bin dng.
Trang
28
Ma trn bin dng theo trc X:
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 0 1 0
0 Sxz Sxy 1

(5-8)
Ma trn bin dng theo trc Y:
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 Syz 1 Syx
0 0 0 1

(5-9)
Ma trn bin dng theo trc Z:
1
1
1
1
]
1

1 0 0 0
0 1 Szy Szx
0 0 1 0
0 0 0 1

(5-10)
5.3.3 Php tnh tin
Ma trn bin i hnh s thay i im P(x, y, z) thnh P(x, y, z) bng php bin i sau:
] ] [ [
1
1
1
1
]
1

1 L K J
0 1 0 0
0 0 1 0
0 0 0 1
1 z y x 1 z' y' x'
(5-11)

Cc gi tr J, K, L m t s tnh tin tng i theo cc hng x, y, z.
5.3.4 Php quay hnh
Php quay trong khng gian l quan trng tm hiu hnh dng ca i tng hoc kim tra qu
trnh thit k cc gc khc nhau. So vi php quay hai chiu, php quay ba chiu kh hn v
phi s dng trc quay thay th im quay. Cc php quay c phn tch da vo cc php quay
quanh cc trc chnh, trong trng hp ny xem h trc ta theo quy tc bn tay phi.
Ma trn quay quanh trc X :
1
1
1
1
1
]
1

1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
M] [

X
(5-12)
Ma trn quay quanh trc Y :
1
1
1
1
1
]
1

1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
M] [

Y
(5-13)
Trang
29
Ma trn quay quanh trc Z :
1
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 0 cos sin -
0 0 sin cos
M] [

Z
(5-14)
i vi php quay trong h trc ta theo quy tc bn tay tri, ch cn thay i h s gc quay
thnh l xong.
Php quay hnh quanh trc no vi gc quay cho trc th phi c phn r thnh cc php
bin i c s. Ma trn ca php bin i s l tch cc ma trn ca cc php bin i c s.
5.3.5 Php i xng qua mt phng
Php i xng c thc hin qua cc mt phng i xng, l m rng t php i xng hai chiu.
ly i xng qua mt phng bt k, php bin i kt hp gm php quay (hoc tnh tin) v
php i xng. Sau y l ma trn ca php i xng qua mt phng x = 0, y = 0, z = 0.

1
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1 -
M] [
RFL_X

1
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 0 1 - 0
0 0 0 1
M] [
RFL_Y

1
1
1
1
1
]
1

1 0 0 0
0 1 - 0 0
0 0 1 0
0 0 0 1
M] [
RFL_Z
Php i xng qua gc ta trong khng gian c m t theo ma trn bin i nh sau :
1
1
1
1
1
]
1

1 0 0 0
0 1 - 0 0
0 0 1 - 0
0 0 0 1 -
M] [
RFL_O
V d : Tm ma trn bin i ca php quay gc 90
o
ngc chiu kim ng h quanh trc AB, nu
A(2, 1, 0) v B(3, 3, 1).
Php bin i l kt hp ca cc php bin i c s : tnh tin, quay trc AB quanh trc X, quay
quanh trc Y, quay quanh trc Z, v ngc li.
Php tnh tin A trng gc ta :
1
1
1
1
]
1

1 0 1 - 2 -
0 1 0 0
0 0 1 0
0 0 0 1
M
1
Php quay trc AB quanh trc X sao cho n trng vi mt phng Y = 0:
Trang
30
1
1
1
1
]
1

1 0 0 0
0 5 / 5 5 / 5 2 - 0
0 5 / 5 2 5 / 5 0
0 0 0 1
M
2
Php quay trc AB quanh trc Y sao cho AB trng vi trc Z:

1
1
1
1
1
]
1

1 0 0 0
0 6 / 30 0 6 / 6
0 0 1 0
0 6 / 6 0 6 / 30
M
3
Php quay gc 90
o
theo chiu dng quanh trc Z l :
1
1
1
1
]
1

1 0 0 0
0 1 0 0
0 0 0 1 -
0 0 1 0
M
4
Ma trn bin i M l kt hp cc bin i:

1
1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1

1 0 0 0
0 6 / 30 0 6 / 6
0 0 1 0
0 6 / 6 0 6 / 30
1 0 0 0
0 5 / 5 5 / 5 2 - 0
0 5 / 5 2 5 / 5 0
0 0 0 1
1 0 1 - 2 -
0 1 0 0
0 0 1 0
0 0 0 1
M


1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
1
]
1


1
1
1
1
]
1

1 0 1 2
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 5 / 5 5 / 5 2 0
0 5 / 5 2 - 5 / 5 0
0 0 0 1
1 0 0 0
0 6 / 30 0 6 / 6
0 0 1 0
0 6 / 6 0 6 / 30
1 0 0 0
0 1 0 0
0 0 0 1 -
0 0 1 0

Do :
1
1
1
1
]
1

1 0.56 1.151 - 1.742


0 0.167 0.075 0.983
0 0.741 0.667 0.075 -
0 0.65 - 0.742 0.166
M
Trang
31
5.4 Bi tp p dng
Bi 1 Cc kin thc m t trong chng xt trong h ta cc bn tay tri hay bn tay phi.
Gi : quy tc bn tay phi.
Bi 2 Xc nh ma trn ca php i xng qua trc X, Y, Z.
Gi : php i xng qua trc X, Y, Z : ta tng ng vi trc no th ly o du.
Bi 3 Xc nh im Q l nh ca im P cho trc php bin dng theo trc tung, vi cc h s
bin dng l 2.
Gi : ta im Q xc nh t php nhn vc t ta P vi ma trn bin dng.
Bi 4 Xc nh ma trn ca php quay gc quanh trc AB bt k.
Gi : Ma trn bin i l chui cc bin i : tnh tin trc v gc ta , quay quanh X M
rot
(X,
), quay quanh trc Y M
rot
(Y, - ) , quay quanh trc Z M
rot
(Z, ), sau l cc php bin i
ngc li qu trnh trn.
Trang
32
CHNG VI QUAN ST 3 CHIU
6.1 Cc php chiu
Trong ha hai chiu, cc thao tc quan st bin i cc im hai chiu trong mt phng ta
thc thnh cc im hai chiu trong mt phng h ta thit b. nh ngha i tng, b ct bi
mt ca s, c nh x vo mt vng quan st. Cc h ta thit b chun ha ny sau c
bin i sang cc h ta thit b, v i tng c hin th ln thit b kt xut. i vi ha
ba chiu, vic lm ny phc tp hn mt cht, v by gi c vi chn la c th quan st nh nh
th no. Chng ta c th quan st nh t pha trc, t pha trn, hoc t pha sau. Hoc chng ta c
th to ra quang cnh v nhng g chng ta c th thy nu chng ta ang ng trung tm ca
mt nhm cc i tng. Ngoi ra, s m t cc i tng ba chiu phi c chiu ln b mt
quan st ca thit b xut. Trong chng ny, trc ht chng ta s tho lun cc c ch ca php
chiu. Sau , cc thao tc lin quan n php bin i cch quan st, v y cc k thut quan
st nh ba chiu s c pht trin.
C hai phng php c bn chiu cc i tng ba chiu ln b mt quan st hai chiu. Tt
c cc im ca i tng c th c chiu ln b mt theo cc ng thng song song, hoc cc
im c th c chiu theo cc ng hi t v mt im c gi l tm chiu. Hai phng
php ny c gi l php chiu song song v php chiu phi cnh.
Hnh 6.1 Hai phng php chiu mt on thng ln b mt ca mt phng chiu
Trong c hai trng hp, giao im ca ng chiu vi b
mt quan st xc nh cc ta im ca im c chiu ln
mt phng chiu ny.
Hnh 6.2 Mt b mt quan st c nh ngha
trong mt z=0 ca h ta bn tay tri.
Trang
33
Chng ta gi s rng mt phng chiu l mt z = 0 ca h ta bn tay tri. Php chiu
song song bo tn mi quan h v chiu ca cc i tng, v y l k thut c dng trong vic
phc tho to ra cc bc v t l ca cc i tng ba chiu. Phng php ny c dng thu
cc hnh nh chnh xc cc pha khc nhau ca mt i tng. Tuy nhin, php chiu song song
khng cho mt hnh nh thc t ca cc i tng ba chiu. Ngc li, php chiu phi cnh to ra
cc hnh nh thc nhng khng bo tn cc chiu lin h. Cc ng xa c chiu s nh hn
cc ng gn mt phng chiu, nh trong hnh 6.3. Hai on thng di bng nhau, trong php
chiu phi cnh, on no xa mt phng chiu hn s c kch thc nh hn.
Hnh 6.3 Hai on
thng trong php chiu
phi cnh.
6.2 Php chiu song song
Cc hnh nh c hnh thnh bng php chiu song song c th c xc nh da vo gc hp bi
hng ca php chiu hp vi mt phng chiu. Khi hng ca php chiu vung gc vi mt
phng, ta c php chiu
trc giao (hay php chiu
vung gc orthographic
projection). Mt php chiu
c th khng vung gc vi
mt phng chiu c gi
l php chiu xin.
Hnh 6.4 Php chiu cng
kch thc ca mt i
tng ln b mt quan st
Cc php chiu trc giao a s c dng to ra quang cnh nhn t pha trc, bn sn, v
trn nh ca i tng. Quang cnh pha trc, bn sn, v pha sau ca i tng c gi l
mt chiu, v quang cnh pha trn c gi l mt phng . Cc bn v trong k thut thng
dng cc php chiu trc giao ny, v cc chiu di v gc miu t chnh xc v c th o c t
Trang
34
bn v. Chng ta cng c th to cc php chiu trc giao c th quan st nhiu hn mt mt ca
mt i tng. Cc quang cnh nh th c gi l cc php chiu trc giao trc lng hc. Hu
ht php chiu trc lng hc c dng l php chiu cng kch thc. Mt php chiu cng kch
thc c thc hin bng vic sp xp song song mt phng chiu m n ct mi trc ta
ni i tng c nh ngha (c gi l cc trc chnh) cc khong cch nh nhau t nh gc.
Hnh 6.5 trnh by php chiu cng kch thc. C tm v tr, mt trong tm mt, u c kch thc
bng nhau. Tt c ba trc chnh c v thu gn bng nhau trong php chiu cng kch thc
kch thc lin h ca cc i tng c bo tn. y khng l trng hp php chiu trc giao
trc lng hc tng qut, khi m cc h s t l theo ba trc chnh c th khc nhau.
Hnh 6.5 Ba php chiu trc giao ca mt i tng.
Cc phng trnh bin i thc hin mt php chiu song song trc giao th d hiu. i vi
im bt k (x, y, z), im chiu (x
p
, y
p
, x
p
) trn b mt chiu c tnh nh sau:
x
p
= x, y
p
= y, z
p
= 0 (6-1)
6.2.1 Php chiu xin
Mt php chiu xin t c bng vic
chiu cc im theo cc ng thng song
song, cc ng thng ny khng vung
gc vi mt phng chiu. Hnh 6.6 trnh by
hnh chiu xin ca im (x, y, z) theo mt
ng thng chiu n v tr (x
p
, y
p
). Cc
ta chiu trc giao trn mt phng chiu
l (x, y). ng thng ca php chiu xin
to mt gc vi ng thng trn mt
Trang
35
phng chiu (y l ng ni im (xp, yp) vi im (x, y)). ng ny, c chiu di L, hp mt
gc vi phng ngang trn mt phng chiu. Chng ta c th din t cc ta chiu qua cc s
hng x, y, L, v :
x
p
= x + L cos (6-2)
y
p
= y + L sin
Hnh 6.6 Php chiu vung gc ca im (x, y, z) thnh im (xp, yp) ln mt phng chiu
Phng chiu c th nh ngha bng vic chn cc gi tr cho gc v . Cc chn la thng
thng cho gc l 30
o
v 45
o
, l cc gc hin th mt quang cnh ca mt trc, bn sn, v trn
nh (hoc mt trc, bn sn, v di y) ca mt i tng. Chiu di L l mt hm ca ta
z, v chng ta c th tnh tham s ny t cc thnh phn lin quan:
L
z
tan . T , cc phng
trnh ca php chiu xin 6.2 c th c vit li nh sau:
x
p
= x + zcos / tg (6-3)
y
p
= y + z sin / tg
Ma trn bin i to ra bt k vic chiu song song c th c vit nh sau :

1
1
1
1
1
]
1

1 0 0 0
0 0 Lsin Lcos
0 0 1 0
0 0 0 1
M] [
P
(6-4)
Mt php chiu trc giao c th t c khi gc chiu = 90
o
. Cc php chiu xin c sinh ra
vi gc chiu 90
o
. Ma trn php chiu c cu trc tng t ma trn ca php lm bin dng theo
trc z. Thc t, kt qu ca ma trn chiu ny l lm bin dng mt phng ca z v chiu chng ln
mt phng quan st. Cc gi tr ta x v y trong mi mt ca z b thay i bi mt h s t l n
gi tr z ca mt phng cc gc, cc khong cch, v cc ng song song trong mt phng c
chiu chnh xc.
6.2.2 Php chiu trc o u
Trong cc php chiu trc o, php chiu trc o u thng
c dng trong k thut. i vi php chiu loi ny, gc gia
cc trc chnh bng 120
o
, nh hnh v di y. to hnh
chiu trc o vung gc u, kt hp 2 php quay c thc
hin trn i tng hnh hc. Sau l php chiu vung gc,
ln mt phng z = 0, lc cc cnh song song ca i tng
c rt ngn li bng nhau. H s rt ngn c tnh bng t s
gia chiu di mi cnh trn hnh chiu vi chiu di ban u.
Gi thit c mt hnh chiu trn mt phng z = 0 trong h ta t nhin, cc php quay l php
quay gc
y

quanh trc y, sau l php quay gc


x


quanh trc x. Trnh t quay c dng
quan st hnh nh trc o, gi l php nghing.
Trang
36

Cc ma trn quay tng ng to php nghing c m t theo ma trn sau:

x R

y R
] [ ] [ M M [M]
=
1
1
1
1
]
1

1
1
1
1
]
1


1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
x x
x x
y y
y y

=
1
1
1
1
]
1

1 0 0 0
0 cos cos cos sin sin
0 sin cos 0
0 cos sin sin sin cos
y x y x y
x x
x y x y y
to hnh chiu trc o, php chiu vung gc ln mt phng z = 0 c thc hin nh sau:
[M]
trc o = [M]
1
1
1
1
]
1

1 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
=
1
1
1
1
]
1

1 0 0 0
0 0 cos sin sin
0 0 cos 0
0 0 sin sin cos
y x y
x
x y y
(6-5)
Cc vc t n v x, y, z qua php bin i bng ma trn php chiu trc o , tr thnh x*, y*, z*:
x* = [1 0 0 1]
[M]
trc o
= [
y
cos

x y
sin sin
0 1 ]
y* = [0 1 0 1]
[M]
trc o
= [ 0
x
cos 0 1]
z* = [0 0 1 1]
[M]
trc o
= [
y
sin

y x
cos sin
0 1]
C | x*| = |y*| = | z*| , do
x
sin = 1/ 3 , hay
0
x
26 . 35 t ;
y
sin
= 1/
2
hay
0
y
45 t

6.3 Php chiu phi cnh
Khi cc i tng ba chiu c chiu ln mt mt phng dng cc phng trnh bin i phi
cnh, bt k tp hp cc ng thng song song no ca i tng m khng song song vi mt
phng chiu c chiu thnh cc ng ng quy. Cc ng thng song song vi mt phng khi
chiu s to ra cc ng song song. im m ti tp hp cc ng thng song song c chiu
xut hin hi t v c gi l im t (im o). Mi tp hp cc ng thng song song c
chiu nh th s c mt im t ring. Cc php chiu phi cnh c phn loi da vo c
cc php chiu : mt-im, hai-im, hoc ba-im.
Hnh 6.7 Cc quang cnh phi cnh ca mt hnh lp phng.
Trang
37
S lng cc im t chnh trong mt php chiu c xc nh bi s lng cc trc ca h ta
thc ct mt phng chiu. Hnh trn minh ha hnh nh ca cc php chiu phi cnh mt-im v
hai-im ca hnh lp phng. Trong hnh 6.7(b), mt phng chiu c phng song song vi mt xy
ch c trc z b ct. Phng ny to ra php chiu phi cnh mt-im vi mt im t trn trc
z. Vi quang cnh trong hnh (c), mt phng chiu ct c hai trc x v z nhng khng ct trc y. Kt
qu, php chiu phi cnh hai-im ny cha c hai im t : trn trc x v trn trc z.
t c php chiu phi cnh ca i tng
ba chiu, chng ta chiu cc im theo ng
thng chiu cc ng ny gp nhau tm
chiu. Trong di y, tm chiu trn trc z v
c gi tr m, cch mt khong d pha sau mt
phng chiu. Bt k im no cng c th c
chn lm tm ca php chiu, tuy nhin vic
chn mt im dc theo trc z s lm n gin
vic tnh ton trong cc phng trnh bin i.
Hnh 6.8 Php chiu phi cnh ca im P
Chng ta c th t c cc phng trnh bin i cho php chiu phi cnh t cc phng trnh
tham s m t cc ng chiu t im P n tm chiu. Cc tham s xy dng cc ng chiu
ny l :
x = x xu
y = y yu (6-6)
z = z (z + d)u
Tham s u ly gi tr t 0 n 1, v cc ta (x, y, z) th hin cho bt k im no dc theo
Trang
38
ng thng chiu. Khi u = 0, im P ta (x, y, z). u mt kia ca ng thng u =1, v
chng ta c cc ta ca tm chiu (0, 0, d). thu c cc ta trn mt phng chiu, chng
ta t z = 0 v tm ra tham s u :

d z
z
u
+
(6-7)
Gi tr ca tham s u to ra giao im ca ng chiu vi mt phng chiu ti (x, y, 0). Th
phng trnh 6-7 vo phng trnh 6-6, ta thu c cc phng trnh bin i ca php chiu phi
cnh nh sau :

1 z/d
1
x
d z
d
x x'
+

+
;
1 z/d
1
y
d z
d
y y'
+

+
; 0 z' (6-8)
Dng biu din h ta thun nht ba chiu, chng ta c th vit php bin i phi cnh theo ma
trn :
] ] [ [
1
1
1
1
]
1

1 0 0 0
1/d 0 0 0
0 0 1 0
0 0 0 1
1 z y x w z y x
h h h
(6-9)
Hnh chiu phi cnh mt tm chiu th khng to hnh chiu tng ng vi i tng hnh hc. Ni
chung, i tng phi c nhn thy nhiu mt hiu r hnh dng ca i tng. Nu cc php
tnh tin hay php quay c thc hin trc php chiu phi cnh mt tm chiu th hnh nh s tt
hn.

Gi thit c mt khi vung n v, c nh pha sau bn di t ti gc ta , nh hnh di y.
Khi vung quay gc quanh trc y v dch chuyn tnh tin theo ma trn trc khi php chiu
phi cnh mt im [M] ln mt phng z = 0, vi tm chiu trn trc z. Cc ta nh ca khi
vung thay i theo cc php bin hnh sau:

] [ ] [M ] [ M M
tr

y R =
1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1


1 0 0 0
1/d 0 0 0
0 0 1 0
0 0 0 1
1 b a 0
0 1 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos

Trang
39
[M]phi cnh 2 im =
1
1
1
1
]
1

d / b - 1 0 a 0
d / cos - 0 0 sin
0 0 1 0
d / sin 0 0 cos
(6-10)

Nu khi vung c quay quanh trc y trc, sau quanh trc x trc khi p dng php chiu
phi cnh, ma trn kt hp nh sau:
] [ ] [ ] [ M M M

x R

y R
=
1
1
1
1
]
1

1
1
1
1
]
1

1
1
1
1
]
1


1 0 0 0
1/d 0 0 0
0 0 1 0
0 0 0 1
1 0 0 0
0 cos sin 0
0 sin cos 0
0 0 0 1
1 0 0 0
0 cos 0 sin
0 0 1 0
0 sin 0 cos
[M]phi cnh 3 im =
1
1
1
1
]
1

1 0 0 0
d / cos cos - 0 sin cos - sin
d sin 0 cos 0
/d cos sin 0 sin sin cos
/ -
(6-11)
6.4 Bi tp p dng
Bi 1 Vit chng trnh v ng cong Bezier.
Bi 2 Vit chng trnh v mt li B Spline.
Bi 3 Vit chng trnh v phi cnh hnh khi cu, lng tr.. .
Gi : S dng th vin ha Direct X hoc OpenGL.
Trang
40
CHNG 7 HIN TH HNH NH THT
7.1 Kh ng khut, mt khut
Mt vn cn c quan tm n trong vic to ra cc hnh nh thc l s xc nh v xa b cc
phn ca i tng hnh hc m ta khng nhn thy c t mt v tr quan st. Cc thut ton v
ng khut v mt khut da vo x l trc tip nh ngha i tng hay x l hnh chiu ca cc
i tng . Hai tip cn ny c gi l phng php khng gian i tng v phng php
khng gian nh. Phng php khng gian i tng xc nh cc thnh phn ca i tng c
Trang
41
nhn thy bng cch s dng cc quan h hnh hc v khng gian. N thc hin vi chnh xc t
d liu m t i tng. Trong thut ton khng gian nh, tnh cht nhn thy c ca mt im
c quyt nh bi im v tr pixel trn mt phng chiu. Trong mc ny, chng ta kho st mt
vi trong s cc gii thut kh ng khut, mt khut.
7.1.1 Php la chn mt sau
Php la chn mt sau l mt cch n gin dng kh b cc mt pha sau i tng so vi
ngi quan st. N ch p dng cho khi a din li, nhng n l bc u gii quyt vn kh b
ng v mt khut cho nhiu i tng phc tp. Php la chn mt sau thc hin trong khng
gian i tng.
K thut ny s dng cc php tuyn hng ra ngoi mt mt a din trong qu trnh thc hin, nh
hnh di y. Php kim tra n gin c thc hin xc nh php tuyn c hng ra ngoi
hay khng. u tin, chn vc t i hng n im bn trong a din, sau tm vc t php tuyn
n bng tch c hng 2 vc t nm trn mt. Cui cng, l php nhn v hng gia i v n xc
nh hng ca php tuyn theo quy tc:
Nu n.i > 0 th php tuyn hng vo trong; ngc li th
php tuyn hng ra bn ngoi a din.
Vic kim tra khng cn thit nu mi mt c m t bng cc
nh c th t, theo quy tc bn tay phi. Trng hp th
hng ca php tuyn lun ch bn ngoi a din. Khi tm ra
vc t php tuyn hng ra ngoi cho cc mt, ta xc nh tnh nhn thy ca mt mt nh sau: to
mt vc t ngm v c xy dng t mt im bt k trn mt hng n im nhn, nh trn hnh
sau. Php nhn v. n > 0 th mt c nhn thy,
nu khng th mt b che khut.
Cho hnh a din sau, hy xc nh cc mt nhn
thy t v tr P(5, 5, 5) nu bit i, j, k l cc vc
t n v trn cc trc x, y, z.
Hnh 7.2 a din ABCDE
Xt mt phng AED, vc t php tuyn ca mt phng l tch c hng
AD AE. .
:
N =
AD AE. .
=
1
1
1
]
1

1 0 1
0 1 1
k j i
= (i , j , k)
Nu chn im Q bn trong a din c ta (0, 0.5, 0), th vc t AQ = (-i , 0.5j) . Tch v hng
gia n v AQ l : (i , j , k)(-i , 0.5j) = -0.5 , nn hng ca n i t trong a din ra bn ngoi.
Vc t v c thit lp l AP = (4i , 5j, 5k) . Tch v hng n.v l 14, nn AED nhn thy t P.
Hon ton tng t cho cc mt BEA, DEC, trong khi CEB v ABCD khng nhn thy.
7.1.2 Php kim tra minimax
Trang
42
i tng hnh hc c chiu ln mt phng chiu, s c nhng b mt ca i tng giao nhau.
Phn giao nhau s khng cn v li nhiu ln tng tc thc hin. Php kim tra minimax l
php th mt im nm trong mt hay khi bao khng. N s dng trong khng gian i tng hoc
trong khng gian nh, kim tra hai cnh hoc mt c chng ln nhau khng. Nu vt qua c
php kim tra, cc cnh hay cc mt cng khng giao nhau.

Xt cc a gic hnh trn, nhng gi tr max, min ca ta nh a gic c so snh theo cc
bt phng trnh: x
Amax
< x
Bmin
, x
Bmax
< x
Amin
, y
Amax
< y
Bmin
, y
Bmax
< y
Amin
. Nu mt bt phng trnh
ng th hai a gic khng giao nhau. Qua php th, a gic A khng ln B trong hnh bn tri v
bt phng trnh 1 ng, trong khi a gic A ln a gic B v cc bt phng trnh u sai. Php
kim tra cng c m rng cho ta z.
7.1.3 Php kim tra nm trong
Php kim tra nm trong kim tra cc nh ca mt a gic ny nm trong a gic kia khng. Nu
php minimax x l khng ng cho mt cp a gic th c th l mt trong hai a gic bao quanh
ci kia. Xt mt im P no i vi a gic, im P hoc nm trong hay nm ngoi a gic. Cc
on thng v t P n cc nh ca a gic theo th t, cng chiu hay ngc chiu kim ng h.
Cc gc to bi cc on ny s c tnh tng v kim tra theo cch sau:
Nu tng cc gc bng 0 th P nm ngoi a gic
Nu tng cc gc bng 360 th P nm trong a gic.
Php kim tra p dng cho nhng im cn li ca a gic, xc nh c a gic ny nm trong a
gic kia khng.

7.1.4 Gii thut vng m su
Mt tip cn khng gian nh c dng ph bin kh mt khut l gii thut vng m su.
Mt cch c bn, thut ton ny kim tra tnh nhn thy c ca cc mt mi ln mt im. Vi
mi v tr pixel (x,y) trn mt phng quan st, mt no c gi tr ta z nh nht v tr pixel th
nhn thy c. Hnh 7.3 trnh by ba mt c su khc nhau, vi s quan tm n v tr (x, y)
trong h quan st bn tay tri. Mt S1 c gi tr z nh nht v tr ny v vy gi tr sng (x, y)
c lu.
Hai vng m c cn ci t phng php ny. Mt vng m su c dng lu tr
cc gi tr z cho mi v tr (x, y) ca cc mt c so snh. Vng m th hai l vng m lm ti
(hay cn gi l vng m khung), lu gi cc gi tr sng cho mi v tr (x, y). v tr (x, y), mt
S1 c gi su nh nht v v th c nhn thy v tr .
Trang
43
Phng php ny c th c thc hin hiu qu
trong cc h ta chun, vi cc gi tr su thay
i t 0 n 1. Gi s rng mt khng gian chiu
c nh x vo mt khng gian quan st hnh hp
chun, nh x ca mi mt ln mt phng quan st l
mt php chiu trc giao. su ca cc im trn b
mt ca mt a gic c tnh t phng trnh mt
phng. Ban u, tt c cc v tr trong vng m
su c t gi tr 1 ( su ln nht), v vng m
lm ti c khi to gi tr ca sng nn.
Hnh 7.3
Mi mt ( c lp danh sch trong cc bng a gic sau c x l. Mi ln mt ng qut
tnh su, hoc gi tr z, mi v tr (x, y). Gi tr z va c tnh xong s c so snh vi cc
gi tr lu tr trc trong vng m su v tr . Nu gi tr z va c tnh xong nh hn
cc gi tr trc , gi tr z mi s c lu, v sng ca mt v tr cng c cp nht li
vo v tr tng ng trong vng m lm ti.
Chng ta c th tng kt cc bc ca thut ton vng m su nh sau:
1. Khi to vng m su v vng m lm ti vi tt c cc v tr (x,y), depth(x, y) =1 v
refresh(x, y) = background.
2. i vi mi v tr trn mi mt, so snh cc gi tr su vi cc gi tr su c lu trc
trong vng m su xc nh tnh cht nhn thy c.
a. Tnh gi tr z cho mi v tr (x, y) trn mt.
b. Nu z < depth(x, y) th t li depth(x, y)= z v refresh(x, y) = i , vi i l gi tr sng trn mt
v tr (x, y). Trong bc cui cng, nu z khng nh hn gi tr trong vng m su v tr ,
im khng c nhn thy. Khi qu trnh ny c hon thnh cho tt c cc mt, vng m su
cha cc gi tr z ca cc mt nhn thy c v vng m lm ti ch cha cc gi tr sng ca
cc mt nhn thy c .
Cc gi tr su cho mt v tr (x, y) c tnh t phng trnh ca mi mt:
V
i mi ng qut bt k (xem hnh 7.4), cc ta x trn
cng ng qut sai khc nhau 1, v cc gi tr y gia hai
ng qut cng sai khc nhau 1. Nu su ca v tr (x,y)
c xc nh l z, khi su z ca v tr k tip (x+1, y)
dc theo theo ng qut c c t phng trnh trn nh
sau: Vi mi ng qut bt k, cc ta x trn cng
ng qut sai khc nhau 1, v cc gi tr y gia hai ng
qut cng sai khc nhau 1. Nu su ca v tr (x,y) c xc
nh l z, khi su z ca v tr k tip (x+1, y) dc theo
theo ng qut c c nh sau :
Hnh 7.4
hoc
C
A
z z'
Trang
44
C
D By Ax
z
) (

C
D By 1) A(x
z'
) ( +

T s A/C khng i vi mi mt, v vy gi tr su ca im k tip trn cng ng qut c


c t gi tr trc vi mt php tr. Chng ta thu c cc gi tr su gia cc ng qut
theo cch tng t. Mt ln na gi s rng v tr (x, y) c su z. Khi v tr (x, y-1) trn
ng qut ngay bn di, gi tr su c tnh t phng trnh mt phng nh sau :
hoc
C
B
z ' z' +
su z c cng thm t s B/C. Phng php vng m su th d dng ci t, v n
khng cn sp xp cc mt trong nh. Nhng n cn n mt vng m th hai l vng m lm
ti. Mt h thng vi phn gii 1024 x 1024 c th cn hn mt triu v tr trong vng m
su, vi mi v tr cn bit lu gi cc ta z tng. Mt cch gim bt khng gian lu gi
cn thit l ti mi thi im ch x l mt phn ca nh, dng mt vng su nh hn. Sau mi
phn nh c x l xong, vng m c dng li cho phn k tip.
7.2 Php t bng
Mc d cc bn v c dng trong cc ng dng k thut, nhng chng cha y nu biu din
i tng nh tht. Hnh nh mu c t bng l mc ch cn thu c, v n c th cung cp cc
thng tin m bn v cc ng, mt khng gii quyt c. Khi t bng b mt ca i tng, hnh
bng ca mi im trn b mt xc nh bng cc yu t :
M t cc ngun sng
c im b mt
V tr tng i ca ngun sng quan h vi b mt
nh sng cn c m t chi tit v ngun sng nh v tr, cng , ni chng chiu vo Ni
chung, c 2 loi nh sng l nh sng ta (point light) v nh sng lan truyn (ambient light). nh
sng ta cung cp nh sng t mt im theo cc hng xc nh. Hnh nh n to ra c phn th v
i tng c chiu sng t mt v tr. nh sng mi trng c cung cp theo cc hng, khng
quan tm n ngun sng.
Trong vic pht trin ngun sng, cc m hnh c t bng phi xc nh mi quan h gia ngun
sng v b mt t. Hiu ng ca cc ngun sng ta phi c xem xt, b sung gi tr khng i
cng nh sng mi trng trong cc php tnh. Cch thc nh sng phn chiu t b mt l h s
quan trng khi t. S tn x nh sng xut hin khi nh sng pht ra nh nhau theo mi hng, do
sng trn mt l nh nhau khi nhn t cc gc . N to ra mt nhn m c. Ngc li, s
phn chiu gng phn chiu nh sng ch theo mt hng, to ra mt mt sng chi nh tm
gng. Cc b mt tht phn chiu nh sng phi hp hai hiu ng trn. S tn x nh sng d tnh
ton nn n c kt hp trong a s cc m hnh ha.
Kt qu to ra ca m hnh c t bng l gi tr cng cho mt lot im trn b mt i
tng. tnh gi tr cng nh sng, xt tia ti t ngun ti b mt, nh hnh di y. Gc to
gia tia ti v vc t php tuyn n v ti im ti trn b mt c dng cho php tnh.
Tia ti
Trang
45
C
D) 1) B(y Ax (
' z'

n
i


K thut t bng b mt c nu ra nh sau: Gi thit cng nh sng phn chiu khng ph
thuc v tr quan st, s xc nh nh sau:
cos k I I
d s

. Trong , I
s
l cng ca ngun v k
d
l
h s phn x ca b mt trong khong (0, 1). Hm cosin ca gc tm theo tch v hng gia hai
vc t n v i v n , do
i) . (n. k I I
d s

Gc cng nh, b mt ang xem xt cng hng ti


ngun. c im php t bng to cng sng ging nhau cho mi im trn b mt, to ra hnh
nh gm nhiu sng, khng hon ton ging nh tht, nhng li thc hin tnh nhanh, do k
thut t bng b mt c s dng kim tra s b khi thit k.

Cho 3 im A(0, 0, 1); B(1, 0, 0); C(0, 1, 0) v cng ngun sng l 9 t ti khong cch xa
theo hng 4k) 3j, i, 2 ( . Hy xc nh cng t vi h s phn x 0.25.
Vc t n v i =
3 3
4k) 3j, i, 2 (
, vc t php tuyn n =
3
) , , (
| k) , j k).(0, 0, (i, |
k) , j , k).(0 0, (i,
.
. k j i
AC AB
AC AB

Cng t bng l I = 9.0,25.(i.n) = 2.1


K thut t bng Gouraud lin quan n mi nh a gic, cng sng tnh ton ti mi im,
cng sng ti cc nh c pha trn v lm mn trn b mt. tnh cng sng ti cc
nh chung ca nhiu a gic, php tuyn ca tt c cc a gic c tnh trung bnh trc khi tnh
ton cng :

i
i
average
n
n
n
Trang
46

Trong , n
i
l php tuyn n v ca cc mt c chung cc nh. Sau khi cng ti cc nh
tnh, p dng php ni suy tuyn tnh cho cng cc nh t bng cc a gic. S dng chung
vi gii thut qut dng, k thut to m hnh t bng hiu qu hn.
Cho hnh thang ABCD nh hnh v di y, hy tm cng ti im P(5, 2) theo php t bng
Gouroud, bit cng trung bnh ti bn nh l I
A
= 5.0 , I
B
= 6.0 , I
C
= 4.0 , I
D
= 9.0 S dng
php ni suy tuyn tnh theo AB, CD tnh gi tr cng cho im x, y trn dng qut i qua P:
5.5 5
2
5) (6
I
) y (y
) y (y
) I (I I
A
B A
P A
A B 1
+



6.5 9
2
9) (4
I
) y (y
) y (y
) I (I I
D
C D
P D
D C 2
+


6 5 . 5
) 1 9 (
) 1 5 )( 5 . 5 5 . 6 (
I
) x (x
) x (x
) I (I I
1
1 2
1 P
1 2 P
+


7.3 Bi tp p dng
Bi 1 Cho mt phng to bi 3 im A(1, 0, 1); B(4, 0, 1); C(2, 4, 2) v mt phng to bi 3 im
D(3, 0, 2); E(2, 0, 0); F(1, 6, 0). Nu s dng php kim tra minmax, xc nh tnh nhn thy gia 2
phn mt phng.
Bi 2 Cho mt phng ch nht to bi A(0, 0) ; B(1, 0) ; C(1, 1); D(0, 1) . Tnh cng sng ti
P(0.5, 0,5) theo php t bng Gouraud. Cho cng sng trung bnh ti mi nh l I
A
= 8, I
B
= 9,
I
C
= 2 , I
D
= 4.
Trang
47
TI LIU THAM KHO
- ng Vn c. K thut ha my tnh. Vin Cng ngh thng tin. 2002.
- Donald Hearn, M. Pauline Baker, Computer Graphics, Prentice-Hall Inc., Englewood
Cliffs, New Jersey, 1986.
- F.S.Hill, Computer graphics, 1990
THI THAM KHO
Cc thi c thi gian lm bi 60 pht
s 1
Trang
48
Cu 1 Cho 3 im A, B, C c ta ln lt l A(0, 40); B(-37, 125); C(40, -81). Hy tm ta
mi ca cc im trn qua bin i:
a. Php bin i t l vi h s t l theo trc honh l 3, trc tung l 2.
b. Php quay gc 60
o
, ngc chiu kim ng h quanh gc ta .
Cu 2 Hy tm cc h s p v ta cc im s ny sinh ca on thng c v theo gii thut
bresenham, nu bit on thng i qua hai im l A(5, 10) v B(15, 15).
s 2
Cu 1 Cho h 3 im A, B, C c ta ln lt l A(43, 0); B(25, -67); C(-40, -34). Hy tm ta
mi ca cc im trn qua bin i:
a. Php tnh tin vi h s tnh tin theo trc honh l 44, trc tung l -81.
b. Php i xng qua trc tung.
c. Tm ma trn bin i ca 2 php tnh tin v php i xng trn.
Cu 2 Hy tm cc h s p v ta cc im s ny sinh ca on thng c v theo gii thut
midpoint, nu bit on thng i qua hai im l A(0, 13) v B(10, 7).
s 3
Cu 1 Cho 3 im A, B, C c ta ln lt l A(43, 0); B(25, -67); C(-40, -34). Hy tm ta
mi ca cc im trn qua bin i:
a. Php bin dng vi h s bin dng theo trc honh l 4, trc tung l 3.
b. Php quay gc 45
o
, ngc chiu kim ng h quanh gc ta .
Cu 2 Hy tm h s p v ta ca 10 im s ny sinh u tin ca cung 1/8 ng trn c v
theo gii thut midpoint, nu bit ng trn c tm (10, -25) v bn knh 90.
s 4
Cu 1 Cho 3 im A, B, C c ta ln lt l A(0, 0); B(67, -46); C(-9, 22). Hy tm ta mi
ca cc im trn qua bin i:
a. Php i xng qua trc honh.
b. Php bin i t l vi h s t l theo trc honh l 2, trc tung l 1.
c. Tm ma trn bin i ca 2 php i xng v php bin i t l trn.
Cu 2 Hy tm h s p v ta ca 32 im s ny sinh u tin ca ng trn c v theo gii
thut midpoint, nu bit ng trn c tm (-30, -12) v bn knh 60.
s 5
Cu 1 Cho 3 im A, B, C c ta ln lt l A(0, 1, 18); B(7, -16, 9); C(-9, 12, 4). Hy tm ta
mi ca cc im trn qua bin i:
a. Php bin dng theo trc z, h s bin dng tc ng ln honh l 3, ln tung l 2.
b. Tm ma trn bin i ca php i xng qua ng y = x.
Cu 2 Cho ca s gii hn bi im trn tri c ta (10, 76) v im di phi c ta (60, 24).
p dng gii thut Cohen-Sutherland thc hin ct xn cc on thng sau vi bin ca s:
on thng AB: A(4, 35); A(50, 80)
on thng CD: C(47, 29); D(55, 3)
on thng EF: E(-10, 29); F(0, 3)
s 6
Trang
49
Cu 1 Cho 3 im A, B, C c ta ln lt l A(1, -6, -18); B(16, 7, -9); C(0, 4, -3). Hy tm ta
mi ca cc im trn qua bin i:
a. Php bin i t l, h s bin i theo trc x l 1, trc y l 3, trc z l 2.
b. Tm ma trn bin i ca php i xng qua ng y = -x.
Cu 2 Cho ca s gii hn bi im trn tri c ta (4, 50) v im di phi c ta (60, -30).
p dng gii thut Cohen-Sutherland thc hin ct xn cc on thng sau vi bin ca s:
on thng AB: A(24, 0); B(40, 90)
on thng CD: C(38, -35); D(55, 0)
on thng EF: E(-10, 29); F(0, 3)
s 7
Cu 1 Cho 3 im A, B, C c` ta ln lt l A(0, 1, 18); B(7, -16, 9); C(-9, 12, 4). Hy tm ta
mi ca cc im trn qua bin i:
a. Php tnh tin, h s tnh tin theo trc x l 10, trc y l -15, trc z l 30.
b. Tm ma trn bin i ca php i xng qua ng y = x.
Cu 2 Cho ca s h ta thc gii hn bi im trn tri c ta (10, 76) v im di phi
c ta (60, 24); ca s quan st gii hn bi im trn tri c ta (-15, 15) v im di phi
c ta (-10, 24). Cho tam gic ABC xc nh trong h ta nh sau: A(14, 35); B(50, 29);
C(47, 39). Tm ta mi ca tam gic trong ca s quan st.
s 8
Cu 1 Cho 3 im A, B, C c ta ln lt l A(-1, -6, 8); B(6, 0, -39); C(4, 0, -2). Hy tm ta
mi ca cc im trn qua bin i:
a. Php bin i t l, h s bin i theo trc x l 2, trc y l 3, trc z l 1.
b. Tm ma trn bin i ca php i xng qua ng y = -x.
Cu 2 Cho ca s h ta thc gii hn bi im trn tri c ta (20, 80) v im di phi
c ta (50, 34); ca s quan st gii hn bi im trn tri c ta (-15, 20) v im di phi
c ta (-12, 25). Cho tam gic ABC xc nh trong h ta nh sau: A(14, 35); B(50, 29);
C(47, 39). Tm ta mi ca tam gic trong ca s quan st.
Trang
50

You might also like