You are on page 1of 61

CHNG 1

TNG QUAN V HO MY TNH


1.1.Cu trc cc thnh phn lin quan n ho
1.1.1. H thng ha
Phn mm ha: L tp hp cc cu lnh ha ca h thng. Cc cu
lnh lp trnh dng cho cc thao tc ha khng c cc ngn ng lp tr nh
thng dng nh PASCAL, C, ... h tr. Thng thng, n ch cung cp nh l mt
tp cng c thm vo trong ngn ng. Tp cc cng c ny dng to ra cc
thnh phn c s ca mt hnh nh ha nh: im, on thng, ng trn,
mu sc,... Qua , cc nh lp trnh phi to ra cc chng trnh ha c kh
nng ng dng cao hn.
Phn cng ha: L cc thit b in t: CPU, Card, mn hnh, chut,
phm... gip cho vic thc hin v pht trin cc phn mm ha.
1.1.2. Cc thnh phn ca mt h thng ha
Tp hp cc cng c ny c phn loi da trn nhng cng vic trong tng
hon cnh c th: xut, nhp, bin i nh, ... bao gm:
- Tp cng c to ra nh gc (output primitives): cung cp cc cng c c bn
nht cho vic xy dng cc hnh nh. Cc nh gc bao gm cc chui k t, cc
thc th hnh hc nh im, ng thng, a gic, ng trn,...
- Tp cc cng c thay i thuc tnh (attributes): dng thay i thuc tnh
ca cc nh gc. Cc thuc tnh ca nh gc bao gm mu sc (color), kiu ng
thng (line style), kiu vn bn (text style), mu t vng (area filling pattern),...
- Tp cc cng c thay i h quan st (viewing transformation): Mt khi m
cc nh gc v cc thuc tnh ca n c xc nh trong h ta thc, ta cn
phi chiu phn quan st ca nh sang mt thit b xut c th. Cc cng c n y
cho php nh ngha cc vng quan st trn h ta thc hin th hnh nh .
- Tp cc cng c phc v cho cc thao tc nhp d liu (input operations):
Cc ng dng ha c th s dng nhiu loi thit b nhp khc nhau nh bt v,
bng, chut, ... Chnh v vy, cn xy dng thm cc cng c ny iu khin v
x l cc d liu nhp sao cho c hiu qu.
Mt yu cu v phn cng khng th thiu t ra cho cc phn mm ha
l: tnh d mang chuyn (portability), c ngha l chng trnh c th chuyn i
mt cch d dng gia cc kiu phn cng khc nhau. Nu khng c s chun ha,
cc chng trnh thit k thng khng th chuyn i n cc h thng phn
cng khc m khng vit li gn nh ton b chng trnh.
Sau nhng n lc ca cc t chc chun ha quc t, mt chun cho vic pht
trin cc phn mm ha ra i: l GKS (Graphics Kernel System - H
ha c s). H thng ny ban u c thit k nh l mt tp cc cng c
ha hai chiu, sau c pht trin m rng trong ha ba chiu.
Ngoi ra, cn c mt s chun ha ph bin nh:
- CGI (Computer Graphics Interface System): h chun cho cc phng
php giao tip vi cc thit b ngoi vi.
- OPENGL: th vin ha ca hng Silicon Graphics.
- DIRECTX: th vin ha ca hng Microsoft.
1.1.3. Mn hnh ho
Mi my tnh u c mt CARD dng qun l mn hnh, gi l Video
Adapter hay Graphics Adapter. C nhi u loi adapter nh: CGA, MCGA, EGA,
VGA, Hercules... Cc adapter c th lm vic hai ch : vn bn (Text Mode)
v ha (Graphics Mode).
C nhiu cch khi to cc mode ha. Ta c th s dng h m $00 ngt
$10 ca BIOS vi cc Mode sau:
- Mode $12: ch phn gii 640x480x16
- Mode $13: ch phn gii 320x200x256
Ta c th vit mt th tc khi to ch ha nh sau:
Procedure InitGraph(Mode:Word);
var Reg:Registers;
Begin
reg.ah := 0;
reg.al := mode;
intr($10,reg);
End;
1.2. ng dng ca ha my tnh hin nay
Ngy nay, ha my tnh c s dng rng ri trong nhiu lnh vc khc
nhau nh: Cng nghip, thng mi, qun l, gio dc, gii tr,... Sau y l mt
s ng dng tiu biu:
1.2.1. To giao din (User Interfaces): nh cc chng trnh ng dng
WINDOWS, WINWORD, EXCEL ... ang c a s ngi s dng a chung
nh tnh thn thin, d s dng.
1.2.2. To ra cc biu dng trong thng mi, khoa hc v k thut: Cc
biu c to ra rt a dng, phong ph bao gm c hai chiu ln ba chiu gp
phn thc y xu hng pht trin cc m hnh d liu h tr c lc cho vic
phn tch thng tin v tr gip ra quyt nh.
1.2.3. T ng ha vn phng v ch bn in t: dng nhng ng dng ca
ha in n cc ti liu vi nhiu loi d liu khc nhau nh : vn bn, biu ,
th v nhiu loi hnh nh khc ...
1.2.4. Thit k vi s tr gip ca my tnh (Computer aided design): Mt trong
nhng li ch ln nht ca my tnh l tr gip con ngi trong vic thit k. Cc
ng dng ha cho php chng ta thit k cc thit b c kh, in, in t, t,
my bay, ... nh phn mm AUTOCAD ...
1.2.5. Lnh vc gii tr, ngh thut: cho php cc ha s to ra cc hnh nh ngay
trn mn hnh ca my tnh. Ngi ha s c th t pha mu, trn mu, thc hin
mt s thao tc: ct, dn, ty, xa, phng to, thu nh ... nh cc phn mm
PAINTBRUSH, CORELDRAW,...
1.2.6. Lnh vc bn : xy dng v in n cc bn a l. Mt trong nhng ng
dng hin nay ca ha l h thng thng tin a l (GIS - Geographical
Information System).
CHNG 2. GII THUT XY DNG CC THC TH C S
2.1.Cc gii thut v on thng
2.1.1. Bi ton: V on thng i qua 2 im A(x1,y1) v B(x2,y2)
* Trng hp x1=x2 hoc y1=y2: rt n gin.
* Trng hp ng thng c h s gc m:
tng:
V cc Pixel c v cc v tr nguyn nn ng thng c v ging
nh hnh bc thang (do lm trn).
Vn t ra l chn cc ta nguyn gn vi ng thng nht.
2.1.2. Thut ton DDA (Digital differential analyzer)
Xt ng thng c h s gc 0<ms1(gi s im u A nm bn tri v
im cui B nm bn phi). Nu ta chn Ax=1v tnh gi tr y k tip nh sau:
y
k+1
= y
k
+ Ay = y
k
+ m.Ax
= y
k
+ m
Vi h s gc m>1: ta hon i vai tr ca x,y cho nhau. Nu chn Ay=1
th:
x
k+1
= x
k
+ 1/m
Tng t, nu im B nm bn tri v A nm bn phi th:
y
k+1
= y
k
- m (0<ms1, Ax= -1)
x
k+1
= x
k
- 1/m (m>1, Ay= -1)
Tm li: Ta c thut ton v ng thng DDA nh sau:
Nhp A(x1,y1) B(x2,y2)
Tnh Ax = x2 - x1 Ay = y2 - y1 Step = Max(|Ax| , |Ay|)
Khi to cc gi tr:
IncX = Ax/Step; IncY = Ay/Step; {bc tng khi
v}
x = x1; y = y1;
{Chn im v u tin}
V im (x,y);
Cho i chy t 1 n Step:
x = x + IncX; y = y + IncY;
V im (Round(x),Round(y))
2.1.3. Thut ton Bresenham
Phng trnh ng thng c th
pht biu di dng: y = m.x + b (1)
Phng trnh ng thng qua 2
im:
1 2
1
x x
x x

=
1 2
1
y y
y y

