Professional Documents
Culture Documents
Lp trnh ho.
Chng1. TNG QUAN
I. Cc khi nim c bn
1. ho my tnh
Mt lnh vc ca khoa hc my tnh nghin cu:
Cc thut ton, cc k thut kin to, x l v iu
khin hin th cc m hnh(model), hnh nh(image) trn
mn hnh my tnh
K thut my tnh, c bit l ch to phn cng(cc loi
mn hnh, cc thit b xut, nhp, cc v mch ha...).
2. K thut ha my tnh
2.1. K thut ho im
(Sample based-Graphics- ng dng ha da trn s ha).
Nguyn l:
Cc i tng ha c to ra bi li cc
18
17
16
15
14
13
12
11
10
20 21 22 23 24 25 26 27 28 29 30
V ng trn s dng k thut ha im
2. K thut ha my tnh
2.2. K thut ho vector
(Geometry-based graphics
-ng dng ha da trn c trng hnh hc)
Nguyn l:
Dng cc c trng hnh hc v cc thuc tnh
m t i tng. Sau cc i tng s c
s ha phc v cho hin th.
Th d v ha vect
K t B s dng k thut ha vect
To im sng:
Mt chm cc in t (tia in
t) pht ra t mt sng in t,
3. Thit
vt qua cun li b hin
tia dn nth
v ho:
Mntrn
tr xc nh hnh CRT(Cathode
mn hnh c Ray Tube)
ph mt lp pht quang.
Ti mi v tr tng tc vi tia
int ht pht quang s pht
ln mt chm sng nh
sng ca im nh ph
thuc vo cng dng tia
in t. Lng ha mc sng
bng cc gi tr trong on [0,1]
To mu im sng:
+ Cu to im pht quang:
gm ba im pht quang
mu: R(red); G(green);
B(blue)
+ Ty theo pht sng ca
cc im pht quang mu
v s trn mu nhn
c im nh c mt
mu trong t nhin
+ im nh( Pixel Picture
Element): Phn t nh
nht trn mn hnh m ta
c th kim sot c
+ Thng tin v im nh: v
tr, sng, mu sc
c s ha dng nh
phn
4. Cc ch tiu k thut mn hnh ha
b) su mu(Depth): S mu c th ca mt im
nh 2i
V d:1bit(2mu), 8bit(256mu), 24bit(16.777.216 mu)
5. Mt s chun mn hnh mu ha
Nm Chun phn gii S mu
Qun l c tng im nh
Hin th c k t ln hnh nh :
hnh nh th hin bi li cc im nh
7. Cc lnh vc ca ho my tnh
1. Kin to ho
CAD/CAM System
ho minh ho
2. X l ho
X l nh
To giao din
To biu dng trong thng mi, khoa hc v
k thut
T ng ha vn phng v ch bn in t
Lch vc bn
9. Cc chun giao din ca h ho
1. im: x
1.1 Trong h trc ta thc: M
a) H trc s dng: h ta
Decartes( h trc qui c bn
tay phi) e2
b) M t im trong h trc ta O e1 y
e cac 2D: mt im trong
h trc e cac c m t
bng cp s (x,y) trong
x,y R
I. im on thng:
T t im u mt A n im
u mt B.
A
2.2 Hin th trong h trc ta mn hnh
xi xi 1
im c xc yi 11
nh bc th i: ( xi , yi )
yi
im k tip:
( xi 1 , yi 1 )
xi xi 1
Ta c:
xi 1 xi 1; yi 1 { yi , yi 1}
yi 1
hoc
yi 1 yi 1; xi 1 {xi , xi 1} yi
II. Thut ton DDA(Digital Defrential
Annalyze)
y := y+1
c) Xt trng hp 0< m <1
Gi s bc th i (i=0,1,) tm c im
hin th
( xi ; yi )
Gi im hin th bc (i+1) l ( xi 1 , yi 1 )
Ta c:
xi 1 xi 1
yi 1 yi , yi 1
2. Thut ton DDA
xi 1 xi 1
x : x 1
y : Round ( y m)
Trng hp m>1: y=1 ( hon i x cho y)
yi 1 y i 1
y : y 1
x : Round ( x 1 / m)
i 1 2 3 4 5 6 7 8 9 10 1 12 13
1
X+IncX 2 3 4 5 6 7 8 9 10 1 12 13
1
x 1 2 3 4 5 6 7 8 9 10 1 12 13
1
Y+IncY 2. 3 3. 4 4. 5 5. 6 6. 7 7.5 8
5 5 5 5 5
y 2 3 3 4 4 5 5 6 6 7 7 8 8
Cc im hin th on thng qua A(1,2); B(13,8)
7
6
1 2 3 4 5 6 7 8 9 10 11 12 13
III. Thut ton Bresenham
1. Bi ton : Tm cc im hin th on
thng qua hai im
A(x1,y1); B(x2,y2) yi+1 A
2. Phn tch d
Phng trnh ng thng: y = mx + b Xt y M
trng hp 0 < m < 1
yi d
Gi s im hin th bc th I l: 2
B 2
( xi , yi )
Gi im hin th bc (i+1) l
( xi 1 , yi 1 )
xi 1 xi 1 xi xi+1
Ta c:
yi 1 yi , yi 1
Doh s gc 0< m<=1,
nn:
yi+1
xi+1=xi+1 v
yi+1=yi hoc yi
yi+1=yi+1
yi-1
xi xi+1
Phng trnh ng
thng qua 2 im
(x1, y1) v (x2, y2) l
y=mx+b vi yi+1 P
(xi+1,y=f(xi+1)) d2
m=Dy/Dx v b=y1-mx1.
t d1=y-yi v d1
d2=(yi+1)-y, do vic yi S
chn ta ca yi+1 ph
xi xi+1=xi+1
thuc vo d1 v d2 ( hay
du ca (d1 - d2):
Nu d1-d2<0 th chn
yi+1=yi
Ngc li, chn
yi+1=yi+1
d1 - d2 = (2y 2yi 1) l mt s thc do cha m
Xt
pi = Dx (d1 - d2) = Dx (2y - 2yi - 1) = 2Dy xi - 2Dx yi + C
(C = 2Dy + (2b - 1)Dx)
Do du ca pi v (d1-d2) ging nhau nn khi xt du
ca pi th ta xc nh c yi+1
Mc khc,
pi+1 pi = (2Dy xi+1 - 2Dx yi+1 + C) - (2Dy xi - 2Dx yi + C)
= 2Dy 2Dx(yi+1 yi)
T y, ta suy ra cch tnh pi+1 theo pi:
Nu pi<0 th yi+1=yi nn pi+1 = pi + 2Dy
Ngc li th yi+1=yi+1 nn pi+1 = pi + 2Dy 2Dx
Gi tr p u tin c tnh ti (x1, y1) l
Begin
0< m <= 1
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;putpixel(x,y,color);
x<x2 End
p<0
p=p+const2;
p=p+const1; y = y + 1;
x=x+1;
putpixel(x,y,color);
Begin
m>1
p = 2Dx - Dy;
const1=2Dx; const2=2(Dx-Dy);
x = x1; y = y1;putpixel(x,y,color);
y<y2 End
p<0
p=p+const2;
p=p+const1; x = x + 1;
y=y+1;
putpixel(x,y,color);
Begin
p = 2Dy - Dx;
const1=2Dy; const2=2(Dy-Dx);
x = x1; y = y1;putpixel(x,y,color);
x<x2 End
p<0
p=p+const2;
p=p+const1; y = y + 1;
x=x+1;
putpixel(x,y,color);
Bi tp: p dng thut ton Bresenham tm
cc im
hin th ng thng qua hai im A(1,2),
B(13,8)
i 1 2 3 4 5 6 7 8 9 10 1 12 13
1
x
y
Ve ng thang
theo thuat toan DDA(tt)
Ve ng thang
theo thuat toan DDA(tt)
y = y2-y1
>
>
x = x2-x1
Ve ng thang theo thuat toan
DDA(tt)
Nhan xet :Do khoang bien thien cua
xXet trng
ln hn khoanghp 0<m<1
bien thien cua ,y x1<x2
,
do o se cho vong lap chay t x1
en x2 , tang gia tr x len mot n
v sau moi bc lap, the vao phng y 2 -y 1
trnh ng thang va tnh y theo x.
Chung ta co thuat toan tho nh sau
: >
- iem ve au tien : (x1,y1)
>
- for(x=x1 ; x<x2 ; x++) x 2 -x 1
{ y=m*x+b;
putpixel(x,round(y),color);
}
Ve ng thangtheo thuat toan
DDA(tt)
Xet trng hp 0<m<1 , x1<x2
y y m .(x x ) m
i 1 i i 1 i
y y m
i 1 i
Ve ng thangtheo thuat toan
DDA(tt)
Xet trng hp 0<m<1 , x1<x2
void DDA1(int x1, int y1, int x2, int y2, int color)
{ float y=y1;
float m= (float)(y2-y1)/((x2-x1);
putpixel(x1,y1,color);
for(int x=x1;x<x2;x++)
{ y+=m;
putpixel(x,round(y),color);
}
}
int round(float y ) { return (int)(y + 0.5);}
Ve ng thang theo thuat toan
DDA(tt)
Xet trng hp 0<m<1 , x1<x2
void main()
{ int x1,y1 ,x2 , y2 ,color;
InputData(x1, y1 ,x2 , y2 ,color);
if (InitGraphics())
{ DDA1(x1,y1,x2,y2,color);
getch();
CloseGraphics();
}
}
Ve ng thangtheo thuat toan
DDA(tt)
Xet trng hp 0<m<1 , x1<x2
82
m 0.5
13 1
xi 12 3 4 5 6 7 8 9 10 11 12 13
yi 2 2.5 3 3.5 4 4.5 5 5.5 6 6.8 7 7.5 8
round(yi) 2 3 3 4 4 5 5 6 6 7 7 8 8
Ve ng thang theo thuat toan DDA(tt)
Bai Tap :
Ve ng thang trong cac trng hp con lai cua
he so goc
m ( -1< m < 0 , m >1 , m <-1 ) , va 2 trng hp ng
thang
song song vi truc x va y.
P =2Y- X
Cai at thuat toan Bresenhamtrong
trng hp 0<m<1
void Bres1(int x1 , int y1 , int else
x2 , { P + = twoDyDx
int y2 , int color) ;
{ Dx= x2-x1; y++;
Dy= y2 -y1; }
twoDy= 2*Dy; putpixel(x,y,color);
twoDyDx = 2*(Dy - Dx) ; }
P=twoDy Dx ; }
putpixel(x1,y1,color)
;
for(x=x1; x<x2 ; x++)
{ if (P < 0) P+=
Ve ng thang theo thuat toan
Bresenham (tt)
Xi 1 2 3 4 5 6 7 8 9 10 11 12 13
Yi 2 2 3 3 4 4 5 5 6 6 7 7 8
Pi -1 11 -9 3 -9 3 -9 3 -9 3 -9 3 -9
Ve ng thang theo thuat toan
Bresenham (tt)
Bai Tap :
Ve ng thang trong cac trng hp con lai
cua he so goc m theo thuat toan Bresenham.
(-x,-y) (x,-y)
Ve ng tron theothuat toan
Bresenham(tt)
(y,x)
R
(-y,-x) 2 (y,-x)
(-x,-y) (x,-y)
Ve ng tron theothuat toan
Bresenham (tt)
d1
y
d2
Ve ng tron theo
thuat toan Bresenham (tt)
at Pi = d1 - d2
Ve ng tron theo
thuat toan Bresenham (tt)
Ta co : P = d1-d2
= 2(xi+1)2 + yi2 + (yi-1)2 2R2
P =3 2R
Ve ng tron theo
thuat toan Bresenham (tt)
Lu o : (x0,y0) ----------------------> P1
P1 ----------------------> (x1,y1)
(x1,y1) ----------------------> P2
V du : Chay th thuat toan khi cho R=8
Chung ta co :
Xi 0 1 2 3 4 5
Yi 8 8 8 7 6 5
Pi -13 -3 -11 5 7 17
Ve ng tron theo
thuat toan Bresenham (tt)
void Bres ( int R , int color)
{ int p =3 2*R; int x = 0; int y= R;
putpixel(x,y,color) ;
put7(x,y,color) ;
while (x < y)
{ x++;
if (p < 0) p + = 4*x+6 ;
else { y--;
p + = 4*(x-y) +10 ;
}
}
putpixel(x,y,color) ;
put7(x,y,color) ;
}
}
Ve ng tron theo
thuat toan Bresenham (tt)
Hng dan :
Cch lm ging nh cch lm trong trng hp tm l (0,0)
nhng s xc nh li im v theo tm (xc,yc)
Ve ng tron theo
thuat toan Midpoint
xi x i +1
Ve ng tron theo
thuat toan Midpoint(tt)
2
1 1
(Xi 1) (Yi- ) R
2 2
atF(Xi 1, Yi - )
2
2
2 2 5 2
Fi Xi 2 Xi Yi Yi R
4
2
2
2 5 2 2
F X 2X Y Y R
i
i i i i
4
Lu thut toan:
(X0,Y0) -----------------------> F1
F1 ----------------------------> (X1,Y1)
(X1,Y1) -----------------------> F2
F2 ----------------------------> (X2,Y2)
Ve ng tron theo
thuat toan Midpoint(tt)
Xi 0 1 2 3 4 5
Yi 8 8 7 7 6 5
Fi 7 1 4 5 6 11
Ve ng tron theo
thuat toan Midpoint(tt)
Co 2 phng phap :
di
x
To mau theo lan can
x
Thuat toan to mau theo lan can
Thuat toan :
B1: Xuat phat t iem P(x,y) thuoc vung can
to
B2 :Neu P khong phai la bien va P cha c
to mau ,
th : * To mau cho P vi mau mi
* Goi e qui cho NP4 / NP8
Thuat toan to mau theo lan can
P
Cai at to mau theo lan can 4
# include<conio.h>
# include<stdio.h>
# include<graphics.h>
Nhn xt :
Phng php t mu theo ln
cn s dng qui c u im
l n gin , d ci t , t
c vng c hnh dng bt
k, tuy nhin ch cho php t
mu vng c din tch nh.
Thuat toan to mau theo lan can
Bi tp :
Ci tin li thut ton t mu theo ln cn t c vng
c din tch ln hn.
Hng dn :
1. Khng gi qui cho tt c cc im theo ln cn ( 4 , 8 ,
ng cho) m ch chn mt s cc im trong cc im
ny lm im ht ging v tin hnh thao tc t t cc
im ny.
Thuat toan to mau theo lan can
t tham so hn .
To mau theo dong quet
y
To mau theo dong quet
setcolor(color); y t
for(int y=t;y<=b;y++)y
line(l,y,r,y); b
To Mau Tam Giac
(x2,y
2)
(x3,y3)
To Mau Tam Giac
Phng php :
Cho vng lap y chay t Y1 Y2 :
1. Tm hoanh o giao iem xl, xr gia
dong quet y vi cac canh trai va
canh phai cua tam giac.
2. To dong y bat au tai cot xl, ket
thuc tai Ycot2 xr. 3
2
yY1
1
x x
To Mau Tam Giac
Flat Top
Flat Bottom
To Mau Tam Giac ay Phang
(x1,y1)
Gia thiet tam giac ay phang
co toa o (x1,y1) ; (x2,y2) ;
(x3,y3) ;
y1< y2
Do tam giac ay phang nen :
y2=y3
- Gia s a tnh c xl , xr bc th i
phng trnh canh trai va canh phai .
Can xac nh xl , xr bc (i+1)
- Chung ta co he phng trnh sau :
i 1 1 i 1 1
X Y b
L
m L m L
L
i 1 i 1
XL Y b
m L m L
L
______________________
i 1 i 1
X X L
L
m L
To Mau Tam Giac ay Phang
i 1 i 1
Lam tng t chung ta c
X R : XR
m R
,int color)
{ float ml,mr,xl,xr; int y;
ml=(float) (y2-y1) / (x2-x1);
mr=(float) (y3-y1) / (x3-x1);
xl=xr=x1; setcolor(color);
for(y=y1;y<y2;y++)
{ xl + = 1/ml;
xr += 1/mr ;
line(round(xl),y,round(xr),y) ; }
}
To mau tam giac nh phang
iem ve au tien xl = xr = x3 ; y = y3
Goi Y =m X +B :La phng
To mau tam giac nh phang
-Gia s a tnh c xl , xr bc th i
phng trnh canh ben trai va canh ben
phai . Can xac nh xl , xr bc (i+1) .
Vi cach lam tng t nh trong trng hp
tam gic y phng nh tren , chung ta tnh c :
xl = xl- 1/ml;
xr = xr- 1/mr ;
Bc 2 :
Neu y2=y3 : goi ham to mau tam
giac ay phang
Neu y1=y2 : goi ham to mau tam
(x1,yphang
giac nh
1)
(x3, y2) ;
(x2,y (x1, y2)
2)
(x3,y3
To mau tam giac tong quat
(x2,y A (xA=?,
2)
y2) (x3,y3
)
To mau tam giac tong quat
(x1,y
1)
(x2,y
2)
A (xA=?, y2)
(x3,y3
) 2 iem (x1,y1) va
Phng trnh ng thang qua
(x3,y3) : y=mx+b , vi m = ( y3 y1) /(x3 x1) ,b = y1
mx1 ;
p0
Cach to
p3 1. Chia a giac loi
co n nh {p0,
p1
p1, ... , pn-1} thanh n-
p2
2 tam giac.
1 p0p1p2
p0
p1
2 p0p2p3
pn-1 - ...
p2
pn-2
i p0pipi+1
p3 - ...
n-2 p0pn-2pn-1
To hnh a giac
1.Bc 1 Tm ymin va
ymax
ymax
ymin = min{yi, (xi, yi) I1 I2 I3 I4
P} y
ymax = max{yi, (xi, yi) P
P}
y ymin
2.Bc 2 To tng
dong
- Lap y : ymin ymax
* Tm cac giao
Thuat toan to a giac tong quat
Xen iem
Xen oan thang
Xen a giac
Xen oi tng
CLIPPING OAN THANG VI
HNH CH NHAT
c. P1=(14,7 ) , P2=(18,4 )
CLIPPING OAN THANG
VI HNH CH NHAT
(Xac nh trng hp)
Input:
Tpoint P1,P2:
Trect Window;
Boolean vis; // cho biet co thay P1P2 trong
ca so Window ?
Thuat toan :
done = False;
do
{
Tnh m vng cho P1,P2
Neu TH1: vis=True; done = True;
Neu TH2: vis=False; done = True;
Ngc lai: // TH3
CLIPPING OAN THANG
VI HNH CH NHAT
( Thuat toan )
x
CLIPPING OAN THANG
VI A GIAC LOI
Bi tp :
n
P2 P1
tin=0 t tout=1
CLIPPING OAN THANG
VI A GIAC LOI
Trng hp 2 : P1P2 khng song song vi cnh L ca W ( tt)
P1P2
n trong W.
P1
P2
break;
tout=1 tin=0 t }
Neu (t< t ) t =t
CLIPPING OAN THANG
VI A GIAC LOI
Trng hp 2 : P1P2 khng song song vi cnh L ca W ( tt)
Bai tap :
Cho a giac P bao gom 3 nh co toa o nh sau :
{ (1 , -1) ; ( 3 , 2 ) ; (4 , -1) } va 2 iem P1 , P2 co
toa o P1 =( 1 ,0 ) ; P2 = ( 4 ,0) . Hay tm phan P1P2
nam trong a giac P ( neu co) .
Hng dan :
B1 : Chuyen a giac P t polypoint thanh polyline .
B2 : Ap dung thuat toan cyrus beck e tm phan
P1P2 nam trong a giac loi.
Bai 6 :
CLIPPING A GIAC
( Thuat toan Sutherland Hogman )
Thuat toan:
* Bc 1: Chuyen a giac P t polypoint
thanh polyline (W)
li qj
li
qj
qj+1 qij qj+1
TH3 TH4
CLIPPING A GIAC
( Thuat toan Sutherland Hogman )
- Gi out l a gic kt qa li
khi clipping q vi a gic w
- Khi tao out= {}
TH1: qj, qj+1 inside so qj+1
vi li TH1
- Xuat ra nh
qj+1 li
out = out + [qj+1] qj+1
qj qij
TH2: qj inside, qj+1 TH2
outside
- Tnh giao qij
CLIPPING A GIAC
( Thuat toan Sutherland Hogman )
- Gi out l a gic kt qa
khi clipping q vi a gic w li
qj
TH3: qj outside, qj+1 qj+1
qij
inside
- Tnh giao qij TH3
- Xuat ra qij
out = out + [qij] li
- Xuat ra qi+1
out = out + qj+1
[qj+1] TH4
Thut ton :
- Input : a gic W , a gic q
- Output : Gi out l a gic kt qa khi clipping q vi a gic W
-Khi to out ={ }
- for ( i = 0 ; i < w.num ; i++)
for( j= 0 ; j < q.num 1 ; j++)
{ 1 . Nu qj, qj+1 inside so vi li
out = out + {qj+1}
2 . Nu qj, inside , qj+1 outside so vi li
* Tnh giao im S
* out = out + {S}
CLIPPING A GIAC
( Thuat toan Sutherland Hogman )
Bi tp :
Cho a giac P bao gom 3 nh co toa o nh sau :
{ (1 , -1) ; (3,2 ) ; (4 , -1) } va a giac Q bao gom 3
nh co toa o nh sau : { (1 , 1) ; ( 2 , 5 ) ; (1 , 4) } .
Hay tm phan a giac Q nam trong a giac P ( neu
co) .
Hng dan :
B1 : Chuyen a giac P t polypoint thanh polyline .
B2 : Ap dung thuat toan Sutherland Hogman e tm
phan a gic Q nam trong a giac loi W.
Bai 7 :
Cac phep bien oi Affine
Phep bien oi :
Phep bien oi la mot anh xa t
khong gian R2 vao R2 :
- Bien mot iem P thanh mot iem P
- Bien mot oi tng S thanh oi tng
S T
P
P Anh
S
Cac phep bien oi Affine c s
(tt)
-f : R2 R2
(2,3) (4,3)
(Sx,Sy)
P(x,y) Q(x,y) (5,1.5) (10,1.5)
x
Qx=Px*Sx
Qy=Py*Sy
Cac phep bien oi Affine c s
(tt)
(tx,ty)
Qx=Px + tx
P(x,y) Q(x,y)
Qy=Py+ ty
Cac phep bien oi Affine c s
(tt)
f : R2 R2
P(x,y) Q(x,y)
Cu the :
a/ oi vi phep dch chuyen :
1 0 ,tr=(Tx,Ty)
M
0 1
b/ oi vi phep thay oi ty le
Sx 0 ,tr=(0,0)
M
0 Sy
Dang ma tran cua cac phep
bien oi affine c s (tt)
c/ oi vi phep quay :
cos sin
M ,tr=(0,0)
sin cos
.
T1
.
Hoi khi bien oi t P thanh Q th ma tran
bien oi M va vector
dch chuyen tr se la nh
T2
P1 the nao ?.
P Q
T
Tong hp cac phep bien oi (tt)
Chung ta co
Q=P1 * M2 + tr2
P1= P *M1 + tr1
Q=(P * M1+ tr1) * M2 + tr2
Vay Q= P * M + tr , vi M=M1 * M2 ;
tr = tr1*M2 + tr2
Tong hp cac phep bien oi (tt)
T1 Tn
T2 T3
He toa o ong nhat va cac
phep bien oi
a/ He toa o :
He toa o He toa o
e cac thuan nhat
P(Px, Py) P(Px, Py, 1)
Cu the :
- oi vi phep tnh tien:
Chung ta co : Q = P * M 1 0 0
(Qx, Qy,1) (Px, Py,1) 0 1 0
Tx Ty 1
- oi vi phep thay oi t le :
Sx 0 0
M 0 Sy 0
0 0 1
He toa o ong nhat va cac
phep bien oi (tt)
oi vi phep xien :
1 g 0
M h 1 0
0 0 1
Tom lai :Moi phep bien oi Affine trong he toa
o ong nhat
eu co the bieu dien di dang : Q= P * M
trong o : M la ma tran bien oi
He toa o ong nhat va cac
phep bien oi (tt)
.
.
Cho phep bien oi Tn co ma tran bien oi Mn
T bieu thc : Q= P * M
Vay chung ta co c iem P se la : P = Q *
M-1
He toa o ong nhat va cac
phep bien oi (tt)
co ma
phep bien oi
Neu T tran M la
a b 0 :
M c d 0 , vi ad - bc 0
e f 1
-
th
d b
0
ad bc ad bc
c a
-1
M 0
ad bc ad bc
cf de be af
1
ad bc ad bc
Cac Phep Bien oi Affine (tt)
Cos Sin 0
Chung ta co :
M 2 Sin Cos 0
0 0 1
> x
O P1
Bai 8 :
o hoa 3D
Cac he thong toa o
P(R,,)
. P(x,y,z) Y
O
X
X
He toa o Decart He
toa o cau
o hoa 3D
Cac he thong toa o
O O
X X
Z Z
z
z
x y
Qui trnh gm 8 bc :
Bc 1 : Modeling Transformation : Bin i t h ta i tng sang
h ta th gii thc.
vung hien th
4 3
8 7
1 2
5 6
He toa o ong nhat
, cac phep bien oi affine tren
3D
Dang ma tran cua cac phep bien oi trong he toa
o ong nhat :
Q= P * M
oi vi phep tnh y
tien:
Thamso:
oditren
trucOx : Tx
oditren
trucOy : Ty
oditren
trucOz : Tz
O x
z
1 0 0 0
0 1 0 0
(Qx, Qy, Qz,1) (Px, Py, Qz,1)
0 0 1 0
Tx Ty Tz 1
He toa o ong nhat
, cac phep bien oi affine tren
3D
Tamt le
:O 0 Sy 0 0
M
Hesotletren
3 truc: s , s , s 0 0 Sz 0
x y z
0 0 0 1
y
O x
z
He toa o ong nhat
, cac phep bien oi affine tren
3D
oi vi phep quay :
y
Thamso:
v x, y, z
O x
z
He toa o ong nhat
, cac phep bien oi affine tren
3D
Ma tran M : P
Q
cos sin 0 0
sin cos 0 0 P
M O x
0 0 1 0
0 0 0 1 z
He toa o ong nhat
, cac phep bien oi affine tren
3D
cos 0 sin 0
0 1 0 0
M
sin 0 cos 0 O x
0 0 0 1
z
He toa o ong nhat
, cac phep bien oi affine tren
3D
Ma tran M :
1 0 0 0
0 cos sin 0
M
0 sin cos 0
O x
0 0 0 1
z
He toa o ong nhat
, cac phep bien oi affine tren
3D
oi vi phep xien :
1
h yx h zx
0
M
h xy
1 h zy
0
h h 1 0
xz yz
0 0 0 1
.
.
Cho phep bien oi Tn co ma tran bien oi Mn
Q'
P
P'
P r o je c tiv e p la n e
C e n te r P r o je c tio n
o hoa 3D
He thong cac phep chieu
Q. . Q'
P. . P'
Projective plane
o hoa 3D
He thong cac phep chieu
Q
Cho iem P(x,y,z) , y
mat at tren truc oz e(0,0,E) P
z
Q ' P'
P 'y
P 'x
>
x
e ( 0 ,0 ,E )
1
t
Pz
1
E
Px
P' x
Pz
1
E
Py
P' y
Pz
1
E
Phep chieu phoi canh
Mat at tren truc x
P' x 0
Py
P' y
Px
1
E
Py
P' z
Px
1
E
Phep chieu phoi canh
Mat at tren truc y
Px
P' x
Py
1
E
Pz
P' z
Py
1
E
Cac thuat toan kh
mat khuat cua oi tng
Thuat toan:
for(i=0 ; i < NumF ; i++)
{ - Tnh vector phap tuyen hng ngoai n i
cua fi
- Tnh vector hng nhn vi
- Neu (vi*ni< 0) th fi.vis =0; // khong thay
mat fi
Ngc lai : f .vis =1 ; // nco thay mat f
i i
}
v
mat a giac
Bai tap