(*)
t Ax = x2 - x1
Ay = y2 - y1
(*) : y = x.
x
y
A
A
+ y1 - x1.
x
y
A
A
Suy ra m =
x
y
A
A
nn Ay = m. Ax
(2)
b = y1 - m.x1
(3)
Ta ch xt trng hp h s gc 0<m<1.
Gi s im (xi,yi) c v. Ta phi chn im k tip l :
(x
i
+ 1,y
i
) hoc (x
i
+1,y
i
+1) (Xem hnh 1.2)
Xt khong cch gia 2 im chn vi im nm tr n ng thc. Nu
khong cch no b hn th ta ly im .
x
i
x
i
+1
y
i
+
1
y
y
i
Hnh 1.2
t:
d
1
= y - y
i
= m.(x
i
+1) + b - y
i
d
2
= (y
i
+1) - y = y
i
+ 1 - m.(x
i
+ 1) - b
Suy ra:
d
1
- d
2
= 2m.(x
i
+ 1) - 2y
i
+ 2b - 1
= 2.
x
y
A
A
.(x
i
+ 1) - 2y
i
+ 2b - 1
: Ax(d
1
- d
2
) = 2Ay.x
i
- 2Ax.y
i
+ 2Ay + Ax.(2b - 1)
t p
i
= Ax(d
1
- d
2
) v C = 2Ay + Ax.(2b - 1)
th p
i
= 2Ay.x
i
- 2Ax.y
i
+ C
(4)
p
i+1
= 2Ay.x
i+1
- 2Ax.y
i+1
+ C
Suy ra:
p
i+1
- p
i
= 2Ay(x
i+1
- x
i
) - 2Ax(y
i
- y
i+1
)
= 2Ay - 2Ax(y
i+1
- y
i
)
(5)
( v x
i+1
- x
i
= 1 )
* Nhn xt:
. Nu p
i
< 0: Chn y
i+1
= y
i
T (5) p
i+1
= p
i
+ 2Ay. (d
1
<d
2
)
. Nu p
i
> 0: Chn y
i+1
= y
i
+ 1 T (5) p
i+1
= p
i
+ 2Ay - 2Ax.
(d
1
>d
2
)
Vi im mt u tin, theo (4) ta c:
p
1
= 2Ay.x
1
- 2Ax.y
1
+ 2Ay + Ax[2.(y
1
- m.x
1
) - 1] = 2Ay - Ax
T , ta c th tm tt thut ton v ng thng theo Bresenham cho tr ng hp
h s gc 0<m<1 nh sau:
- Bc 1: Nhp cc im u mt. im u mt bn tri cha ta (x1,y1),
im u mt bn phi cha ta (x2,y2).
- Bc 2: im c chn v u ti n l (x1,y1).
- Bc 3: Tnh Ax = |x2 - x1| , Ay = |y2 - y1| v P
1
= 2Ay - Ax
Nu p
i
< 0 th im k tip l (x
i
+ 1,y
i
)
Ngc li: im k tip l (x
i
+ 1,y
i
+ 1)
- Bc 4: Tip tc tng x ln 1 Pixel. v tr x
i
+1, ta tnh:
p
i+1
= p
i
+ 2Ay nu p
i
< 0
p
i+1
= p
i
+ 2.( Ay - Ax) nu p
i
> 0
Nu p
i+1
< 0 th ta chn to y k tip l y
i+1
Ngc li th ta chn y
i+1
+1
- Bc 5: Lp li bc 4 cho n khi x = x2.
2.1.4. Thut ton MidPoint
Ta ch xt trng hp h s gc 0<m<1.
Thut ton ny a ra cch chn im S(x
i
+1,y
i
) hay P(x
i
+1,y
i
+1) bng
cch so snh im thc Q(x
i
+1,y) vi im M (trung im ca S v P).
Nu im Q nm di im M th chn im S
Ngc li, chn im P. (Xem hnh 1.3)
Ta c dng tng qut ca phng trnh ng thng:
Ax + By + C = 0
vi A = y2 y1 , B = (x2 x1) ,
C = x2.y1 x1.y2
t F(x,y) = Ax + By + C, ta c nhn xt:
< 0 nu (x,y) nm pha trn ng thng
F(x,y) = 0 nu (x,y) thuc v ng thng
> 0 nu
(x,y) nm pha di ng thng
Lc ny, vic chn cc im S hay P
c a v vic xt du ca:
p
i
= F(M) = F(x
i
+ 1,y
i
+
2
1
)
P
Q
M
S
y
i
x
i
x
i
+1
y
i
+
1
y
i
Hnh 1.3
Nu p
i
< 0 M nm trn on thng Q nm di M Chn S
Nu p
i
> 0 M nm di on thng Q nm trn M Chn P
Mt khc:
p
i
= F(x
i
+ 1,y
i
+
2
1
)
p
i+1
= F(x
i+1
+ 1,y
i+1
+
2
1
)
nn
p
i+1
- p
i
= F(x
i+1
+ 1,y
i+1
+
2
1
) - F(x
i
+ 1,y
i
+
2
1
)
= A(x
i+1
+1) + B(y
i+1
+
2
1
) + C - A(x
i
+1) - B(y
i
+
2
1
)
- C
= A(x
i+1
- x
i
) + B(y
i+1
- y
i
)
= A + B(y
i+1
- y
i
) (v x
i+1
- x
i
=1)
Suy ra:
p
i+1
= p
i
+ A + B(y
i+1
- y
i
)
(*)
*Nhn xt:
. Nu p
i
< 0: Chn im S: y
i+1
= y
i
T (*) suy ra p
i+1
= p
i
+ A
. Nu p
i
> 0: Chn im P: y
i+1
= y
i
+ 1 T (*) suy ra p
i+1
= p
i
+ A + B
Vi im mt u tin, ta c:
p
1
= F(x
1
+ 1,y
1
+
2
1
) = A(x
1
+1) + B(y
1
+
2
1
) + C
= Ax
1
+ Bx
1
+ C + A +
2
B
= A +
2
B
(v Ax
1
+ Bx
1
+ C = 0)
Thut ton MidPoint cho kt qu t ng t nh thut ton Bresenham.
2.2. Gii thut v ng trn
Xt ng trn (C) tm O(x
c
,y
c
) bn knh
R. Phng trnh tng qut ca ng trn c
dng:
(x - x
c
)
2
+ (y - y
c
)
2
= R
2
(*)
: y = y
c
R x x
C
2 2
( ) (1)
n gin thut ton, u ti n ta xt
ng trn c tm gc ta (x
c
=0 v y
c
=0).
* tng:
Do tnh i xng ca ng trn nn nu im (x,y)e(C) th cc im
(y,x), (-y,x), (-x,y), (-x,-y), (-y,-x), (y,-x), (x,-y) cng e (C) (Hnh 1.4)
V vy, ta ch cn v mt phn tm cung tr n ri ly i xng qua gc O v 2 trc
to th ta c c ton b ng trn.
2.2.1. Thut ton Bresenham
Gi s (x
i
,y
i
) v c. Cn chn im k tip l (x
i
+1,y
i
) hoc (x
i
+1,y
i
-
1) (Hnh 1.5)
T phng trnh: x
2
+ y
2
= R
2
ta tnh c gi tr y thc ng vi x
i
+1 l:
y
2
= R
2
- (x
i
+1)
2
t: d
1
= y
i
2
- y
2
= y
i
2
- R
2
+ (x
i
+ 1)
2
d
2
= y
2
- (y
i
- 1)
2
= R
2
- (x
i
+ 1)
2
- (y
i
- 1)
2
Suy ra:
p
i
= d
1
- d
2
= 2.(x
i
+ 1)
2
+ y
i
2
+ (y
i
- 1)
2
- 2R
2
(2)
p
i+1
= 2.(x
i+1
+ 1)
2
+ y
2
i+1
+ (y
i+1
- 1)
2
- 2R
2
(3)
T (2) v (3) ta c:
p
i+1
- p
i
= 4x
i
+ 6 + 2.(y
2
i+1
- y
i
2
) - 2.(y
i+1
- y
i
)
(-x,-y)
(x,y)
(y,x)
(-
y,x)
(-
x,y)
(-y,-x)
(x,-
y)
( y,-
x)
Hnh 1.4
y
i
y
y
i
-1
x
i
x
i
+1
Hnh 1.5
p
i+1
= p
i
+ 4x
i
+ 6 + 2.(y
2
i+1
- y
i
2
) - 2.(y
i+1
- y
i
) (4)
* Nhn xt:
Nu p
i
< 0: chn y
i+1
= y
i
(4) p
i+1
= p
i
+ 4x
i
+ 6
Nu p
i
> 0: chn y
i+1
= y
i
- 1 (4) p
i+1
= p
i
+ 4.(x
i
- y
i
) + 10
Ta chn im u tin cn v (0,R), theo (2) ta c: p1 = 3 - 2R
Tm li: Ta c thut ton v ng trn:
- Bc 1: Chn im u cn v (x1,y1) = (0,R)
- Bc 2: Tnh P u tin: p1 = 3 - 2R
Nu p < 0: chn im k tip l (x
i
+1,y
i
). Ngc li chn im (x
i
+ 1,y
i
- 1)
- Bc 3: x:=x + 1, tnh li p:
Nu p
i
< 0: p
i+1
= p
i
+ 4x
i
+ 6. Ngc li: p
i+1
= p
i
+ 4.(x
i
- y
i
) + 10
Khi :
Nu p
i+1
< 0: chn im k tip l (x
i
+1,y
i+1
). Ngc li chn im
(x
i
+1,y
i+1
-1)
- Bc 4: Lp li bc 3 cho n khi x = y.
2.2.2. Thut ton MidPoint
T phng trnh ng trn: x
2
+ y
2
= R
2
t F(x,y) = x
2
+ y
2
- R
2
,ta c:
< 0 nu (x,y) trong
ng trn
F(x,y) = 0 nu (x,y) trn ng
trn
> 0 nu (x,y)
ngoing trn
Lc ny, vic chn cc im S(x
i
+1,y
i
) hay P(x
i
+1,y
i
-1) c a v vic
xt du ca:
p
i
= F(M) = F(x
i
+ 1,y
i
-
2
1
) (Hnh
y
i
y
i
-1
x
i
x
i
+1
S
M
Q
P
Hnh
1.6
+00
1.6)
Nu p
i
< 0 M nm trong ng trn Q gn S hn Chn S
Nu p
i
> 0 M nm ngoi ng trn Q gn P hn Chn P
Mt khc:
p
i
= F(x
i
+ 1,y
i
-
2
1
)
p
i+1
= F(x
i+1
+ 1,y
i+1
-
2
1
)
nn
p
i+1
- p
i
= F(x
i+1
+ 1,y
i+1
-
2
1
) - F(x
i
+ 1,y
i
-
2
1
)
= [(x
i+1
+1)
2
+ (y
i+1
-
2
1
)
2
- R
2
] - [(x
i
+1)
2
+ (y
i
-
2
1
)
2
-
R
2
]
= [(x
i
+2)
2
+ (y
i+1
-
2
1
)
2
- R
2
] - [(x
i
+1)
2
+ (y
i
-
2
1
)
2
-
R
2
]
= 2x
i
+ 3 + (y
i+1
2
- y
i
2
) - (y
i+1
- y
i
)
Suy ra:
p
i+1
= p
i
+ 2x
i
+ 3 + (y
i+1
2
- y
i
2
) - (y
i+1
- y
i
)
(*)
*Nhn xt:
. Nu p
i
< 0: Chn im S : y
i+1
= y
i
T (*) p
i+1
= p
i
+ 2x
i
+
3
. Nu p
i
> 0: Chn im P: y
i+1
= y
i
- 1 T (*) p
i+1
= p
i
+ 2(x
i
- y
i
) + 5
Vi im u tin (0,R), ta c:
p
1
= F(x
1
+ 1,y
1
-
2
1
) = F(1,R -
2
1
) = 1 + (R -
2
1
)
2
- R
2
=
4
5
- R
2.3. Gii thut v elip
n gin, ta chn Ellipse c tm gc
ta . Phng trnh ca n c dng:
2
2
a
x
+
2
2
b
y
= 1
Ta c th vit li: y
2
= -
2
2
a
b
.x
2
+ b
2
(*)
* tng: Ging nh thut ton v ng trn. Ch c s khc bit y l ta
phi v 2 nhnh: Mt nhnh t tr n xung v mt nhnh t di ln v 2 nhnh
ny s gp nhau ti im m h s gc ca tip tuyn vi Ellipse = -1 (Hnh
1.7).
Phng trnh tip tuyn vi Ellipse ti im (x
0
,y
0
) e (E) :
x
0
.
2
a
x
+ y
0
.
2
b
y
= 1
Suy ra, h s gc ca tip tuyn ti im l : -
2
0
2
0
.
a y
b x
.
2.3.1. Thut ton Bresenham
y, ta ch xt nhnh v t tr n xung.
Gi s im (x
i
,y
i
) c v. im tip theo cn chn s l (x
i
+1,y
i
) hoc
(x
i
+1,y
i
-1)
Thay (x
i
+1) vo (*): y
2
= -
2
2
a
b
.(x
i
+1)
2
+ b
2
t:
d
1
= yi
2
- y
2
= y
i
2
+
2
2
a
b
.(x
i
+1)
2
-b
2
d
2
= y
2
- (y
i
-1)
2
= -
2
2
a
b
.(x
i
+1)
2
+ b
2
- (y
i
-1)
2
p
i
= d
1
- d
2
= 2.[
2
2
a
b
.(x
i
+1)
2
- b
2
] + 2.(y
i
2
+ y
i
) -1
Hnh
1.7
p
i+1
= 2.[
2
2
a
b
.(x
i+1
+1)
2
- b
2
] + 2.(y
i+1
2
+ y
i+1
) -1
Suy ra:
p
i+1
- p
i
= 2.
2
2
a
b
.[(x
i+1
+1)
2
- (x
i
+1)
2
] + 2.( y
i+1
2
- y
i
2
+ y
i+1
- y
i
)
(**)
*Nhn xt:
- p
i
< 0: Chn y
i+1
= y
i
(**) p
i+1
= p
i
+ 2.
2
2
a
b
.(2x + 3)
- p
i
> 0: Chn y
i+1
= y
i
-1
(**) p
i+1
= p
i
+ 2.
2
2
a
b
.(2x + 3) - 4y
i
Vi im u tin (0,b), ta c:
p
1
= 2
2
2
a
b
- 2b + 1
2.3.2. Thut ton MidPoint
Gi :
Phng trnh Ellipse:
2
2
a
x
+
2
2
b
y
= 1
Nhnh 1:
p
1
= b
2
- a
2
b +
4
1
.a
2
If p
i
< 0 Then p
i+1
= p
i
+ b
2
+ 2b
2
x
i+1
else p
i+1
= p
i
+ b
2
+ 2b
2
x
i+1
- 2a
2
y
i+1
Nhnh 2:
p
1
= b
2
(x
i
+
2
1
)
2
+ a
2
(y
i
- 1)
2
- a
2
b
2
If p
i
> 0 Then p
i+1
= p
i
+ a
2
- 2a
2
y
i+1
else p
i+1
= p
i
+ a
2
+ 2b
2
x
i+1
- 2a
2
y
i+1
CHNG 3. MU SC TRONG HO
3.1. Tng quan v cc h mu
Gic quan ca con ngi cm nhn c cc vt th xung quanh thng qua
cc tia sng mu tt hn rt nhiu so vi 2 mu trng en. V vy, vic xy dng
nn cc chun mu l mt trong nhng l thuyt c bn ca l thuyt ha.
Vic nghin cu v mu sc ngoi cc yu t v mt vt l nh bc sng,
cng , cn c 3 yu t khc lin quan n cm nhn sinh l ca mt ngi
di tc ng ca chm sng mu i n t vt th l: Hue (sc mu), Saturation
( bo ha), Lightness ( sng). Mt trong nhng h mu c s dng rng ri
u tin do A.H.Munsell a ra vo nm 1976, bao gm 3 yu t: Hue, Lightness
v Saturation.
Ba m hnh mu c s dng v pht trin nhiu trong cc phn cng l :
RGB - dng vi cc mn hnh CRT (Cathode ray bube), YIQ dng trong cc h
thng ti vi mu bng tn rng v CMY - s dng trong mt s thit b in mu.
Ngoi ra, cn c nhi u h mu khc nh: HSV, HSL, YIQ, HVC, ...
3.2.Gii thiu mt s h mu
3.2.1.H RGB (Red, Green, Blue)
Mt ca chng ta cm nhn ba mu r nht l Red (), Green (lc), Blue
(xanh). V vy, ngi ta xy dng m hnh mu RGB (Red,Green, Blue) l t p
tt c cc mu c xc nh thng qua ba mu va nu. Chun ny u tin c
xy dng cho cc h v tuyn truyn hnh v trong cc my vi tnh. Tt nhin,
khng phi l tt c cc mu u c th biu din qua ba mu ni trn nhng hu
ht cc mu u c th chuyn v c.
H ny c xem nh mt khi ba chiu vi mu Red l trc X, mu Green
l trc Y v mu Blue l trc Z. Mi mu trong h ny c xc nh theo ba
thnh phn RGB (Hnh 2.1).
Y
Z
X
Black
White
Blue Cyan
Yellow
Green
Red
Magenta
Hnh 2.1. H mu RGB
V d:
Mu Red l (1, 0, 0)
Mu Blue l (0, 0, 1)
Red + Green = Yellow
Red + Green + Blue = White
3.2.2. H CMY (Cyan, Magenta, Yellow)
H ny cng c xem nh mt khi ba chiu nh h RGB. Nhng h
CMY tri ngc vi h RGB, chng hn:
White c thnh phn (0, 0, 0)
Cyan c thnh phn (1, 0, 0)
Green c thnh phn (1, 0, 1) ...
Sau y l cng thc chuyn i t h RGB CMY :

B
G
R
Y
M
C
1
1
1
3.2.3. H YIQ
H mu ny c ng dng trong truyn hnh mu bng tn rng ti M, do
n c mi quan h cht ch vi mn hnh raster. YIQ l s thay i ca RGB
cho kh nng truyn pht v tnh tng thch vi ti vi en trng th h trc. Tn
hiu truyn s dng trong h thng NTSC (National Television System
Committee).
Sau y l cng thc bin i t h RGB thnh h YIQ:

B
G
R
Q
I
Y
*
311 . 0 523 . 0 212 . 0
321 . 0 275 . 0 596 . 0
114 . 0 587 . 0 299 . 0
Ma trn nghch o ca ma trn bin i RGB thnh h YIQ c s dng
cho php bin i t h YIQ thnh RGB.
3.2.4. H HSV (Hue, Saturation, Value)
M hnh mu ny cn c gi l h HSB vi B l Brightness ( sng)
da trn c s nn tng trc gic v tng mu, sc v sc thi m thut (Hnh
2.2).
Hue c gi tr t 0
0
360
0
S, V c gi tr t 0 1
Black
V
Cyan
0.0
Blue
1.0
Green
Red
H
White
S
Yellow
White
Hnh 2.2. H mu HSV
V d:
Red c biu din (0
0
, 1, 1)
Green c biu din (120
0
,1,1)
3.2.5. H HSL (Hue, Saturation, Lightness)
H ny c xc nh bi tp hp hnh chp su cnh i ca khng gian
hnh tr (hnh 2.3).
H
S
1.0 L
0.0
0.5
White
Red
Yellow Green
Cyan
Blue
Black
White
Hnh 2.3. H mu HSL
CHNG 4. CC GII THUT HO C BN
4.1.Cc gii thut xn hnh (Clipping)
Cho mt min D c R
n
v F l mt hnh trong R
n
(F c R
n
). Ta gi F D l
hnh c c t F bng cch xn vo trong D v k hiu l Clip
D
(F).
Bi ton t ra l xc nh Clip
D
(F).
4.1.1. Xn on thng vo ca s hnh ch nht
4.1.1.1. Cnh ca hnh ch nht song song vi cc trc ta
Lc ny:
D =
)
`

s s
s s
e
max min
max min
| ) , (
2
Y y Y
X x X
R y x
v F l on thng ni 2 im (x1,y1), (x2,y2) nn phng trnh ca F l:
x x x x t
y y y y t
= +
= +

1 2 1
1 2 1
( ).
( ).
t e [0,1]
Do , F c th c vit di dng:
F = {(x,y) e R
2
| x = x1 + (x2 -x1).t; y = y
1
+ (y2 -y1).t; 0 s t s 1}
Khi , giao im ca F v D chnh l
nghim ca h bt phng trnh (theo t):
Xmin x1+ (x2 - x1). t Xmax
Ymin 1+ (y2 - y1). t max
0 t 1
s s
s s
s s

y Y
Gi N l tp nghim ca h phng
trnh trn.
Nu N = C th Clip
D
(F) = C
Nu N = C th N = [t
1
, t
2
] (t
1
s t
2
)
Gi P, Q l 2 giao im xc nh bi:
xMin
xMax X
y
yMax
yMin
A
B
P
Q
Hnh
3.1
Px x x x t
Py y y y t
= +
= +

1 2 1 1
1 2 1 1
( ).
( ).
Qx x x x t
Qy y y y t
= +
= +

1 2 1 2
1 2 1 2
( ).
( ).
th: Clip
D
(F) = PQ (Hnh 3.1)
1. Thut ton Cohen - Sutherland
- Chia mt phng ra lm 9 vng, mi vng nh mt m nh phn 4 bit (hnh
3.2).
Bit 1: Qui nh vng nm bn tri ca s
Bit 2: Qui nh vng nm bn phi ca s
Bit 3: Qui nh vng nm bn di ca s
Bit 4: Qui nh vng nm bn trn ca s
- Xt im P e R
2
:
Pleft =

<
lai Ngac 0
min P nu
x
X 1
PRight =

>
lai Ngac 0
max P nu
x
X 1
PBelow =

<
lai Ngac 0
min P nu
y
Y 1
PAbove =

>
lai Ngac 0
max P nu
y
Y 1
- Xt on thng AB, ta c cc tr ng hp sau:
i/ Nu M(A) = M(B) = 0000 th AB e D Clip
D
(F) = AB
ii/ Nu M(A) AND M(B) = 0000 th on AB nm hon ton bn ngoi
hnh ch nht Clip
D
(F) =
100
0
000
0
101
0
001
0
011
0
010
0
010
1
000
1
100
1
Hnh
3.2
Ch : Php ton AND l php ton Logic gi a cc bit.
iii/ Nu (M(A) AND M(B) = 0000) v (M(A) = 0000 hoc M(B) = 0000)
th:
Gi s M(A) = 0000 : A nm ngoi hnh ch nht.
+ Nu Aleft = 1 : thay A bi im nm tr n on AB v ct cnh tri (ni
di) ca hnh ch nht.
+ Nu Aright = 1: thay A bi im nm tr n on AB ct cnh phi (ni di)
ca hnh ch nht.
+ Nu ABelow = 1: thay A bi im nm trn on AB v ct cnh di
(ni di) ca hnh ch nht.
+ Nu AAbove = 1: thay A bi im nm tr n on AB v ct cnh trn (ni
di) ca hnh ch nht.
Ch : Qu trnh ny c lp li: Sau mi ln lp, ta phi tnh li m ca A.
Nu cn, phi i vai tr ca A v B m bo A lun lun nm bn ngoi hnh
ch nht. Qu trnh s dng khi xy ra mt trong 2 tr ng hp: i/ hoc ii/
2. Thut ton chia nhphn
- tng ca thut ton ny tng t nh thut ton tm nghim bng phng
php chia nh phn.
- Mnh : Cho M: trung im ca on AB, M(A) 0000, M(B) 0000,
M(M) 0000 th ta c:
[M(A) AND M(M)] 0000
hoc [M(M) AND M(B)] 0000.
ngha hnh hc ca mnh : Nu c ba im A, B, M u ngoi hnh
ch nht th c t nht mt on hon ton nm ngoi hnh ch nht.
- Ta pht tho thut ton nh sau:
i/ Nu M(A) = 0000 v M(B) = 0000 th Clip
D
(F) = AB
ii/ Nu M(A) AND M(B) = 0000 th Clip
D
(F) =
iii/ Nu M(A) = 0000 v M(B) = 0000 th:
P:=A; Q:=B;
Trong khi |x
P
-x
Q
| + |y
P
- y
Q
| > 2 th:
+ Ly trung im M ca PQ;
+ Nu M(M) = 0000 th Q:= M.
Ngc li: P:= M.
Clip
D
(F) = AP
iv/ Nu M(A) = 0000 v M(B) = 0000 th: i vai tr ca A, B v p dng
ii/
v/ Nu M(A) = 0000 = M(B) v [M(A) AND M(B)]= 0000 t h:
P:=A; Q:=B;
Ly M: trung im PQ;
Trong khi M(M) = 0000 v |x
P
- x
Q
| + |y
P
- y
Q
| > 2 th:
+ Nu M(M) AND M(Q) = 0000 th Q:=M. Ngc li P:=M.
+ Ly M: trung im PQ.
Nu M(M) = 0000 th Clip
D
(F) = . Ngc li, p dng ii/ ta c:
Clip
D
(MA) = MA
1
Clip
D
(MB) = MB
1
Suy ra: Clip
D
(F) = A
1
B
1
3. Thut ton Liang- Barsky
t Ax = x2 - x1 Ay = y2 - y1
p1 = - Ax q1 = x1 - xMin
p2 = Ax q2 = xMax - x1
p3 = - Ay q3 = y1 - yMin
p4 = Ay q4 = yMax - y1
th h bt phng trnh giao im ca F v D c th vit li:

s s
= s 1..4 k , Q .t P
k k
1 0 t
Xt cc trng hp sau:
i/ -k: Pk = 0 v Qk < 0: ( ng thng song song vi cc bi n v nm ngoi
vng hnh ch nht )
Clip
D
(F) =
ii/ k e {1,2,3,4}: Pk = 0 hoc Qk > 0:
t K
1
= {k | Pk > 0 }
K
2
= {k | Pk < 0 }
u
1
= Max({
k
k
P
Q
| k e K
2
} {0})
u
2
= Min({
k
k
P
Q
| k e K
1
} {1})
Nu u
1
> u
2
th Clip
D
(F) =
Ngc li: Gi P, Q l 2 im tha

A + =
A + =
1
1
1
1
u y y Py
u x x Px
.
.
v

A + =
A + =
2
2
1
1
u y y Qy
u x x Qx
.
.
th Clip
D
(F) = PQ
4.1.1.2. Khi cnh ca vng hnh ch nht to vi trc honh mt gc
(0,/2)
Ta dng php quay trc ta a bi ton v trng hp cc cnh ca
hnh ch nht song song vi cc trc ta (h nh
3.3).
Gi R l ma trn quay ca php i trc, ta
c:
X
Y
min
min

'

|
= R.
X
Y
min
min

'

|
X
Y
max
max

'

|
= R.
X
Y
max
max

'

|
vi R =
cos( ) sin( )
sin( ) cos( )

'

|
4.1.2. Xn on thng vo hnh trn
Gi s ta c ng trn tm O(xc,yc) bn knh R v on thng cn xn l
AB vi A(x1,y1), B(x2,y2) (Hnh 3.4).
* Thut ton:
- Tnh d(O,AB)
- Xt cc trng hp:
i/ Nu d > R th Clip
D
(F) =
ii/ Nu d = R th Clip
D
(F) = A
0
vi A
0
l
chn ng vung gc h t O xung AB.
iii/ Nu d < R th xt cc trng hp sau:
+ (OA < R) AND (OB < R) th ClipD(F) = AB
o
x
O
y
Hnh 3.3
A
B
Hnh 3.4
+ Nu mt im nm trong v im kia nm ngoi hnh trn, chng
hn OA<R v OB>R th Clip
D
(F) = AI vi I l giao im duy nht
gia AB v ng trn.
+ (OA > R) AND (OB > R) th ClipD(F) = IJ v i I, J l hai giao im
ca AB vi ng trn.
Sau y l phng php t m giao im gia on thng v ng trn:
^ Phng trnh ng trn: (x - xc)
2
+ (y - yc)
2
= R
2
(1)
^ Phng trnh on AB:

s s
+ =
+ =
1 0
). 1 2 ( 1
). 1 2 ( 1

y y y y
x x x x
(2)
^ Thay (2) vo (1) ta suy ra: =
b
bc a a
2
Trong :
a = Ax.(x1 - x
c
) + Ay.(y1 - yc)
b = (Ax)
2
+ (Ay)
2
c = (x1 - x
c
)
2
+ (y1 - yc)
2
- R
2
Ax = x2 - x1
Ay = y2 - y1
^ Da vo iu kin 0 s s 1 chn giao im.
4.1.3. Xn ng trn vo hnh ch nht c cc cnh song song vi cc trc
to
Lc ny:
D = {(x,y)| xMin s x s xMax ; yMin s y s
yMax }
Hnh
3.5
F = { (x,y)| (x - x
C
)
2
+ (y - y
C
)
2
= R
2
}
*Trc ht, ta kim tra cc tr ng hp c bit sau:
i/ Nu xMin s x
C
-R; x
C
+R s xMax;
yMin s y
C
-R; y
C
+R s yMax;
th Clip
D
(F) = F (Hnh 3.5)
ii/ Nu x
C
+R < xMin
hoc x
C
-R > xMax
hoc y
C
+R < yMin
hoc y
C
- R > yMax
th Clip
D
(F) = (Hnh 3.6)
*Xt trng hp cn li: Tm cc giao im ca F v D. Sp xp cc giao
im theo chiu ngc kim ng h.
- Cc cung trn c to bi 2 giao im li n tip s hon ton nm trong
D hoc hon ton nm bn ngoi D.
- xc nh cc cung ny nm trong hay ngoi D, ta ch cn ly trung
im M ca cung . Nu M e D th cung nm trong D, ngc li th
n nm ngoi D.
Hnh
3.6
4.1.5. Xn a gic vo hnh ch nht
Hnh 3.7. Xn a gic vo hnh ch nht
Thut ton SutherLand - Hodgman
i/ Nu tt c cc nh ca a gic u nm trong h nh ch nht th hnh cn
xn chnh l a gic v bi ton coi nh c gii quyt.
Hnh 3.8. Cc trng hp cn xt
ii/ Trng hp ngc li:
- Xut pht t mt nh nm ngoi hnh ch nht, ta chy theo dc bi n ca
a gic. Vi mi cnh ca a gic, ta c cc tr ng hp sau:
Nu c hai nh u nm ngoi hnh ch nht th:
Nu Ma(A
i
) and Ma(A
i+1
) = 0000 th khng lu nh
Ngc li th lu hai giao im.
Ai ngoi, A
i+1
trong: lu giao im P v A
i+1
.
Ai
Ai
+
1
Ai
+
1
Ai
Ai
Ai
+
1
Ai
+
1
Ai
Ai
Ai
+
1
C hai nh u nm trong hnh ch nht: lu A
i
v A
i+1
.
A
i
trong, A
i+1
ngoi: lu A
i
v giao im P.
- Sau khi duyt qua tt c cc cnh ca a gic t h ta c c mt dy cc
nh mi pht sinh: B
1
, B
2
, ..., B
n
Nu trong dy cc nh mi ny c hai nh lin tip khng nm trn cng
mt cnh ca hnh ch nht , gi s hai nh l B
i
v B
i+1
th ta i dc cc cnh
ca hnh ch nht t B
i
n B
i+1
tm tt c cc nh ca hnh ch nht nm
trong a gic ri b sung chng vo gia B
i
v B
j
.
Tp nh mi tm c chnh l a gic xn c.
- Nu tp nh mi ny l rng: Nu c mt nh ca hnh ch nht nm
trong a gic th hnh xn c chnh l ton b hnh ch nht. Ngc li, hnh
xn c l rng.
4.2. Cc gii thut t mu min kn
4.2.1. Bi ton
Cho a gic S xc nh bi n nh : P
1
,
P
2
, ..., P
n
. Hy t mu min S.
* Phng php tng qut :
- Tm hnh ch nht W nh nht cha S
(hnh 2.4).
- Duyt qua tt c cc im P(x, y) e
W. Nu P e S th t mu im P.
4.2.2 Thut ton xc nh P S
4.2.2.1. S l a gic li
- Ly P e W, ni P vi cc nh ca S th ta c n tam gic : S
i
= PP
i
P
i+1
,
vi P
n+1
=P
1.
S
W
P
2
P
3
P
4
P
5
P
1
Hnh
2.4
- Nu
_
=
n
1
i
) dt(S
i
= dt(S) th P e S.
Ta c cng thc tnh din tch ca S:
S= _
=
+ +

n
i
i i i i
y x y x
1
1 1
| ) ( |
2
1
4.2.2.2. Trng hp tng qut (Thut ton J ordan)
Ly P(x, y) e W, k na ng thng AP xut pht t P v khng i qua
cc nh ca a gic S.
Gi S(P) l s giao im ca AP vi cc bin ca S.
Nu S(P) l th P e S.
* Vn cn li l tm S(P):
Bc 1: K na ng thng AP // 0y v hng v pha y>0.
Bc 2: Vi mi cnh C
i
= P
i
P
i+1
ca S:
+ Nu x=x
i
th xt 2 cnh c 1 u l P
i
:
Nu y<y
i
th
- Nu c 2 u kia cng mt pha ca AP th ta tnh AP ct c 2 cnh.
- Ngc li : AP ct 1 cnh.
+ Ngc li:
- Nu x>Max(x
i
,x
i+1
) hoc x<Min(x
i
,x
i+1
) th AP khng ct Ci
- Ngc li:
-Nu y<= Min(y
i
, y
i+1
) th AP ct C
i
-Ngc li :
Xt ta giao im (x0, y0) ca AP vi C
i
Nu y >= y
0
th AP khng ct C
i
. Ngc li AP
ct C
i
.
Thut ton ny c th c ci t bng on chng trnh nh sau:
4.2.3 Thut ton t mu theo dng qut (Scanline)
t x
0
= Min(x
i
), ie [1,n].
Bc 1: K Dy//0y i qua x
0
(hnh 2.5).
Bc 2: Xc nh cc giao im M
i-
(x,y) ca Dy vi cc cnh C
i
.
Nu c cnh C
i
= P
i
P
i+1
song
song v trng vi Dy th xem nh Dy
ct Ci ti 2 im P
i
v P
i+1
.
Bc 3: Sp xp li cc im M
i
theo
th t tng dn i vi y
i
(im u
tin c th t l 1).
Bc 4: Nhng im nm trn Dy gia giao im l v giao im chn lin
tip l nhng im nm trong a gic v nhng im ny s c t.
Bc 5: Tng x
0
ln mt Pixel. Nu x
0
s Max(x
i
) th quay li bc 1.
4.2.4.Thut ton t mu theo vt du loang
Ly P(x,y) e S, t mu P.
Xt cc im ln cn ca P (Hnh 2.6).
Nu cc im ln cn vn c n thuc S v
cha c t mu th t mu cc im ln cn ...
x
0
xi
x
Dy
y
Hnh
2.5
O
X
X
X
X
O
Hnh 2.6
CHNG 5. CC PHP BIN I TRONG KHNG GIAN 2 CHI U V
3 CHIU
5.1. Cc php bin i hnh hc 2D
5.1.1. C s ton hc
Php bin i Affine 2D s bin im P(x,y) thnh im Q(x,y) theo h
phng trnh sau:
x = Ax + Cy + trx
y = Bx + Dy + try
Di dng ma trn, h ny c dng:
(x y) = (x y).
|
|

'

D C
B A
+ (trx try)
Hay vit gn hn: X = X.M + tr
vi X=(x,y); X=(x,y); tr=(trx,try) - vector tnh tin;
M =
|
|

'

D C
B A
- ma trn bin i.

'

|
1 0
0 1
i xng qua Oy
1 0
0 1

'

|
i xng qua Ox

'

|
1 0
0 1
i xng qua gc ta
5.1.2. Mt s php bin i c bn
1.Php quay
Ma trn tng qut ca php quay l R =
|
|

'

) ( ) (
) ( ) (


Cos Sin
Sin Cos
|
|

'

1
1
h
g
Ch :
- Tm ca php quay c xt y l gc ta .
- nh thc ca ma trn php quay lun lun bng 1.
2. Php tnh tin
Bin i (x,y) thnh (x,y) theo cng thc sau
x = x + M
y = y + N
thun tin biu din di dng ma trn, ta c th biu din cc ta
di dng ta thun nht (Homogen):
(x y 1).
1 0 0
0 1 0
1 M N

'

|
|
|
= (x + M y + N 1)
3. Php bin dng
Ma trn tng qut l: M =
Trong :
g = 0: bin dng theo trc x.
h = 0: bin dng theo trc y.
5.1.3. Hp ca cc php bin i
C ma trn bin i l tch ca cc ma trn ca cc php bin i.
V d: Php quay quanh mt im bt k trong mt phng c th thc hin
bi tch ca cc php bin i sau:
Php tnh tin tm quay n gc ta .
Php quay vi gc cho.
Php tnh tin kt qu v tm quay ban u.
Nh vy, ma trn ca php quay quanh mt im bt k c thc hin bi
tch ca ba php bin i sau:
1 0 0
0 1 0
1

'

|
|
|
M N
.
Cos Sin
Sin Cos
( ) ( )
( ) ( )


0
0
0 0 1

'

|
|
|
.
1 0 0
0 1 0
1 M N

'

|
|
|
5.2Cc php bin i 3D
5.2.1. Cc h trc ta
nh v mt im trong khng gian, ta c th chn nhiu h trc ta :
X
Y
Z
O
Y
Z
H trc tip
H gin tip
Hnh 5.1
- H ta trc tip : nu tay phi cm trc Z sao cho ngn ci h ng
theo chiu dng ca trc Z th bn ngn cn li s quay t trc X sang trc Y
(Qui tc bn tay phi).
- H ta gin tip : ngc li (Qui tc bn tay tri).
Thng thng, ta lun lun nh v mt im trong khng gian qua h trc tip.
Trong h ta trc tip, ta chia ra l m 2 loi sau:
O
X
Y
Z
P(x,y,z)
X
O
Y
P(R,0,|)
Z
0
|
R
H ta Descarter
H cu
Hnh 5.2
Ta c cng thc chuyn i ta t h ny sang h khc:
x = R.Cos().Cos()
y = R.Sin().Cos()
z = R.Sin()
R
2
= x
2
+ y
2
+ z
2
thun tin cho vic tnh ton, tt c cc im trong khng gian u c
m t di dng ma trn 1x4, tc l (x,y,z,1). V vy, tt c cc php bin i
trong khng gian u c biu din bi cc ma trn vung 4x4 (Ma trn
Homogen).
5.2.2. Cc cng thc bin i
Php bin i Affine 3D c dng: X=X.M + tr
vi X=(x,y,z); X=(x,y,z); M - ma trn bin i;
tr=(trx,try,trz) - vector tnh tin
5.2.2.1. Php thay i t l
M =
A
B
C
0 0 0
0 0 0
0 0 0
0 0 0 1

'

|
|
|
|
:
x A x
y B y
z C z
' .
' .
' .
=
=
=

5.2.2.2. Php i xng


Mz =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

'

|
|
|
|
i xng qua mt (XY)
My=
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

'

|
|
|
|
i xng qua mt (XZ)
Mx =

'

|
|
|
|
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
i xng qua mt (YZ)
5.2.2.3. Php tnh tin
M =
1 0 0 0
0 1 0 0
0 0 1 0
1 M N P

'

|
|
|
|
:
x x M
y y N
z z P
'
'
'
= +
= +
= +

5.2.2.4. Php quay


Ta nhn thy rng, nu php quay quay quanh mt trc n o th ta
ca vt th ti trc s khng thay i. Do , ta c ma trn ca cc php quay
nh sau:
RZ =
|
|
|
|
|

'

1 0 0 0
0 1 0 0
0 0 ) ( ) (
0 0 ) ( ) (


Cos Sin
Sin Cos
RX =
|
|
|
|
|

'

1 0 0 0
0 ) ( ) ( 0
0 ) ( ) ( 0
0 0 0 1


Cos Sin
Sin Cos
RY =
|
|
|
|
|

'

1 0 0 0
0 ) ( 0 ) (
0 0 1 0
0 ) ( 0 ) (


Cos Sin
Sin Cos
Ch : Tch ca 2 ma trn ni chung khng giao hon n n kt qu ca 2 php quay
lin tip ty thuc vo th t thc hin tch s.
V d: R
X
.R
Y
= R
Y
.R
X
5.3. Cc php chiu
5.3.1. Php chiu phi cnh (Perspective)
Php chiu ny cho hnh nh ging nh khi nhn vt th.
tm hnh chiu P(y,z) ca P(x,y,z), ta ni P vi mt (tm chiu). Giao
im ca ng ny vi mt quan st chnh l P (hnh 4.3).
Gi s P nm pha trc mt, tc l P.x < E.
Y
Z
X
(E,0,0)
M at
y '
z '
P '
P(x,y,z)
M at p h an g ch i e u
Hnh 4.3
Phng trnh ca tia i qua mt v P l: r(t) = (E,0,0).(1-t) + (x,y,z).t
(*)
Giao im vi mt phng quan st c thnh phn x = 0.
Do thnh phn x ca tia r l E.(1-t) + x.t = 0 nn t =
1
1 x E /
. Thay t vo
(*) ta tnh c:
y =
y
x E 1 /
va z =
z
x E 1 /
NHN XT
i/ Php chiu phi cnh khng gi nguyn hnh dng ca vt th.
ii/ Ch c nhng ng thng song song vi mt phng chiu th mi song
song vi nhau.
iii/ Php chiu phi cnh c qui nh bi 5 bin:
- Hng ca mt phng chiu so vi vt th.
- cao ca tm chiu so vi vt th.
- Khong cch t tm chiu n vt th (R).
- Khong cch t mt phng chiu n tm chiu (D).
- dch chuyn ngang ca tm chiu so vi vt th.
Ch : Vi ta cu, ta ch cn 4 tham s: R, , , D.
5.3.2. Php chiu song song (Parallel)
Php chiu ny c tm chiu v cc v y=y, z=z.(Hnh 4.4)
Tnh song song c bo ton.
M at phang chi eu
Tam chi eu ()
A
B
A'
B'
Hnh 5.4
5.3.3. Cng thc ca cc php chiu l n mn hnh
Khi quan st mt vt th trong khng gian di mt gc no , ta c 2 kh
nng chn la:
- im nhn (mn hnh) ng yn v vt th di ng.
- Vt th ng yn v im nhn s c b tr thch hp.
Ta thng chn gii php th hai v n st vi thc t hn.
X
|
O
0
Z0
Y0
Z
Y
O'
X0
M an hnh
YE XE
Hnh 5.5
Khi quan st mt vt th bt k trong khng gi an, ta phi tun th cc nguyn
tc sau (hnh 4.5):
- Vt th phi c chiu ln mt h trc tip (O,X,Y,Z).
- Con mt phi nm gc ca mt h gin tip th hai (O,X
0
,Y
0
,Z
0
)
- Mn hnh l mt phng vung gc vi ng thng OO.
- Trc Z
0
ca h quan st ch n gc O.
Nu dng h ta cu nh v mt ca ngi quan st th ta d dng thay
i gc ngm bng cch thay i gc v .
By gi, ta kho st php bin i m vt th (X,Y,Z) phi chu cho n
trng vi h quan st (X
0
,Y
0
,Z
0
) cui cng to ra h ta mn hnh (Xe,Ye).
Bc 1: Tnh tin gc O thnh O (hnh 4.6).
X
0
O
|
Y
Z
Z1
X1
Y1
O'
Hnh 5.6
Ma trn ca php tnh tin (Ly nghch o):
A=
1 0 0 0
0 1 0 0
0 0 1 0
1

'

|
|
|
|
M N P
=
1 0 0 0
0 1 0 0
0 0 1 0
1

'

|
|
|
|
R Cos Cos R Sin Cos R Sin . ( ). ( ) . ( ). ( ) . ( )
v h (X,Y,Z) bin i thnh h (X1,Y1,Z1).
Bc 2: Quay h (X1,Y1,Z1) mt gc - (=90
0
- ) quanh trc Z1 theo
chiu kim ng h. Php quay ny lm cho trc m ca Y1 ct trc Z (hnh 4.7).
Ta gi Rz l ma trn tng qut ca php quay quanh trc Z. V y l php
quay h trc nn phi dng ma trn nghch o R
-1
z
.
Rz =
Cos a Sin a
Sin a Cos a
( ) ( )
( ) ( )
0 0
0 0
0 0 1 0
0 0 0 1

'

|
|
|
|
R
-1
z
=
Cos a Sin a
Sin a Cos a
( ) ( )
( ) ( )

'

|
|
|
|
0 0
0 0
0 0 1 0
0 0 0 1
ta thay gc a = - . Theo cc php ton lng gic:
Sin(-') = -Sin(') = -Sin(90
0
- ) = -Cos()
Cos(-') = Cos(') = Cos(90
0
-) = Sin()
0
X2
O'
|
O
Y
Y2
Z2
Z
X
0'
Hnh 5.7
Nn ma trn ca php quay tm c s c dng:
B =
Sin Cos
Cos Sin
( ) ( )
( ) ( )


0 0
0 0
0 0 1 0
0 0 0 1

'

|
|
|
|
v h (X1,Y1,Z1) bin i thnh h
(X2,Y2,Z2).
Bc 3: Quay h (X2,Y2,Z2) mt gc 90
0
+ quanh trc X2. Php bin i
ny s lm cho trc Z2 hng n gc O (hnh 5.8).
Ta c:
Rx =
|
|
|
|
|

'

1 0 0 0
0 ) ( ) ( 0
0 ) ( ) ( 0
0 0 0 1
a Cos a Sin
a Sin a Cos
X3
Z3
0
X
O
Z
O'
|
0'
Y
Y3
Hnh 5.8
R
-1
x
=
1 0 0 0
0 0
0 0
0 0 0 1
Cos a Sin a
Sin a Cos a
( ) ( )
( ) ( )

'

|
|
|
|
Thay gc a = 90
0
+ , ta c: Cos(90
0
+ ) = -Sin() v Sin(90
0
+ ) =
Cos() nn ma trn tm c s c dng:
C =
1 0 0 0
0 0
0 0
0 0 0 1

'

|
|
|
|
Sin Cos
Cos Sin
( ) ( )
( ) ( )


Lc ny, h (X2,Y2,Z2) bin i thnh h (X3,Y2,Z3).
Bc 4: Bin i h trc tip (X3,Y3,Z3) thnh h gin tip (hnh 4.9).
Trong bc ny, ta phi i hng trc X3 bng cch i du cc phn t
ca ct X. Ta nhn c ma trn:
D =

'

|
|
|
|
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
v h (X3,Y3,Z3) bin i thnh h (X
0
,Y
0
,Z
0
).
O
X
0
Z0
O'
|
X0
0'
Y0
Y
Z
Hnh 5.9
Tng kt
Cc im trong khng gian s nhn trong h quan st mt ta c dng:
(x
0
,y
0
,z
0
,1) = (x y z 1).A.B.C.D
Gi T = A.B.C.D, ta tnh c:
T =

'

|
|
|
|
sin( ) ( ). ( ) ( ). ( )
( ) ( ). ( ) ( ). ( )
( ) ( )



Cos Sin Cos Cos
Cos Sin Sin Sin Cos
Cos Sin
R
0
0
0 0
0 0 1
Cui cng ta c:
(x
0
,y
0
,z
0
,1) = (x y z 1).T
hay:
x
0
= -x.Sin(0) + y.Cos(0)
y
0
= -x.Cos(0).Sin(u) - y.Sin(0).Sin(u) + z.Cos(u)
z
0
= -x.Cos(0).Cos(u) - y.Sin(0).Cos(u) - z.Sin(u) + R
* By gi ta chiu nh ca h quan st l n mn hnh.
1. Php chiu phi cnh
Cho im P(x,y,z) v hnh chiu P(x0,y0,z0) ca n tr n mt phng.
Gi D l khong cnh t mt phng n mt (gc ta ). (Hnh 4.10)
O
X0
Z0
Y0
P(x0,y0,z0)
P'(xE,yE,zE)
M an hnh
Z0
Y0
M an hnh
O
O
P(x0,y0,z0)
P(x0,y0,z0)
D
yE
X0
xE
Hnh 5.10
Xt cc tam gic ng dng, ta c:
xE/D = x
0
/z
0
v yE/D = y
0
/z
0
x
E
= D.x
0
/z
0
v y
E
= D.y
0
/z
0
Ch : z
0
bao hm vic phng to hay thu nh vt th.
2. Php chiu song song
Ta quan st (x
0
,y
0
,z
0
) v ta mn hnh tha mn cng thc:
x
E
= x
0
v y
E
= y
0
M at
M an hnh
M an hnh
Phong to Thu nho
Vat the
Hnh 5.11
CHNG 6. M HNH MT CONG V NG CONG
6.1. NG CONG BEZIER V MT BEZIER
6.1.1. Thut ton Casteljau
xy dng ng cong p(t), ta da tr n mt dy cc im cho trc ri to ra
gi tr p(t) ng vi mi gi t r t no . Vic thay i cc im ny s lm thay i
dng ca ng cong. Phng php ny to ra ng cong da trn mt dy cc
bc ni suy tuyn tnh hay ni suy khong gia (In-Betweening).
V d: Vi 3 im P
0
, P
1
, P
2
ta c th xy dng mt Parabol ni suy t 3 im
ny bng cch chn mt gi tr t e [0, 1] no ri chia on P
0
P
1
theo t l t, ta
c im P
0
1
trn P
0
P
1
. Tng t, ta chia tip P
1
P
2
cng theo t l t, ta c P
1
1
.
Ni P
0
1
v P
1
1
, li ly im trn P
0
1
P
1
1
chia theo t l t, ta c P
0
2
.
Vi cch lm ny, ta s ly nhng gi tr t khc e [0, 1] th s c tp im
P
0
2
. chnh l ng cong p(t).
Ta biu din bng phng trnh:
P
0
1
(t) = (1-t).P
0
+ t.P
1
(1)
P
1
1
(t) = (1-t).P
1
+ t.P
2
(2)
P
0
2
(t) = (1-t).P
0
1
+ t.P
1
1
(3)
Thay (1), (2) vo (3) ta c:
P(t) = P
0
2
(t) = (1-t)
2
.P
0
+ 2t.(1-t).P
1
+ t
2
.P
2
y l mt ng cong bc 2 theo t nn n l mt Parabol.
Tng qut ha ta c thut ton Casteljau cho (L+1) im:
Gi s ta c tp im: P
0
, P
1
, P
2
, ..., P
L
Vi mi gi tr t cho tr c, ta to ra im P
i
r
(t) th h th r, t th h th (r -
1) trc , ta c:
P
i
r
(t) = (1-t).P
i
r-1
(t) + t.P
i+1
r-1
(t) (3)
r = 0,1,...,L v i = 0,...,L-r
Th h cui cng P
0
L
(t) c gi l ng cong Bezier ca cc im P
0
,P
1
,P
2
,...,P
L
Cc im P
i
, i=0,1,...,L c gi l cc im kim sot hay cc im Bezier.
a gic to bi cc im kim sot ny gi l a gic kim sot hay a gic
Bezier.
6.1.2. Dng Bernstein ca cc ng cong Bezier
ng cong Bezier da tr n (L+1) im kim sot P
0
,P
1
, ...,P
L
c cho bi
cng thc:
P(t) =
k
L
=
_
0
P
k
.B
k
L
(t)
Trong , P(t) l mt im trong mt phng hoc trong khng gian.
B
k
L
(t) c gi l a thc Bernstein, c cho bi cng thc:
B
k
L
(t) =
L
k L k
!
!( )!
(1-t)
L-k
.t
k
vi L > k
Mi a thc Bernstein c bc l L. Thng thng ta cn gi cc B
k
L
(t) l cc
hm trn (blending function).
Tng t, i vi mt Bezier ta c phng trnh sau:
P(u,v) =
i
M
=
_
0 i
L
=
_
0
P
i,k
.B
i
M
(u).B
k
L
(v)
Trong trng hp ny, khi a din kim sot s c (M+1).(L+1) nh.
6.1.3. Dng biu din ma trn ca ng Bezier
thch hp cho vic x l tr n my tnh, ta biu din hai mng BL(t) v P nh
sau:
P
1
1
P
1
P
0
1
P
1
P
0
2
P
2
B
L
(t) = (B
0
L
(t), B
1
L
(t), ..., B
L
L
(t))
P = (P
0
,P
1
, ...,P
L
)
Do : P(t) = B
L
(t).P (tch v hng)
hay P(t) = B
L
(t).P
T
(P
T
l dng chuyn v ca P)
Di dng a thc, c th biu din B
k
L
(t) nh sau:
B
k
L
(t) = a
0
+ a
1
.t + a
2
.t
2
+ ... + a
L
.t
L
= (t
0
,t
1
,...,t
L
).(a
0
,a
1
,...,a
L
)
Do P(t) c th biu din li nh sau:
P(t) = Pow
L
(t).Bez
L
.P
T
Vi:
- Pow
L
(t) = (t
0
,t
1
,...,t
L
)
- Bez
L
l ma trn biu din mng B
L
(t) trong mi hng i ca ma trn ng
vi cc h s tng ng (a
0
,a
1
,...,a
L
) ca a thc B
i
L
(t) v ti v tr (i,j) trong ma
trn Bez
L
c gi tr Bez
L
(i,j) = (-1)
j-i
.C
n
i
.C
i
j
V d: Ma trn Bez
3
cho cc ng Bezier bc 3
Bez
3
=
1 0 0 0
3 3 0 0
3 6 3 0
1 3 3 1

'

|
|
|
|
6.1.4. To v v cc ng Bezier
to ra mt ng cong Bezier t mt dy cc im kim sot ta s p dng
phng php ly mu hm p(t) cc gi tr cch u nhau ca tham s t, v d c
th ly ti = i/N, i=0,1,...,N. Khi ta s c cc im P(t
i
) t cng thc Bezier.
Ni cc im ny bng cc on thng ta s c ng cong Bezier gn ng.
tnh P(t
i
) ta c th p dng ma trn ca P(t) tr n trong ch c thnh phn
Pow
L
(t
i
) l thay i, cn tch Bez
L
.P
T
vi P = (P
0
,P
1
, ...,P
L
) l khng thay i.
6.1.5. Cc tnh cht ca ng cong Bezier
i/ Ni suy c cc im u v cui.
Chng minh:
Ta c: P(t) =
k
L
=
_
0
P
k
.B
k
L
(t)
Do P(0) =
k
L
=
_
0
P
k
.B
k
L
(0)
trong : B
k
L
(0) =
L
k L k
!
!( )!
(1-0)
L-k
.0
k
k = 0 v k = L
=
L
k L k
!
!( )!
.0 = 0
V vy, P(0) = P
0
.B
0
L
(0) + P
L
.B
L
L
(0)
= P
0
+ 0
= P
0
L lun tng t cho P(1). Ta c P(1) = P
L
.
ii/ Tnh bt bin Affine:
Khi bin i mt ng cong Bezier, ta khng cn bin i mi im trn
ng cong mt cch ri ng r m ch cn bin i cc im kim sot ca ng
cong ri s dng cng thc Bernstein ti to li ng cong Bezier c
bin i.
Chng minh:
Gi s im P(t) bin i Affine thnh P(t)
P(t) = P(t).N + tr =
k
L
=
_
0
P
k
.B
k
L
(t).N + tr
Trong :
N: ma trn bin i.
tr: vector tnh tin.
Xt ng cong
k
L
=
_
0
(P
k
.N + tr).B
k
L
(t) (*)
c to ra bng cch bin i Affine cc vector P
k
. Ta s chng minh ng
cong ny chnh l P(t).
Khai trin (*) ta c:
k
L
=
_
0
P
k
.N.B
k
L
(t) +
k
L
=
_
0
tr.B
k
L
(t)
=
k
L
=
_
0
P
k
.N.B
k
L
(t) + tr.
k
L
=
_
0
B
k
L
(t)
(**)
Nhng theo a thc Bernstein th
k
L
=
_
0
B
k
L
(t) = (1-t+t)
L
= 1 nn s hng th
hai ca (**) s l tr.
V vy, P(t) nm trn ng cong Bezier to ra bi cc im kim sot P
k
.
iii/ Tnh cht ca bao li: ng cong Bezier P(t) khng bao gi i ra ngoi
bao li ca n.
y, bao li ca cc im kim sot l tp nh nh nht cha tt c cc im
kim sot .
Chng minh:
Bao li ca cc im kim sot cng chnh l tp hp cc t hp l i ca cc
im kim sot.
Ta biu din t hp tuyn tnh ca cc im Pk:
P(t) =
k
L
=
_
0
a
k
.P
k
, a
k
> 0
Do P(t) l t hp li ca cc im kim sot t e [0,1] v
k
L
=
_
0
B
k
L
(t) = 1
Nn ng cong Bezier s nm trong bao li ca cc im kim sot.
iv/ chnh xc tuyn tnh:
ng cong Bezier c th tr thnh mt ng thng khi tt c cc im
kim sot nm trn mt ng thng v khi bao li ca chng l mt ng
thng nn ng Bezier b kp vo bn trong bao li nn n cng tr thnh ng
thng.
v/ Bt k mt ng thng hay mt phng no cng lun lun ct ng cong
Bezier t ln hn so vi ct a gic kim sot.
vi/ o hm ca cc ng Bezier:
Ta c: (P(t)) = L.
k
L
=

_
0
1
AP
k
.B
k
L-1
(t) , AP
k
= P
k+1
- P
k
Do , o hm ca ng cong Bezier l mt ng cong Bezier khc
c to ra t cc vector kim sot AP
k
( Ta ch cn ly cc im kim sot
gc theo tng cp to ra cc im kim sot cho (P(t)).
6.1.6. nh gi cc ng cong Bezier
Bng cc im kim sot, ta c th to ra cc dng ng cong khc nhau bng
cch hiu chnh cc im kim sot cho ti khi to ra c mt dng ng cong
mong mun. Cng vic ny lp i lp li cho n khi ton b ng cong tha yu
cu.
Tuy nhin, khi ta thay i bt k mt im kim sot no th ton b ng
cong b thay i theo. Nhng trong thc t, ta thng mong mun ch thay i mt
t v dng ng cong gn khu vc ang hiu chnh cc im kim sot.
Tnh cc b yu ca ng cong Bezier c biu hin qua cc a thc B
k
L
(t)
u khc 0 trn ton khong [0,1]. Mt khc ng cong p(t) li l mt t hp
tuyn tnh ca cc im kim sot c gia trng bi cc hm B
k
L
(t) nn ta kt
lun rng mi im kim sot c nh hng n ng cong tt c cc gi tr t e
[0,1]. Do , hiu chnh bt k mt im kim sot no cng s nh hng n
dng ca ton th ng cong.
gii quyt bi ton ny, ta s dng mt tp hp cc hm trn khc nhau. Cc
hm trn ny c gi mang (support: khong m trn hm ly gi tr khc 0) ch
l mt phn ca khong [0,1]. Ngoi gi mang ny chng c gi tr l 0.
Thng ta chn cc hm trn l cc a thc trn cc gi mang , cc gi mang
ny k nhau. Nh vy, cc hm trn chnh l mt tp cc a thc c nh ngha
trn nhng khong k nhau c ni li vi nhau to nn mt ng cong lin
tc. Cc ng cong kt qu c gi l a thc ring phn hay tng phn
(piecewise polynomial).
V d: ta nh ngha hm g(t) gm 3 a thc a(t), b(t), c(t) nh sau:
g(t) =

[2,3] mang gia co t) - (3


2
1
= c(t)
[1,2] mang gia co )
2
3
- (t -
4
3
= b(t)
[0,1] mang gia co t
2
1
= a(t)
2
2
2
Gi mang ca g(t) l [0,3]
Cc gi tr ca t ng vi cc ch ni ca cc on gi l nt (knut), chng hn
t=0,1,2,3 l bn nt ca g(t). Hn na, ti cc ch ni ca ng cong g(t) l trn,
khng b gp khc. Do , ta gi l hm Spline.
Vy, mt hm Spline cp m l a thc ring phn cp m c o hm cp m-1
lin tc mi nt.
Da trn tnh cht ca hm Spline, ta c th dng n nh cc hm trn to ra
ng cong p(t) da trn cc im kim sot P
0
,...,P
L
. Khi :
P(t) =
k
L
=
_
0
P
k
.g
k
(t)
Tng qut ha, ta xy dng mt hm p(t) vi L+1 im kim sot nh sau:
Vi mi im kim sot P
k
, ta c mt hm trn tng ng R
k
(t) v tp cc
nt gi l vector nt T=(t
0
,t
1
,...,t
n
) vi t
i
e R, t
i
s t
i+1
. Khi :
P(t) =
k
L
=
_
0
P
k
.R
k
(t)
6.2. NG CONG SPLINE V B-SPLINE
6.2.1. nh ngha
Theo trn ta c: P(t) =
k
L
=
_
0
P
k
.R
k
(t) (*)
trong P
k
vi k=1..L l cc im kim sot.
R
k
(t) l cc hm trn lin tc trong mi on con [t
i
,
t
i+1
]v lin tc trn mi nt. Mi R
k
(t) l mt a thc ring phn.
Do ng cong p(t) l tng ca cc a thc ny, ly trn cc im kim sot.
Cc on ng cong ring phn ny gp nhau cc im nt v to cho
ng cong tr nn lin tc. Ta gi nhng ng cong nh vy l SPLINE.
Cho trc mt vector nt th c th c nhiu h hm trn c dng to ra
mt ng cong Spline c th nh ngha trn vector nt . Mt h cc hm nh
vy c gi l c s cho cc Spline.
Trong s cc h hm ny, c mt c s c th m cc hm trn ca n c gi
mang nh nht v nh vy n em li kh nng kim sot cc b ln nht. l
cc B-Spline, vi B vit tt ca ch Basic (c s).
i vi cc hm B-Spline, mi a thc ring phn to ra n c mt cp m no
. Do , thay v dng k hi u Rk(t) cho cc hm ring phn ny ta s k hiu
cc hm trn ny l N
k,m
(t).
Do cc ng cong B-Spline c th biu din li: P(t) =
k
L
=
_
0
P
k
.N
k,m
(t)
6.2.2. Cc tnh cht hu ch trong vic thit k cc ng cong B-Spline
i/ Cc ng B-Spline cp m l cc a thc ring phn cp m. Chng l cc
Spline do chng c m-2 cp o hm lin tc mi im trong gi mang
ca chng.
Cc hm B-Spline cp m to thnh mt c s cho bt k Spline no c
cng cp c nh ngha trn cng cc nt. Cc Spline c th c biu
din nh mt t hp tuyn tnh ca cc B-Spline.
ii/ Hm trn B-Spline N
k,m
(t) bt u tk v kt thc t
k+m
. Gi mang ca n
l [t
k
,t
k+m
]. Gi mang ca h cc hm N
k,m
(t) vi k=0,...L l khong
[t
0
,t
m+L
].
iii/ Mt ng cong B-Spline ng da trn L+1 im kim sot c th c
to ra bng cch dng phng trnh ng B-Spline tun hon sau:
P(t) =
k
L
=
_
0
P
k
.N
0,m
((t-k) mod (L+1))
Vi gi thit cc nt cch u nhau trong nh ngha ca hm N
0,m
(...).
iv/ Nu dng vector chun th ng cong B-Spline s ni suy cc im kim
sot u tin v cui cng. Cc hng khi u v kt thc ca ng cong
s nm dc theo cc cnh u tin v cui cng ca a gic kim sot.
v/ Mi hm B-Spline N
k,m
(t) l khng m t, v tng cc h hm ny bng 1:
k
L
=
_
0
N
k,m
(t) = 1 t e [t
0
, t
m+L
]
vi/ Cc ng cong da trn cc B-Spline l bt bin Affin. Do , bin
i mt ng cong B-Spline, ch cn bin i cc im kim sot, sau
khi to li ng cong t cc im kim sot c bin i ny.
vii/Mt ng cong B-Spline s nm trong bao li ca cc im kim sot
Mnh hn: bt k t no, ch c m hm B-Spline l khc 0. V vy, mi t
ng cong phi nm trong bao li ca hu ht m im kim sot kch hot
k nhau. (Cc im kim sot kch hot l cc im m ti hm B-Spline
khc 0)
viii/ chnh xc tuyn tnh ca ng cong B-Spline: Nu m im kim sot
k nhau l tuyn tnh cng nhau th bao l i ca chng l mt ng thng.
Do ng cong cng s tr thnh ng thng.
ix/ Tnh cht gim bin thin: S giao im gia ng cong B-Spline vi
bt k mt mt phng no (nu c) lun lun nh hn s giao im (nu
c) gia a gic kim sot ca n vi mt phng .
6.2.3. Thit k cc mt Bezier v B-Spline
Ta c th dng cc hm trn Bezier v B-Spline m t v v cc mt cong.
i vi cc mt cong, ta biu din chng d i dng tham s qua mt hm vector
vi 2 tham s l u, v. Dng tng qut ca mt mt cong l :
p(u,v) = (X(u,v),Y(u, v),Z(u,v))
: p(u,v) = X(u,v).i + Y(u,v).j + Z(u,v).k
Khi u, v bin thin trn mt khong no th cc hm X(u,v), Y(u,v) v Z(u,v)
thay i gi tr, do lm cho v tr ca p(u,v) thay i trong khng gian 3 chiu.
Chng ta s khng biu din cc mt qua cc hm ton hc tng minh m s
biu din chng qua cc im kim sot.
V d: p(u,v) = (1-v).((1-u).P
00
+ u.P
10
) + v.((1-u).P
01
+ u.P
11
) dng 4 im kim
sot 4 gc l Pij vi cc hm trn l tuyn tnh theo u, v.
6.2.4. Cc bng Bezier
ng cong Bezier trong khng gian 3 chi u c th c vit di dng l mt
hm ca tham s v vi L+1 im kim sot ty thuc vo tham s u theo mt kiu
no : Chng hn P(u,v) =
k
L
=
_
0
P
k
(u).B
k
L
(v) (*)
Ngha l mi ng vin u l mt ng cong Bezier chun, nhng nhng gi
tr u khc nhau th cc im kim sot cng nm nhng v tr khc nhau.
Khi u bin thin th mi im kim sot P
k
(u) s chy trn mt ng cong c
th. Do , mt cong c th xem nh l mt s dch chuyn ng Bezier trong
khng gian.
Ta tng tng mt a gic kim sot chuyn ng trong khng gian v thay
i dng khi chuyn ng. mi v tr, a gic ny to nn mt ng cong
Bezier v mt cong to thnh chnh l ci vt cn li bn di ca ng cong
ny.
V d: Php chiu phi cch ca mt mt c to ra bi vic ni suy tuyn
tnh gia 2 ng cong Bezier da tr n 2 a gic kim sot l P
0
v P
1
. Mi ng
cong kim sot p
k
(u) c ni suy tuyn tnh gia 2 im kim sot P
k
0
v P
k
1
khi
u bin thin gia 0 v 1:
p
k
(u) = (1-u).P
k
0
+ u.P
k
1
k=0,1,2,3
Gi s cc ng cong kim sot p
k
(u) chnh l cc ng cong Bezier, mi
ng cong ny da trn m +1 im kim sot ca chng.
V vy: P
k
(u) =

A
=
_
0
P
i,k
.B
i
M
(u)
Kt hp p
k
(u) ny vo phng trnh (*) ta c:
P(u,v) =

A
=
_
0 k
L
=
_
0
P
i,k
.B
i
M
(u).B
k
L
(v) (**)
Ta gi y l dng tch Tensor cho bng Bezier.
Cng ging nh cc a gic kim sot trong 2D, mt khi a din kim sot l
mt mng gm c (M+1).(L+1) nh.
Tm li, to ra mt bng ta ch cn ch ra cc v tr ca cc nh ny ri sau
p dng phng trnh (**) v cc ng vin hay nh ngha dng mt cong.
6.2.5. Dn cc bng Bezier vi nhau
Mc ch l to ra cc dng mt phc tp gm nhiu bng Bezier kt li vi
nhau mt cch trn tru cc bin chung.
Khi ni 2 bng Bezier li vi nhau, mi bng c mt khi a din kim sot
ring v u c to ra t phng trnh (*) vi u, v bin thin trong khong [0,1].
Vn l lm sao cho 2 bng c th dn vo nhau mt cch trn tru.
- Hai bng s gp nhau tt c cc im dc theo bin chung nu cc khi a
din kim sot ca chng khp nhau bi n. Nh vy, ta ch cn chn cc a gic
kim sot bin cho 2 bng ng nht nhau bi n. C th thy c iu ny
khi thay u=0 vo trong phng trnh (*) trn.
- Mt iu kin na l mi cp cnh ca khi a din m n gp nhau
bin phi tuyn tnh cng nhau.
6.2.6. Cc bng B-Spline
Cc hm B-Spline c th c s dng trong dng tch Tensor thay cho cc a
thc Bernstein t c tnh kim sot cao hn khi thit k mt cong. iu
c ngha ta s thay phng trnh (**) thnh:
P(u,v) =

A
=
_
0 k
L
=
_
0
P
i,k
.N
i,m
(u).N
k,m
(v)
Khi a din kim sot gm c (L+1).(M+1) im kim sot; u,v bin thi n t 0
ti gi tr nt ln nht trong cc vector nt t ng ng ca chng.
i vi cc bng B-Spline, ngi ta vn dng cc B-Spline bc 4. Do vic chn
s im kim sot l khng gii hn nn c th to ra nhiu dng mt cong rt
phc tp.
CHNG 7. BIU DIN CC I TNG 3 CHIU
7.1. M HNH WIREFRAME
M hnh WireFrame th hin hnh dng ca i tng 3D bng 2 danh sch
Danh sch cc nh : lu ta ca cc nh.
- Danh sch cc cnh : lu cc cp im u v cui ca tng cnh.
Cc dnh v cc cnh c nh s th t cho thch hp.
V d: Biu din 1 cn nh th s (hnh 5.1)
Danh sch cc nh
Vector x y
z
1 0 0 0
2 0 1 0
3 0 1 1
4 0 0.5 1.5
5 0 0 1
6 1 0 0
7 1 1 0
8 1 1 1
9 1 0.5 1.5
10 1 0 1
C nhiu cch lu gi m hnh WireFrame. y, chng ta dng cu
trc record da trn 2 mng:
Const MaxDinh = 50; { S nh ti a}
MaxCanh = 100; {S cnh ti a}
Type ToaDo3D = record
x, y, z:real;
X
Z
P2
P3
P6
P7
P1
P1 0
P5
P8
Y
P4
P9
Hnh 5.1
end;
WireFrame = Record
Sodinh: 0..MaxDinh;
Dinh: array [1..MaxDinh] of ToaDo3D;
Socanh : 0..Maxcanh;
Canh :array[1..Maxcanh, 1..2] of
1..MaxDinh;
end;
Khi , ta dng mt bin m t cn nh :
Var House : WireFrame;
vi bin house trn, ta c th gn gi tr nh
sau:
With House Do
Begin
sodinh:=10;
socanh:=17;
dinh[1].x:=0;
dinh[1].y:=0;
dinh[1].z:=0;
...
canh[1, 1]:=1; {S nh th nht ca
cnh s 1}
canh[1, 2]:=2; {S nh th hai ca
cnh s 1}
...
end;
7.2 V M HNH WIREFRAME VI CC PHP CHIU
v mt i tng WireFrame, ta v tng cnh trong danh sch cc cnh
ca m hnh. Vn l lm th no v 1 ng thng trong khng gian 3 chiu
vo mt phng?
lm iu ny, ta phi b bt i 1 chiu trong m hnh biu din, tc l ta
phi dng php chiu t 3D 2D .
K thut chung v mt ng thng 3D l:
Danh sch cc cnh
Cnh nh u nh cui
1 1 2
2 2 3
3 3 4
4 4 5
5 5 1
6 6 7
7 7 8
8 8 9
9 9 10
10 10 6
11 1 6
12 2 7
13 3 8
14 4 9
15 5 10
16 2 5
17 1 3
Chiu 2 im u mt thnh cc im 2D.
V ng thng i qua 2 im va c chiu.
Sau y l th tc xc nh hnh chiu ca mt im qua php chiu phi
cnh:
Procedure Chieu(P3D:ToaDo3D; E:Real; Var P2D:ToaDo 2D);
Var t:Real;
Begin
If (P3D.x >=E) OR (E=0) Then
Writeln(im nm sau mt hoc mt nm tr n mt phng
nhn);
Esle
Begin
t := 1/(1 - P3D.x/E);
P2D.y := t*P3D.y;
P2D.z := t*P3D.z;
End;
End;

You might also like