bai giang ky thuat do hoa
DESCRIPTION
Bài Giang Ky Thuat Do HoaTRANSCRIPT
-
HC VIN CNG NGH BU CHNH VIN THNG ---------------------------------------
NGUYN THU THO
TI LUN VN I MI C CH K HOCH SN XUT KINH DOANH TI BU IN TRUNG NG TRONG GIAI ON 2014 2020
Chuyn ngnh: Qun tr kinh doanh M s: 60.34.01.02
TM TT LUN VN THC S
H NI NM 2014
PTIT
tttvTypewriter
tttvTypewriter
tttvTypewriter
tttvTypewriter
-
Lun vn c hon thnh ti: HC VIN CNG NGH BU CHNH VIN THNG
Ngi hng dn khoa hc: TS. Cao Th Thin Thu
Phn bin 1: TS. Nguyn Thanh Tng
Phn bin 2: TS. Nguyn Vn Tn
Lun vn s c bo v trc Hi ng chm lun vn thc s ti Hc vin Cng ngh Bu chnh Vin thng Vo lc: 13 gi 30 ngy 15 thng 2 nm 2014
C th tm hiu lun vn ti: - Th vin ca Hc vin Cng ngh Bu chnh Vin thng
PTIT
tttvTypewriter
tttvTypewriter
-
PTIT
-
PTIT
-
LI NI U
ho my tnh (Computer Graphics) l mt lnh vc l th v c nhiu ng dng
trong thc t, n gp phn lm cho giao tip gia con ngi v my tnh tr nn thn
thin hn. Giao din kiu vn bn (text) c thay th hon ton bng giao din
ho. Tuy nhin, vic dy v hc k thut ha th khng n gin do ch ny c
nhiu phc tp. 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. Hin nay, K thut ha l mt mn hc c ging
dy cho sinh vin chuyn ngnh Cng Ngh Thng Tin.
Trong cun gio trnh ny, ti mun mang li cho bn c cc c s l thuyt v
ho my tnh t n gin nht nh cc thut ton v ng thng, ng trn, a gic, k
t... Tip n cc k thut xn ta, cc php bin i ho trong khng gian 2D v
3D...Chng ta ln lt lm quen vi th gii mu sc thng qua cc h mu: RGB,
CMYK, HSV.... Phc tp hn na l cc php chiu, cc phng php xy dng ng
cong v mt cong cho i tng. Cui chng ta tm hiu v nh sng v hnh hc fractal.
Gio trnh gm chn chng, trong chng mt gip bn c c ci nhn tng
quan v k thut ho t trc n gi cng nh hng tng lai cho lnh vc ny. Cc
chng tip theo, mi chng s l mt vn t n gin n phc tp v c s nn tng
cho ngnh k thut ho. Cui mi chng u c phn bi tp kim tra li kin thc
va c c. Bi tp gm hai dng: dng tnh ton v dng lp trnh, i vi dng lp
trnh bn c th vit bng C/C++ hay BC thm ch bng VB u c. Cui cng l phn
ph lc gm cc hng dn lm bi tp lp trnh, ngn ng hay dng y l C/C++ hay
BC.
B cc r rng, hnh nh phong ph, a dng. Ti hy vng rng gio trnh l mt b
tham kho y cc thng tin hu ch v c tnh thc tin cao cho mn k thut ho.
Trong qu trnh bin son mc d c gng ht sc nhng vn khng trnh khi
nhng sai st, rt mong nhn c s ng gp chn thnh t qu bn c.
Xin chn thnh cm n.
Tc gi
PTIT
-
Mc lc
2
MC LC
LI NI U ........................................................................................................................ 1
MC LC .............................................................................................................................. 2
CHNG 1: TNG QUAN V K THUT HO ...................................................... 7
1.1. CC KHI NIM TNG QUAN CA K THUT HO MY TNH
(COMPUTER GRAPHICS) ......................................................................................................... 7
1.1.1. L ch s pht trin ................................................................................................. 7
1.1.2. K thut ha vi tnh. ...................................................................................... 8
1.2. CC K THUT HO ....................................................................................... 8
1.2.1. K thut ho im (Sample based-Graphics) ................................................. 8
1.2.2. K thut ho vector .......................................................................................... 9
1.2.3. Phn loi ca ho my tnh ........................................................................... 10
1.2.4. Cc ng dng tiu biu ca k thut ha ....................................................... 11
1.2.5. Cc chun giao din ca h ho ..................................................................... 13
1.3. PHN CNG HO (GRAPHICS HARDWARE) ............................................ 13
1.3.1. Cc thnh phn phn cng ca h ho tng tc........................................... 13
1.3.2. My in ................................................................................................................. 14
1.3.3. Mn hnh CRT .................................................................................................... 14
1.3.4. Mn hnh tinh th lng (Liquid Crystal Display LCD) ................................... 16
Tm tt chng: ............................................................................................................... 17
Bi tp: .............................................................................................................................. 18
CHNG 2: CC GII THUT SINH THC TH C S ............................................ 19
2.1. CC H THNG TO TRONG HO....................................................... 19
2.1.1. H to thc (WCS World Coordinate System) ........................................... 19
2.1.2. H to thit b (DCS Device Coordinate System) ...................................... 19
2.1.3. to thit b chun (NDCS Normalized Device Coordinate System) ........... 20
2.2. IM V ON THNG ....................................................................................... 20
2.2.1. im ................................................................................................................... 20
2.2.2. on thng .......................................................................................................... 20
2.3. CC GII THUT XY DNG THC TH C S ........................................... 21
2.3.1. Gii thut v on thng thng thng .............................................................. 21
2.3.2. Gii thut Bresenham ......................................................................................... 22
2.3.3. Gii thut trung im-Midpoint .......................................................................... 23
2.3.3. Gii thut sinh ng trn (Scan Converting Circles)(Bresenham) ................... 25
2.3.5. Gii thut sinh ng trn Midpoint .................................................................. 28
2.3.6. Gii thut sinh ng ellipse ............................................................................. 30
2.3.7. Gii thut sinh k t .......................................................................................... 33
2.3.8. Gii thut sinh a gic (Polygon) ....................................................................... 34
PTIT
-
Mc lc
3
Tm tt chng: ............................................................................................................... 39
Bi tp: .............................................................................................................................. 39
CHNG 3: CC PHP BIN I HO .................................................................. 41
3.1. CC PHP BIN I HNH HC HAI CHIU .................................................... 41
3.1.1. Php bin i Affine (Affine Transformations) ................................................. 41
3.1.2. Cc php bin i i tng ............................................................................... 41
3.2. TA NG NHT V CC PHP BIN I ............................................. 45
3.2.1. To ng nht ................................................................................................ 45
3.2.2. Php bin i vi to ng nht .................................................................... 46
3.2.3. Ci t c/c++ cho php quay tam gic quanh 1 im (xq,yq): ........................... 47
3.3. CC PHP BIN I HNH HC BA CHIU ...................................................... 48
3.3.1.Biu din im trong khng gian 3 chiu ............................................................ 48
3.3.2. Php tnh tin ...................................................................................................... 48
3.3.3. Php t l ............................................................................................................. 48
3.3.4. Php bin dng.................................................................................................... 49
3.3.5. Php ly i xng ............................................................................................... 49
3.3.6. Php quay 3 chiu ............................................................................................... 49
3.3.7. Ci t bng c/c++ nh sau: ............................................................................... 53
Tm tt:............................................................................................................................. 54
Bi tp: .............................................................................................................................. 54
CHNG 4: CC GII THUT HO C S........................................................... 57
4.1. M HNH CHUYN I GIA BA H THNG TO ................................. 57
4.1.1. M hnh chuyn i ............................................................................................ 57
4.1.2. Php nh x t ca s vo khung nhn ............................................................... 57
4.2. CC GII THUT XN TI (CLIPPING) ............................................................ 59
4.2.1. Khi nim ........................................................................................................... 59
4.2.2. Clipping im ..................................................................................................... 59
4.2.3. Xn ta on thng .............................................................................................. 59
4.2.4. Gii thut xn ta a gic (Sutherland Hodgman) .............................................. 66
Tm tt chng: ............................................................................................................... 70
Bi tp: .............................................................................................................................. 70
CHNG 5: PHP CHIU PROJECTION ...................................................................... 71
5.1. KHI NIM CHUNG ............................................................................................... 71
5.1.1.Nguyn l v 3D (three-Dimension) ................................................................... 71
5.1.2. c im ca k thut ho 3D ....................................................................... 71
5.1.3.Cc phng php hin th 3D .............................................................................. 71
5.2.PHP CHIU ............................................................................................................. 72
5.3. PHP CHIU SONG SONG (Parallel Projections ) ................................................. 74
PTIT
-
Mc lc
4
5.3.1.Php chiu trc giao (Orthographic projection) .................................................. 74
5.3.2. Php chiu trc lung (Axonometric) ................................................................ 75
5.3.3. Php chiu xin - Oblique .................................................................................. 78
5.4. PHP CHIU PHI CNH (Perspective Projection) .............................................. 79
5.4.1. Php chiu phi cnh mt tm chiu .................................................................. 80
5.4.2. Php chiu phi cnh hai tm chiu ................................................................... 81
5.4.3. Php chiu phi cnh ba tm chiu .................................................................... 83
Tm tt chng: ............................................................................................................... 83
Bi tp: .............................................................................................................................. 83
CHNG 6: MU SC TRONG HO ...................................................................... 85
6.1. NH SNG V MU SC (light and color) .......................................................... 85
6.1.1. Quan nim v nh sng ....................................................................................... 85
6.1.2. Yu t vt l ....................................................................................................... 85
6.1.3. Cm nhn mu sc ca con ngi (Physiology - Sinh l - Human Vision) ....... 87
6.1.4. Cc c trng c bn ca nh sng ..................................................................... 89
6.2. NH SNG N SC ............................................................................................ 89
6.2.1. Cng sng v cch tnh ................................................................................ 90
6.2.2. Php hiu chnh gama ......................................................................................... 90
6.2.3. Xp x bn tng - halftone .................................................................................. 91
6.2.4. Ma trn Dither v php ly xp x bn tng ....................................................... 93
6.3. CC H MU TRONG MN HNH HA ...................................................... 93
6.3.1. M hnh mu RGB (Red, Green, Blue - , lc, lam) ........................................ 94
6.3.2. M hnh mu CMY (Cyan, Magenta, Yellow - xanh tm, ti, vng) ......... 94
6.3.3. M hnh mu YIQ .............................................................................................. 95
3.4. M hnh mu HSV (Hue, Saturation,Value) - M thut........................................ 96
6.3.5. Biu mu CIE (1931 Commission Internationale de lEclairage) .............. 97
6.4. CHUYN I GIA CC H MU ................................................................... 100
6.4.1. Chuyn i HSV - RGB ................................................................................... 100
6.4.2. Chuyn i RGB sang XYZ ............................................................................. 101
Tm tt:........................................................................................................................... 102
Bi tp: ............................................................................................................................ 102
CHNG 7: NG CONG V MT CONG TRONG 3D ......................................... 104
7.1. NG CONG - CURVE ..................................................................................... 104
7.1.1. im biu din ng cong (curve represents points ) .................................. 104
7.1.2. ng cong a thc bc ba tham bin ............................................................. 104
7.1.3. ng cong Hermite ........................................................................................ 105
7.1.4. ng cong Bezier ........................................................................................... 106
7.1.5. ng cong B-spline ........................................................................................ 108
PTIT
-
Mc lc
5
7.2. M HNH B MT (Surface) V CC PHNG PHP XY DNG ............ 114
7.2.1. Cc khi nim c bn ....................................................................................... 114
7.2.2. Biu din mnh t gic ..................................................................................... 115
7.2.3. M hnh ho cc mt cong (Surface Patches) ................................................... 117
7. ................................................................................................................................. 117
7.2.4. Mt t cc ng cong ..................................................................................... 120
Tm tt:........................................................................................................................... 125
Bi tp: ............................................................................................................................ 125
CHNG 8: NH SNG ................................................................................................. 127
8.1. GII THIU ............................................................................................................ 127
8.1.1. Mc tiu chnh trong ha my tnh .............................................................. 127
8.1.2. Cc gii php trong ha my tnh ................................................................ 127
8.2. CC K THUT CHIU SNG TRONG HA MY TNH ....................... 129
8.2.1. nh gi v cng nh sng ........................................................................ 129
8.2.2. Cng nh sng ........................................................................................... 130
8.2.3. Nhng thuc tnh bao quanh ca vt cht ........................................................ 131
8.2.4. Thuc tnh khuch tn ca vt cht .................................................................. 132
8.2.5. S tng tc b mt/nh sng ........................................................................... 133
8.2.6. S khc x v s truyn sng ........................................................................... 134
8.3. CC CNG NGH ................................................................................................. 134
8.3.1. Raytracing ......................................................................................................... 134
8.3.2. Radiosity ........................................................................................................... 138
8.3.3. Photon Mapping ............................................................................................... 143
8.4. S SO SNH GIA CC K THUT (COMPARISON OF TECHNIQUES) .. 147
8.4.1. Raytracing ......................................................................................................... 148
8.4.2. Radiosity ........................................................................................................... 148
8.4.3. Photon mapping ................................................................................................ 148
Tm tt:........................................................................................................................... 149
CHNG 9: HNH HC FRACTAL ............................................................................... 150
9.1. S RA I V CC NG DNG CA HNH HC PHN HNH .................. 150
9.1.1. S ra i ca l thuyt hnh hc phn hnh ...................................................... 150
9.1.2. Cc ng dng tng qut ca hnh hc phn hnh .............................................. 151
9.2. MT S K THUT CI T HNH HC PHN HNH ................................. 151
9.2.1 H ng VONKOCK ...................................................................................... 151
9.2.2. ng SIERPINSKI ........................................................................................ 154
9.3. CY FRACTAL...................................................................................................... 155
9.3.1. CC CY THC T: ..................................................................................... 155
9.3.2. BIN DIN TON HC CA CY: ............................................................. 156
PTIT
-
Mc lc
6
9.4. TP MANDELBROT ............................................................................................. 159
9.4.1. t vn ......................................................................................................... 159
9.4.2. CNG THC TON HC ............................................................................. 159
9.4.3. THUT TON TH HIN TP MANDELBROT ........................................ 160
9.5. TP JULIA.............................................................................................................. 161
9.5.1. t vn : ........................................................................................................ 161
9.5.2. Cng thc ton hc: .......................................................................................... 161
9.5.3. Thut ton th hin tp Julia ............................................................................. 161
9.6. H CC NG CONG PHOENIX .................................................................... 163
Bi tp ............................................................................................................................. 165
Chng 10: OpenGL .......................................................................................................... 166
10.1. Gii thiu v OpenGL ........................................................................................... 166
10.1.1. Khi nim ....................................................................................................... 166
10.1.2. Ci t OpenGL trong Visual C++ ................................................................. 166
10.2. Cc thnh phn c bn ca OpenGL ..................................................................... 166
10.2.1. Chng trnh u tin ..................................................................................... 166
10.2.2. V hnh trong Window ................................................................................... 167
10.2.3. Khung nhn ..................................................................................................... 168
10.3. V cc i tng hnh hc c bn trong OpenGL ................................................. 169
10.3.1. V im, ng v a gic (point, line and polygon) .................................... 169
10.4. Php bin i im nhn v bin i m hnh (Viewing and Modeling
transformations) ........................................................................................................................ 173
10.4.1. Php bin i im nhn ................................................................................. 173
10.4.2. Php bin i m hnh .................................................................................... 173
10.4.3. kt hp cc php bin i ............................................................................... 174
10.5. Php chiu phi cnh v php chiu trc giao (Perspective and Orthographic
Projection) ................................................................................................................................ 174
10.5.1. Php chiu phi cnh ...................................................................................... 174
10.5.2. Php chiu trc giao ....................................................................................... 175
PH LC ........................................................................................................................... 177
1. Yu cu ....................................................................................................................... 177
2. Khi to v ng ch ho ................................................................................. 177
3. Cc hm c bn .......................................................................................................... 178
3.1. Bng mu ca mn hnh ho. .......................................................................... 178
3.2. im .................................................................................................................... 179
3.3. ng .................................................................................................................. 179
3.4. Hnh ch nht ...................................................................................................... 179
3.5. Hnh trn .............................................................................................................. 179
3.6. a gic ................................................................................................................. 180
PTIT
-
Mc lc
7
3.7. Vn bn ................................................................................................................ 180
3.8. Ca s (viewport) ................................................................................................ 181
3.9. To hnh nh chuyn ng ................................................................................... 181
Cc code chng trnh v d cho bi tp lp trnh .......................................................... 183
Bi 1: quay i tng ................................................................................................. 183
Bi 2: xn ta ............................................................................................................... 190
Bi 3: Php chiu ........................................................................................................ 191
TI LIU THAM KHO .................................................................................................. 185
PTIT
-
Chng 1: Tng quan v k thut ho
7
CHNG 1: TNG QUAN V K THUT HO
1.1. CC KHI NIM TNG QUAN CA K THUT HO MY
TNH (COMPUTER GRAPHICS)
1.1.1. L ch s pht trin
Lch s ca ha my tnh l vo thp nin 1960 c nh du bi d n SketchPad
c pht trin ti Hc vin Cng ngh Massachusetts (MIT) bi Ivan Sutherland. Cc
thnh tu thu c c bo co ti hi ngh Fall Joint Computer v y cng chnh l
s kin ln u tin ngi ta c th to mi, hin th v thay i c d liu hnh nh
trc tip trn mn hnh my tnh trong thi gian thc. H thng Sketchpad ny c dng
thit k h thng mch in v bao gm nhng thnh phn sau:
CRT mn hnh
Bt sng v mt bn phm bao gm cc phm chc nng
My tnh cha chng trnh x l cc thng tin
Vi h thng ny, ngi s dng c th v trc tip cc s mch in ln mn
hnh thng qua bt sng, chng trnh s phn tch v tnh ton cc thng s cn thit ca
mch in do ngi dng v nn.
Cng trong nm 1960 ny, William Fetter nh khoa hc ngi M. ng ang
nghin cu xy dng m hnh bung li my bay cho hng Boeing ca M. ng da trn
hnh nh ba chiu ca m hnh ngi phi cng trong bung li ca my bay xy dng
nn mt m hnh ti u cho bung li my bay. Phng php ny cho php cc nh thit
k quan st mt cch trc quan v tr ca ngi li trong khoang. ng t tn cho phng
php ny l ho my tnh (Computer Graphics) .
Mn hnh l thit b thng dng nht trong h ho, cc thao tc ca hu ht cc
mn hnh u da trn thit k ng tia m cc CRT (Cathode ray tube).
K thut ha c lin tc hon thin vo thp nin 1970 vi s xut hin ca
cc chun ha lm tng cng kh nng giao tip v ti s dng ca phn mm cng
nh cc th vin ha.
S pht trin vt bc ca cng ngh vi in t v phn cng my tnh vo thp
nin 1980 lm xut hin hng lot cc v mch h tr cho vic truy xut ha i cng
vi s gim gi ng k ca my tnh c nhn lm ha ngy cng i su vo cuc sng
thc t.
Nhng nm 1980 c raster graphics ( ho im). Bt u chun ho v d nh:
GKS(Graphics Kernel System): European effort (kt qu ca chu u), Becomes ISO 2D
standard.
Thp nin 90 pht trin c bit v phn cng, thit b hnh hc ho Silicon. Xut
hin cc chun cng nghip: PHIGS (Programmers Hierarchical Interactive Graphics
Standard) xc nh cc phng php chun cho cc m hnh thi gian thc v lp trnh
hng i tng. Giao din ngi my Human-Computer Interface (HCI).
PTIT
-
Chng 1: Tng quan v k thut ho
8
Ngy nay xut hin nh hin thc, cc ho cho my tnh (Graphics cards for
PCs), game boxes v game players. Cng nghip phim nh nh vo ho my tnh
(Computer graphics becoming routine in movie industry), Maya (th gii vt cht tri gic
c).
1.1.2. K thut ha vi tnh.
ha my tnh l mt lnh vc ca khoa hc my tnh nghin cu v c s ton hc, cc
thut ton cng nh cc k thut cho php to, hin th v iu khin hnh nh trn mn
hnh my tnh. ha my tnh c lin quan t nhiu n mt s lnh vc nh i s, hnh
hc gii tch, hnh hc ha hnh, quang hc,... v k thut my tnh, c bit l ch to
phn cng (cc loi mn hnh, cc thit b xut, nhp, cc v mch ha...).
Theo ngha rng hn, ha my tnh l phng php v cng ngh dng trong vic
chuyn i qua li gia d liu v hnh nh trn mn hnh bng my tnh. ha my
tnh hay k thut ha my tnh cn c hiu di dng phng php v k thut to
hnh nh t cc m hnh ton hc m t cc i tng hay d liu ly c t cc i
tng trong thc t.
1.2. CC K THUT HO
1.2.1. K thut ho im (Sample based-Graphics)
Cc m hnh, hnh nh ca cc i tng c hin th thng qua tng pixel (tng
mu ri rc)
c im:C th thay i thuc tnh ca tng im nh ri rc
o Xo i tng pixel ca m hnh v hnh nh cc i tng.
o Cc m hnh hnh nh c hin th nh mt li im (grid) cc pixel ri
rc,
o Tng pixel u c v tr xc nh, c hin th vi mt gi tr ri rc (s
nguyn) cc thng s hin th (mu sc hoc sng)
Tp hp tt c cc pixel ca grid cho chng ta m hnh, hnh nh i tng m
chng ta mun hin th.
Hnh 1.1 nh ho im
Phng php to ra cc pixel
Phng php dng phn mm v trc tip tng pixel mt.
Da trn cc l thuyt m phng (l thuyt Fractal, v.v) xy dng nn hnh nh
m phng ca s vt.
PTIT
-
Chng 1: Tng quan v k thut ho
9
Phng php ri rc ho (s ho) hnh nh thc ca i tng.
C th sa i (image editing) hoc x l (image processing) mng cc pixel thu
c theo nhng phng php khc nhau thu c hnh nh c trng ca i
tng.
1.2.2. K thut ho vector
Hnh 1.2 M hnh ho vector
M hnh hnh hc (geometrical model) ca i tng
Xc nh cc thuc tnh ca m hnh hnh hc ny,
Qu trnh t trt (rendering) hin th tng im ca m hnh, hnh nh thc ca
i tng
V d v hnh nh ho Vector
Hnh 1.3 V d v ho vector
C th nh ngha ho vector: ho vector = geometrical model + rendering
Cc tham
s t trt
T trt
Thit b ra
M hnh
ha
Muscle Model Wireframe Model Skeletal Model
Skin Model Hair Model Render and Touch up
PTIT
-
Chng 1: Tng quan v k thut ho
10
So snh gia Raster v Vector Graphics
ho im(Raster Graphics)
- Hnh nh v m hnh ca cc vt th c
biu din bi tp hp cc im ca li (grid)
- Thay i thuc tnh ca cc pixel => thay
i tng phn v tng vng ca hnh nh.
- Copy c cc pixel t mt hnh nh ny
sang hnh nh khc.
ho vector(Vector Graphics)
- Khng thay i thuc tnh ca tng im
trc tip
- X l vi tng thnh phn hnh hc c s
ca n v thc hin qu trnh t trt v hin th
li.
- Quan st hnh nh v m hnh ca hnh nh
v s vt nhiu gc khc nhau bng cch
thay i im nhn v gc nhn.
1.2.3. Phn loi ca ho my tnh
Phn loi theo cc lnh vc ca ho my tnh
Phn loi theo h to
K thut ho hai chiu: l k thut ho my tnh s dng h to hai chiu
(h to phng), s dng rt nhiu trong k thut x l bn , th.
K thut ho ba chiu: l k thut ho my tnh s dng h to ba chiu,
i hi rt nhiu tnh ton v phc tp hn nhiu so vi k thut ho hai chiu.
Cc lnh vc ca ho my tnh:
K thut x l nh (Computer Imaging): sau qu trnh x l nh cho ta nh s ca
i tng. Trong qu trnh x l nh s dng rt nhiu cc k thut phc tp: k thut
khi phc nh, k thut lm ni nh, k thut xc nh bin nh.
K thut nhn dng (Pattern Recognition): t nhng nh mu c sn ta phn loi
theo cu trc, hoc theo cc tiu tr c xc nh t trc v bng cc thut ton chn lc
c th phn tch hay tng hp nh cho thnh mt tp hp cc nh gc, cc nh gc
K thut phn tch v to nh
ho hot hnh v ngh thut
K thut nhn dng
X l nh
ho minh ho
CAD/CAM System
K thut ho
Kin to
ho
X l ho
K thut ho
K thut ho 2 chiu
K thut ho 3 chiu PTIT
-
Chng 1: Tng quan v k thut ho
11
ny c lu trong mt th vin v cn c vo th vin ny ta xy dng c cc thut
gii phn tch v t hp nh.
K thut tng hp nh (Image Synthesis): l lnh vc xy dng m hnh v hnh nh
ca cc vt th da trn cc i tng v mi quan h gia chng.
Cc h CAD/CAM (Computer Aided Design/Computer Aided Manufacture
System): k thut ho tp hp cc cng c, cc k thut tr gip cho thit k cc chi
tit v cc h thng khc nhau: h thng c, h thng in, h thng in t.
ho trnh by (Presentation Graphics): gm cc cng c gip hin th cc s liu
th nghim mt cch trc quan, da trn cc mu th hoc cc thut ton c sn.
ho hot hnh v ngh thut: bao gm cc cng c gip cho cc ho s, cc nh
thit k phim hot hnh chuyn nghip lm cc k xo hot hnh, v tranh... V d: phn
mm 3D Studio, 3D Animation, 3D Studio Max.
1.2.4. Cc ng dng tiu biu ca k thut ha
ho my tnh l mt trong nhng lnh vc l th nht v pht trin nhanh nht ca tin
hc. Ngay t khi xut hin n c sc li cun mnh lit, cun ht rt nhiu ngi
nhiu lnh vc khc nhau nh khoa hc, ngh thut, kinh doanh, qun l...Tnh hp dn
ca n c th c minh ho rt trc quan thng qua cc ng dng ca n.
Xy dng giao din ngi dng (User Interface)
Giao din ho thc s l cuc cch mng mang li s thun tin v thoi mi cho
ngi dng ng dng. Giao din WYSIWYG v WIMP ang c a s ngi dng u
thch nh tnh thn thin, d s dng ca n.
To cc biu trong thng mi, khoa hc, k thut
Cc ng dng ny thng c dng tm lc cc d liu v ti chnh, thng k,
kinh t, khoa hc, ton hc... gip cho nghin cu, qun l... mt cch c hiu qu.
T ng ho vn phng v ch bn in t
Thit k vi s tr gip ca my tnh (CAD_CAM)
Lnh vc gii tr, ngh thut v m phng
iu khin cc qu trnh sn xut (Process Control)
Lnh vc bn (Cartography)
Gio dc v o to
PTIT
-
Chng 1: Tng quan v k thut ho
12
Mt s v d ca ng dng k thut ho:
Hnh 1.4 Cc ng dng ca k thut ho
Hnh 1.5 H ng dng CAD - CAM
PTIT
-
Chng 1: Tng quan v k thut ho
13
1.2.5. Cc chun giao din ca h ho
Mc tiu cn bn ca cc chun cho phn mm ho l m bo tnh tng thch. Khi
cc cng c c thit k vi hm ho chun, phn mm c th c di chuyn mt
cch d dng t h phn cng ny sang h phn cng khc v c dng trong nhiu ci
t v ng dng khc nhau.
GKS (Graphics Kernel System): chun xc nh cc hm ho chun, c thit
k nh mt tp hp cc cng c ho hai chiu v ba chiu.
GKS Functional Description, ANSI X3.124 - 1985.GKS - 3D Functional
Description, ISO Doc #8805:1988.
CGI (Computer Graphics Interface System): h chun cho cc phng php giao
tip vi cc thit b ngoi vi.
CGM (Computer Graphics Metafile): xc nh cc chun cho vic lu tr v chuyn
i hnh nh.
VRML (Virtual Reality Modeling Language): ngn ng thc ti o, mt hng pht
trin trong cng ngh hin th c xut bi hng Silicon Graphics, sau c
chun ha nh mt chun cng nghip.
PHIGS (Programmers Hierarchical Interactive Graphics Standard): xc nh cc
phng php chun cho cc m hnh thi gian thc v lp trnh hng i tng.
PHIGS Functional Description, ANSI X3.144 - 1985.+ Functional Description,
1988, 1992.
OPENGL th vin ha ca hng Silicon Graphics, c xy dng theo ng
chun ca mt h ha nm 1993.
DIRECTX th vin ho ca hng Microsoft, Direct X/Direct3D 1997
1.3. PHN CNG HO (GRAPHICS HARDWARE)
1.3.1. Cc thnh phn phn cng ca h ho tng tc
CPU:thc hin cc chng trnh ng dng.
B x l hin th (Display Processor): thc hin cng vic hin th d liu ho.
B nh h thng (System Memory): cha cc chng trnh v d liu ang thc
hin.
Gi phn mm ho (Graphics Package): cung cp cc hm ho cho chng
trnh ng dng
Phn mm ng dng (Application Program): phn mm ho ng dng.
B m ( Frame buffer): c nhim v cha cc hnh nh hin th.
B iu khin mn hnh (Video Controller): iu khin mn hnh, chuyn d liu
dng s frame buffer thnh cc im sng trn mn hnh.
PTIT
-
Chng 1: Tng quan v k thut ho
14
Hnh 1.6 Cc thnh phn cng ca h ho tng tc
1.3.2. My in
Dot size: ng knh ca mt im in b nht m my in c th in c
Addressability: kh nng a ch ho cc im in c th c trn mt n v di (dot per
inch)
Dot size Point per inch
8 - 20/ 100 inch 200, 600
5/1000 inch 1500
My v 6,15/1000 inch 1000, 2000
1.3.3. Mn hnh CRT
Mt chm cc tia in t (tia m cc) pht ra t mt sng in t, vt qua cun li tia dn n v
tr xc nh trn mn hnh c ph mt lp phosphor. Ti mi v tr tng tc vi tia in t ht
phosphor s pht ln mt chm sng nh. Nhng chm sng s m dn rt nhanh nn cn c cch
no n duy tr nh trn mn hnh. Mt trong cc cch l: lp i lp li nhiu ln vic v li nh
tht nhanh bng cch hng cc tia in t tr li v tr c. Gi l lm ti (refresh CRT).
S lng ti a cc im c th hin th trn mt CRT c gi l phn gii
(Resolution). Hay phn gii l s lng cc im c th c v theo chiu ngang v
chiu dc (c xem nh tng s im theo mi hng) ca mn hnh.
Kch thc vt l ca mn hnh ho c tnh t di ca ng cho mn
hnh. Thng dao ng t 12-27 inch, hoc ln hn.
Thuc tnh khc ca mn hnh l t s phng (aspect ratio). N l t l ca cc
im dc v cc im ngang cn pht sinh cc on thng c di n v theo c hai
hng trn mn hnh. Mn hnh c t s phng khc mt, th hnh vung hin th trn
thnh hnh ch nht cn hnh trn thnh hnh ellipse.
PTIT
-
Chng 1: Tng quan v k thut ho
15
Hnh 1.7 Cng ngh mn hnh CRT
Mn hnh dng im (Raster Display): thng gp nht trong s cc dng mn hnh
s dng CRT trn cng ngh truyn hnh. Mi im trn mn hnh c gi l pixel. Cc
thng tin v nh hin th trn mn hnh c lu tr trong mt vng b nh gi l vng
m lm ti (Refresh buffer) hay l vng m khung (Frame Buffer). Vng lu tr tp
cc gi tr cng sng ca ton b cc im trn mn hnh v lun tn ti mt cch
song nh gia mi im trn mn hnh v mi phn t trong vng ny.
to ra hnh nh en trng, n gin ch cn lu thng tin ca mi Pixel l mt bt
(0,1) (xem hnh 1.8). Trong trng hp nh nhiu mu th cn nhiu bt hn, nu thng tin
mi pixel c lu bng b bt th ta c th c 2b gi tr mu phn bit cho pixel .
SONY Trinitron
CRT
NEC Hybrid
Mask
Hitachi EDP Standard Dot-trio
PTIT
-
Chng 1: Tng quan v k thut ho
16
V d m hnh ho im ngi nh v ngi sao.
Hnh 1.8 Song nh gia vng m khung v mn hnh
Trong cc mn hnh mu, ngi ta nh ngha tp cc mu lm vic trong mt bng
tra (LookUp Table - LUT). Mi phn t ca LUT c nh ngha mt b ba gi tr
(RGB) m t mt mu no . Khi cn s dng mt mu, ta ch cn ch nh s th t
(index) tng ng ca mu trong LUT, s phn t trong bng LUT chnh l s mu c
th c hin th cng mt lc trn mn hnh.
X: 0 Xmax2 mu/ 1 bit
Y: 0 Ymax16 mu/ 4 bit ;256 mu/ 8bit
216
mu/ 16 bit ; 224
mu/ 24 bit
640 x 480 x 16 Video RAM = 2MB
1024 x 1024 x 24 Video RAM = 24MB
Vic lm ti trn mn hnh dng ny c thc hin tc 60 - 80 khung/giy.
i khi tc lm ti cn c biu din bng n v Hertz (Hz - s chu k trn/giy),
trong mt chu k tng ng vi mt khung (frame). Vy tc lm ti 60
khung/giy n gin l 60 Hz. Khi t n cui mi dng qut, tia in t quay tr li
bn tri ca mn hnh bt u dng qut k tip. Vic quay tr v bn tri mn hnh sau
khi lm ti mi dng qut c gi l tia hi ngang (Horizontal retrace). V ti cui mi
frame, tia in t (tia hi dc - Vertical retrace) quay tr li gc bn tri ca mn hnh
chun b bt u frame k tip.
Hnh 1.9 Qut mnh v qut dng ca mn hnh CRT
1.3.4. Mn hnh tinh th lng (Liquid Crystal Display LCD)
Da vo cng ngh truyn nh sng qua in cc m t gia l cun dy xon. Khi cha
c t trng (cha c dng in) cun dy th nh sng truyn thng, khi c t trng
th nh sng truyn i chiu.
Interface to
host computer
Display
processo
r
(Display
commands)
(interaction data)
Keyboard
Data input 00000000000000
00000000000100
0000
00000000000000
00000000000100
0000
00000000000000
00000000011111
0000
00000000011000
00000111111111
1111
00000000111100
00000000011111
0000
00000011111111
00000000000100
0000
00001111111111
11000000000100
0000
00111111111111
11110000000000
0000
00011111111111
11100000000000
0000
00011111111111
11100000000000
0000
00011111111111
11100000000000
0000
00000000000000
00000000000000
0000
Bitmap refresh buffer
(the 1s are accentuated
for contrast)
CRT
PTIT
-
Chng 1: Tng quan v k thut ho
17
Hnh 1.10 Cng ngh truyn nh sng trong mn hnh tinh th lng
CRT Displays (mn hnh CRT)
Advantages (u im)
p ng nhanh (c phn gii cao)
Mu sc a dng (C su v rng)
Mu sc bo ho v t nhin
Cng ngh khng qu t v hon thin
Gc nhn rng, tng phn v sng cao
Disadvantages (nhc im)
Ln v nng (typ. 70x70 cm, 15 kg)
Tiu tn ngun in cao (typ. 140W)
C hi cho sc kho v trng in t v t tnh
Mn hnh nhp nhy (at 50-80 Hz)
Hnh hay b mo ti 4 gc
LCD Displays (mn hnh tinh th lng)
Advantages (u im)
Hnh dng nh, trng lng nh (approx 1/6 of
CRT, typ. 1/5 of CRT)
Tiu tn ngun thp (typ. 1/4 of CRT)
Mn hnh phng tuyt i nn khng mo ti
cc gc
Mu sc u, nh sinh ng
Khng b hiu ng in t trng
C th mn hnh va ln va rng (>20 inch)
Disadvantages (nhc im)
Gi thnh cao (presently 3x CRT)
Gc nhn hp hn (typ. +/- 50 degrees)
tng phn thp (typ. 1:100)
chi ( ngi) thp hn (typ. 200 cd/m2)
Tm tt chng:
S ra i ca ho my tnh thc s l cuc cch mng trong giao tip gia ngi dng
v my tnh. Vi lng thng tin trc quan, a dng v phong ph c truyn ti qua
hnh nh. Cc ng dng ho my tnh li cun nhiu ngi nh tnh thn thin, d
dng, kch thch kh nng sng to v tng ng k hiu sut lm vic.
PTIT
-
Chng 1: Tng quan v k thut ho
18
ho my tnh ngy nay c c ng dng rt rng ri trong nhiu lnh vc
khoa hc, k thut, ngh thut, kinh doanh, qun lCc ng dng ho rt a dng,
phong ph v pht trin lin tc khng ngng. Ngy nay, hu nh khng c chng trnh
ng dng no m khng s dng k thut ho lm tng tnh hp dn cho mnh.
Mt h thng ho bao gi cng gm hai phn chnh l phn cng v phn
mm. Phn cng bao gm cc thit b hin th (thit b xut) v cc thit b nhp. Tiu
biu nht l mn hnh, c hai loi mn hnh thng dng l CRT v LCD.
Bi tp:
1. Cu to v nguyn l hot ng ca mn hnh dng im. Nu cc khi nim
vng m khung, phn gii, t s phng.... ca mn hnh loi ny?
2. ngha v hot ng ca bng tra LUT?
3. Tnh Video Ram ca cc mn hnh ln lt c phn gii l 640x480,
1024x768, 1280x1024 m c mi pixel c m t ln lt l 8bt, 12 bit, 24
bit.
4. Nu chng ta dng cc gi tr 12bit cho mi pixel trong mt bng tham chiu
lookup table, c bao nhiu hng mc m lookup table c c?
5. Ti sao phi chun ho cc phn mm ho? Lit k cc chun ha .
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
19
CHNG 2: CC GII THUT SINH THC TH C S
2.1. CC H THNG TO TRONG HO
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 na 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.
Hai m hnh c bn ca ng dng ha l da trn mu s ha v da trn c
trng hnh hc. Trong ng dng ha da trn mu s ha th cc i tng ha
c to ra bi li cc pixel ri rc. Cc pixel ny c th uc to ra bng cc chng
trnh v, my qut, ... Cc pixel ny m t ta xc nh v tr v gi tr mu. Thun li
ca ng dng ny l d dng thay i nh bng cch thay i mu sc hay v tr ca cc
pixel, hoc di chuyn vng nh t ni ny sang ni khc. Tuy nhin, iu bt li l khng
th xem xt i tng t cc gc nhn khc nhau. ng dng ha da trn c trng
hnh hc bao gm cc i tng ha c s nh on thng, a gic,.... Chng c lu
tr bng cc m hnh v cc thuc tnh. V d : on thng c m hnh bng hai im
u v cui, c thuc tnh nh mu sc, dy. Ngi s dng khng thao tc trc tip
trn cc pixel m thao tc trn cc thnh phn hnh hc ca i tng.
2.1.1. H to thc (WCS World Coordinate System)
Mt trong nhng h ta thc thng c dng m t cc i tng trong th gii
thc l h ta Descartes. Vi h ta ny, mi im P c biu din bng mt cp
ta P(xp,yp,zp) vi xp, yp,zp R
Hnh 2.1 H ta thc.
Ox,Oy, Oz l trc to
xp ,yp,zp : to ca P
2.1.2. H to thit b (DCS Device Coordinate System)
H ta thit b (device coordinates) 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 cng c m t bi cp
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
20
ta (x,y). Tuy nhin, khc vi h ta thc l x, y N. 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. Ngoi ra, cc ta x, y ca h ta thit b ch biu din c trong mt gii
hn no ca N. V d : phn gii ca mn hnh trong ch ha l 640x480. Khi
, x(0,639) v y(0,479) (xem hnh 2.2).
Hnh 2.2 H ta trn mn hnh
2.1.3. to thit b chun (NDCS Normalized Device Coordinate System)
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 thit 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].
Nh vy, vng khng gian ca h ta chun chnh l hnh vung n v c gc tri
di (0, 0) v gc phi trn l (1, 1).
Qu trnh m t cc i tng thc nh sau (xem hnh 2.3):
Hnh 2.3 H ta trn mn hnh.
2.2. IM V ON THNG
2.2.1. im
Trong h to hai chiu (mt phng) th im c biu din P(x,y), ngoi ra n cn c tnh
cht mu sc. V d v mt im ta c hm putpixel(x,y,color).
2.2.2. on thng
Biu din tng minh: y = f(x)
Mt on thng c xc nh nu bit 2 im thuc n. Phng trnh on thng i
qua 2 im P (x1,y1) v Q(x2,y2) nh sau:
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
21
(y-y1)/( x-x1) = ( y2-y1)/( x2-x1)
(y-y1)(x2-x1)=(x-x1)(y2-y1)
(x2-x1)y=(y2-y1)x + y1(x2-x1) - x1(y2-y1)
y = ((y2-y1)/(x2-x1))x + y1 - ((y2-y1)/(x2-x1))x1
y = kx + b
k = (y2-y1)/(x2-x1) dc hay h s gc ca ng
b = y1- kx1 on chn trn trc y
y = kx (tc l khi x thay i th y thay i theo)
Hnh 2.4 V on thng PQ
Biu din khng tng minh: ax+by+c=0
Ta c : (y2-y1)x - (x2-x1)y + (x2-x1)y1 - (y2-y1)x1 = 0
(y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0
hay ax + by + c = 0
Trong a = (y2-y1), b = -(x2-x1 ) v c = x2y1 - x1y2
Biu din thng qua tham s:
P(u) = P1 + u(P2 - P1) c u [0,1]
x(u) = x1 + u( x2 - x1 )
y (u)= y1 + u( y2 - y1 )
2.3. CC GII THUT XY DNG THC TH C S
2.3.1. Gii thut v on thng thng thng
Nguyn l chung: cho mt thnh phn to x hay y bin i theo tng n v v tnh
nguyn cn li sao cho gn vi to thc nht.
Ta c 1112
12 yxxxx
yyy
Cho x thay i tm y, trong bi ny cho x1 thay i tin ti x2 ta chn n v nh
nht ca mn hnh x=1.
Gii thut thng thng:
void dline(int x1,int y1, int x2,int y2, int color) {
float y; int x;
for (x=x1; x
-
Chng 2: Cc gii thut sinh thc th c s
22
2.3.2. Gii thut Bresenham
1960 Bresenham thuc IBM tm ra cc im gn vi ng thng da trn phn gii
hu hn. Gii thut ny loi b c cc php ton chia v php ton lm trn nh ta
thy trong gii thut trn.
Xt on thng vi 0 < k < 1
Hnh 2.5 M t gii thut Bresenham (0 yi+1 = yi +1
t D = d1 - d2= 2k(xi + 1) - 2yi + 2b - 1
C k=y/x v t Pi = xD = x (d1 - d2)
Pi = x(2y/x(xi +1)- 2yi +2b-1) = 2yxi +2y -2xyi + 2bx -x
Ta tnh bc tip:
Pi+1 = 2yxi+1 +2y -2xyi+1 + 2bx -x
Pi+1 - Pi = -2x(yi+1 -yi) + 2y(xi+1 -xi)
C xi+1 =xi+1 nn:
Pi+1 - Pi = - 2x(yi+1 -yi) + 2y = 2y - 2x(yi+1 -yi)
Nu Pi 0 th yi+1 = yi +1 Pi+1 = Pi + 2y - 2x
Tnh gi tr u: P1?
P1 = x(d1 - d2) = x(2y/x(x1 +1)- 2y1 +2b-1)
= 2yx1 +2y -2xy1 + 2bx -x
C y1=kx1 + b = y/x x1 +b
P1 = 2yx1 +2y -2x((y/x)x1 +b) + 2bx -x
= 2yx1 +2y -2yx1 - 2bx + 2bx -x
P1 = 2y - x
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
23
Hnh 2.6 S khi thut ton
Bresenham cho ng thng
void Bre_line(int x1, int y1,
int x2, int y2, int c){
int x, y, dx, dy,p;
y = y1;
dx = x2 - x1;
dy = y2 - y1;
p = 2*dy - dx;
for (x=x1; x
-
Chng 2: Cc gii thut sinh thc th c s
24
Hnh 2.7 M t gii thut Midpoint
So snh hay kim tra M s c thay bng vic xt gi tr d.
d > 0 im B c chn khi yi+1 = yi
d < 0 im A c chn khi yi+1 = yi + 1
Trng hp d = 0 chng ta c th chn im bt k hoc A, hoc B.
S dng phng php biu din khng tng minh
f(x,y)= ax +by +c =0 (1) dx =x2-x1 dy =y2-y1
Biu din tng minh:
y= (dy/dx)x +B hay f(x,y)=0= xdy - ydx +Bdx (2)
So snh (1) v (2) ta c a=dy, b=-dx v c= Bdx
C f(x,y)=0 vi mi (x,y) thuc ng thng
t di=f(xi+1,yi+1/2) = a(xi+1) +b(yi +1/2) +c
Nu chn A (d0) th M s tng theo x
di+1=f(xi+2,yi+1/2) = a(xi+2) +b(yi +1/2) +c
di+1 - di = a Hay di+1 = di + dy
Tnh d1 ? d1 = f(x1+1,y1+1/2) = a(x1+1) +b(y1 +1/2) +c
= ax1 +by1 +c +a +1/2 b = f(x1,y1) +a +b/2
C (x1,y1) l im bt u, nm trn on thng nn f(x1,y1) = 0
Vy d1 = a+ b/2 = dy - dx/2
A
B
d0
A
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
25
Hnh 2.8 S khi gii thut Midpiont
cho on thng
/* Thuat toan Midpoint de ve
doan thang (0
-
Chng 2: Cc gii thut sinh thc th c s
26
Hnh 2.10 M t gii thut Bresenham
Gi s bt u xi vy xi+1 = xi +1
y2 = r2 - (xi +1)2
d1 = yi2 - y2 = yi
2 - r2 - (xi +1)2
d2 = y2 - (yi - 1)
2 = r2 - (xi +1)2 - (yi - 1)
2
pi = d1 - d2 = 2(xi +1 )2 + yi
2 + (yi - 1)2 -2r2
Xt: pi =d2) chn im nm trong ng trn yi+1 = yi +1
pi = 2(xi +1 )2 + 2yi
2 - 2yi 1 - 2r2
pi+1 = 2(xi +2 )2 + 2yi+1
2 - 2yi+1 + 1 - 2r2
pi+1 = pi + 4xi +6 + 2yi+12 - 2yi
2- 2yi+1 + 2yi
pi+1 = pi + 4xi +6 + 2(yi+12 - yi
2 )- 2(yi+1 - yi )
Nu pi =0 hay yi+1 = yi -1
pi+1 = pi + 4xi +6 - 4yi + 2 + 2
pi+1 = pi + 4(xi - yi ) + 10
Tnh P1 ? khi ng vi x1=0 v y1 =r
p1 = 2(x1 +1)2 + y1
2 + (y1 - 1)2 -2r2
= 2 + r2 + (r-1)2 - 2r2= 3 - 2r
Gii thut l:
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
27
Hnh 2.11 S khi gii thut Bresemham
cho ng trn
void Bre_circle(int xc, int yc,
int Radius, int color)
{
int x, y, p;
x = 0;
y = Radius;
p = 3 - 2 * Radius;
while (x
-
Chng 2: Cc gii thut sinh thc th c s
28
y--;
}
x++;
pc(xc,yc, x,y);
pc(xc,yc, y,x);
}
pc(xc,yc, y,y); // ve 4 diem phan giac x=y
}
void main(){
int gr_drive = DETECT, gr_mode;
initgraph(&gr_drive, &gr_mode, "");
Bresenham_Circle(getmaxx() / 2, getmaxy() / 2, 150, 4);
getch();
closegraph();
}
2.3.5. Gii thut sinh ng trn Midpoint
Phng trnh ng trn khng tng minh:
f(x,y) = x2+y2-R2 =0
Hnh 2.12 M t gii thut Midpoint
Nu f(x,y) = 0 th nm trn ng trn
f(x,y) > 0 th nm bn ngoi ng trn
f(x,y) < 0th nm bn trong ng trn
Thc hin gii thut trn 1/8 ng trn v ly i xng cho cc gc cn li.
Vi M l im gia ca AB
Vi di l gi tr ca ng trn ti mt im bt k
Ta c: di = f(xi+1,yi - 1/2) = (xi +1 )2 + (yi - 1/2)
2 - r2
di < 0 chn A th im k cn s dch chuyn theo x mt n v
di+1 = f(xi +2, yi -1/2)
= (xi +2)2 + (yi - 1/2)
2 - r2
di+1 - di = (xi +2)2 - (xi +1 )
2 = 2xi +3
di+1 = di + 2xi+3
di >= 0 chn B th im k cn s dch chuyn theo x 1 n v, theo y -1
n v
di+1 = f(xi +2, yi -3/2)
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
29
= (xi +2)2 + (yi - 3/2)
2 - r2
di+1 - di = 2xi - 2yi +5
di+1 = di + 2xi - 2yi +5
Tnh d1? ti im (0, r)
d1 =f(1,r-1/2)= 12 + (r-1/2)2 - r2
d1 = 5/4 -r
Thut ton nh sau:
Hnh 2.13 S khi gii thut Midpiont v
ng trn
void Mid_circle(int xc, int yc,
int Radius, int color)
{
int x, y, d;
x = 0;
y = Radius;
d = 1- Radius;
while (x
-
Chng 2: Cc gii thut sinh thc th c s
30
d += 2 * x + 3;
else {
d += 2 * (x-y) + 5;
y--;
}
x++; }}
2.3.6. Gii thut sinh ng ellipse
Tnh i xng c thc hin trn 4 cch
Hnh 2.14 M t gii thut sinh ng ellipse
Vector vi tip tuyn gradient =1
Ta c tip tuyn vi cung trn ( dc) = -1= dy/dx = - fx/fy
Trong fx=2b2x o hm ring phn ca f(x,y) vi x
V fy=2a2y o hm ring phn ca f(x,y) vi y
Gi s ta ch xt trn gc phn t th nht: gi s ta chia cung t (0,b) n (a,0) ti
Q, c dc -1
Trn phn 1: x thay i th y thay i theo
Trn phn 2: y thay i th x thay i theo
Xt trn phn 1:
Bt u t (0,b), bc th i (xi,yi) chn tip
A(xi+1, yi)
B(xi+1,yi-1)
Tham s quyt nh:
Pi = f(xi+1,yi-1/2) = b2(xi+1)
2 + a2(yi-1/2)2 -a2b2
Pi+1 = f(xi+1+1,yi+1-1/2) = b2(xi+1+1)
2 + a2(yi+1-1/2)2 -a2b2
Pi+1 - Pi = b2((xi+1+1)
2 - (xi+1)2 )+ a2((yi+1-1/2)
2 - (yi-1/2)2 )
Pi+1 = Pi + 2b2xi+1+ b
2 + a2((yi+1-1/2)2 - (yi-1/2)
2 )
Nu Pi
-
Chng 2: Cc gii thut sinh thc th c s
31
Nu Pi >=0 chn B
xi+1=xi+1
yi+1=yi -1
Pi+1 = Pi + 2b2xi(xi+1) +b
2 + a2((yi-1 -1/2)2 - (yi-1/2)
2 )
= Pi + 2b2xi +3b
2 +a2(-3yi +9/4 +yi -1/4)
= Pi + 2b2xi +3b
2 +a2(-2yi +2)
Hay Pi+1 = Pi + b2(2xi +3) + a
2(-2yi +2)
Tnh P1? ti (0,b)
P1 = f(x1+1,y1-1/2) = b2 + a2(b-1/2)2 -a2b2
P1 = b2 - a2b +a2/4
Xt trn phn 2:
Ta ly to d ca Pixel sau cng trong phn 1 ca ng cong tnh gi tr ban u
cho phn 2.
Gi s pixel (xk,yk) va chuyn qut cui cng ca phn 1 nhp vo bc j cho phn
2 (xj,yj).
Pixel k tip c th l:
C(xj,yj-1)
D(xj+1, yj-1)
Tham s quyt nh:
qj = f(xj+1/2,yj-1) = b2(xj+1/2)
2 + a2(yj-1)2 -a2b2
qj+1 = f(xj+1+1/2,yj+1-1) = b2(xj+1+1/2)
2 + a2(yj+1-1)2 -a2b2
qj+1 - qj = b2((xj+1+1/2)
2 - (xj+1/2)2 )+ a2((yj+1-1)
2 - (yj-1)2 )
qj+1 = qj + b2((xj+1+1/2)
2 - (xj+1/2)2 )+ a2- 2a2yj+1
Nu qj =0 chn C
yj+1=yj -1
xj+1= xj
qj+1 = qj + a2- 2a2(yj-1)
Hay qj+1 = qj + a2(3 - 2yj )
Tnh q1?
q1 = f(xk+1/2,yk -1) = b2(xk+1/2)
2 + a2(yk-1)2 -a2b2
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
32
Cu hi: lc ly i xng 4 cch tm 1 Ellipse hon chnh t cc to pixel
c to ra vi cung phn t th 1. C hin tng overstrike xy ra hay khng?
Tr li: hin tng overstrike xy ra ti:
(0,b); (0,-b); (a,0); (-a,0)
Thut ton
#include
#include
#define ROUND(a) ((long)(a+0.5))
void plot(int xc, int yc, int x, int y, int color){
putpixel(xc+x, yc+y, color);
putpixel(xc-x, yc+y, color);
putpixel(xc+x, yc-y, color);
putpixel(xc-x, yc-y, color);
}
void Mid_ellipse(int xc, int yc, int a, int b, int color){
long x, y, fx, fy, a2, b2, p;
x = 0;
y = b;
a2 = a * a; //a2
b2 = b * b; // b2
fx = 0;
fy = 2 * a2 * y; // 2a2y
plot(xc, yc, x,y, color);
p = ROUND(b2-(a2*b)+(0.25*a)); // p=b2 - a2b + a2/4
while (fx < fy){
x++;
fx += 2*b2; //2b2
if (p0){
y--;
fy -= 2*a2; // 2a2
if (p>=0)
p+=a2*(3 - 2*y); //p =p + a2(3-2y)
else{
x++;
fx += 2*b2; // 2b2
p += b2*(2*x+2) + a2*(-2*y +3); //p=p + b2(2x +2) +a2(-2y +3)
}
plot(xc, yc, x, y, color);
}
}
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
33
void main(){
int gr_drive = DETECT, gr_mode;
initgraph(&gr_drive, &gr_mode, "");
Mid_Ellipse(getmaxx() / 2, getmaxy() / 2, 150, 80, 4);
getch();
closegraph();
}
2.3.7. Gii thut sinh k t
Trong mn hnh text, truy xut cc k t trn mn hnh c h tr bi phn cng. Cc k
t c lu tr trong b nh ROM, di dng bitmap hay cc ma trn nh. Phn cng s
a k t ln mn hnh ti v tr xc nh, tnh ton cun trang v xung dng.
Trong ho:
Vector: nh ngha cc k t theo nhng ng cong mm bao ngoi ca chng,
tn km v mt tnh ton.
Hnh 2.15 K t vector
u nhc im:
- phc tp (tnh ton phng trnh)
- lu tr gn nh
- cc php bin i da vo cng thc bin i
- Kch thc ph thuc vo mi trng (khng c kch
thc c nh)
Bitmap: nh ngha mi k t vi 1 font ch cho trc l 1 nh bitmap hnh ch
nht nh.
Hnh 2.16 K t bitmap
- n gin trong vic sinh k t
(copypixel)
- Lu tr ln
- Cc php bin i(I,B,U, scale) i hi
lu tr thm
- Kch thc khng i
bitmap: s dng hm copypixel (copy im nh) c lu tr trong b nh c nh
- Fontcache, a vo b nh m hin th. Mi 1 k t nh 1 ma trn 2 chiu ca
cc im nh - mt n.
Hm_sinh_ki_tu (mask)
{xmax, ymax, xmin, ymin //cc gii hn ca mt n
xo, yo //im gc trn b m hin th
for (i=ymin;i< ymax ;i++)
for (j=xmin; j< xmax ; j++)
if (mask(i,j) 0)
copypixel ((mask(i,j), pixel(xo+j, yo+i));
}
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
34
K t fontcache bitmap n gin ca SRGP lu tr cc k t theo chui lin tip
nhau trong b nh. Nhng rng cc k t khc nhau, truy nhp cc fontcache thng
qua bn ghi v cu trc cho tng k t.
Cu trc font ch
typedef struct {
int leftx;
int width;
} Charlocation; //V tr ca text
struct {
int CacheId;
int Height; // rng ch
int CharSpace; // Khong cch gia cc k t
Charlocation Table [128]; //bng ch ci
} fontcache;
K t vector
Xy dng theo phng php nh ngha cc k t bi ng cong mm bao ngoi
ca chng d dng thay i kch thc ca k t cng nh ni suy ra cc dng ca k t.
Hon ton c lp vi thit b.
Ti u nht: lu tr font di dng ng bao. Khi cc chng trnh ng dng s
dng l bitmap tng ng vi chng.
2.3.8. Gii thut sinh a gic (Polygon)
a. Thut gii v ng bao a gic
Vic biu din a gic thng qua:
Tp cc on thng
Tp cc im thuc a gic
Cc loi a gic:
Hnh 2.17 Cc loi a gic
a gic li: l a gic c ng thng ni bt k 2 im bn trong no ca a gic
u nm trn trong a gic. a gic khng li l a gic lm.
Cc ng thng bao a gic - cnh ca a gic. Cc im giao ca cnh - nh ca
a gic. Thng tin cn thit xc nh a gic:
S cnh
To cc nh ca a gic
Gii thut:
Polygon (arrayx, arrayy,n)
Tam gic li lm t ct min
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
35
{ if (n
-
Chng 2: Cc gii thut sinh thc th c s
36
Gii thut dng qut (scanline) cho vic t mu vng
Gii thut da trn tng s dng mt ng qut trn trc y ca mn hnh i t
ymax n ymin ca vng cn c t mu.
Vi mi gi tr y = yi ng thng qut ct cc ng bin ca vng cn t to ra
on thng y = yi vi x [xmin, xmax]. Trn on thng chng ta t mu cc im tng
ng i t xmin n xmax c cc im t (xi, yi) y = yi.
n gin nht v d t mu hnh ch nht:
void scanline_rectg(x1,y1,x2,y2,c){ int i,j;
for(i=y1; i>=y2; i--)
for(j=x1; j
-
Chng 2: Cc gii thut sinh thc th c s
37
Nu s giao im tm c gia cc cnh a gic v dng qut l l (iu ny
ch xy ra khi dng qut s i qua cc nh ca a gic) khi ta s tnh s
im l 2 th c th t khng chnh xc. Ngoi ra, vic tm giao im ca
dng qut vi cc cnh nm ngang l trng hp t bit...
gii quyt cc vn trn ta c cc phng php sau:
Danh sch cc cnh kch hot (AET - Active Edge Table)
Mi cnh ca a gic c xy dng t 2 nh k nhau Pi(xi,yi) v Pi+1(xi+1,yi+1) gm
cc thng tin sau:
ymin: gi tr nh nht trong 2 nh ca cnh
xIntersect: honh giao im ca cnh vi dng qut hin ang xt
DxPerScan: gi tr 1/m (m l h s gc ca cnh)
DeltaY: khong cch t dng qut hin hnh ti nh ymax
Danh sch cc cnh kch hot AET: danh sch ny dng lu cc tp cnh ca a
gic c th ct ng vi dng qut hin hnh v tp cc im giao tng ng. N c mt s
c im:
Cc cnh trong danh sch c sp xp theo th t tng dn ca cc honh giao
im c th t mu cc on giao mt cch d dng.
Thay i ng vi mi dng qut ang xt, do danh sch ny s c cp nht lin
tc trong qu trnh thc hin thut ton. u tin ta c danh dch cha ton b cc cnh
ca a gic gi l ET (Edge Table) c sp xp theo th t tng dn ca ymin, ri sau mi
ln dng qut thay i s di chuyn cc cnh trong ET tho iu kin sang AET.
Mt dng qut y=k ch ct 1 cnh ca a gic khi v ch khi k>=ymin v y>0. Chnh
v vy m vi cc t chc ca ET (sp theo th t tng dn ca ymin) iu kin chuyn
cc cnh t ET sang AET s l k>=ymin; v iu kin loi mt cnh ra khi AET l
y
-
Chng 2: Cc gii thut sinh thc th c s
38
Hnh 2.20 Qui tc tnh: mt giao im (A) v hai giao im (B)
Hnh 2.21 lu thut ton scan - line
Gii thut t vng kn theo mu (Pattern filling)
object (nh mu)
A[m,n]
Vn : xc nh im mu v nhiu im tng ng vi chng trn mn hnh.
Phng php 1:
Tm im neo u tri nht hng u tin ca a gic.
Pi Pi
Pi
Pi
Pi-1
Pi-1
Pi-1
Pi-1 Pi+1
Pi+1
Pi+1
Pi+1
A B
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
39
Nhc im: khng c im nh v tr phn bit mt cch r rng cho mu t trong
mt a gic bt k.
Phng php 2: s dng cho SRGP
Ly im neo gc to , gi s ta coi c mn hnh c lt bi mu t cc thc
th l cc ng bin cho cc vng t, vy nu ngoi cc thc th cc mu t khng c
php th hin.
Hnh 2.22 Phng php ly im neo
Tm tt chng:
c th hin th cc i tng ho trn thit b hin th dng im m in hnh l
mn hnh, cn phi c mt qu trnh chuyn cc m t hnh hc ca cc i tng ny
trong h to th gii thc v dy cc pixel tng ng gn vi chng nht trn to
thit b. Qu trnh ny cn c gi l qu trnh chuyn i bng dng qut. Yu cu quan
trng nht i vi qu trnh ny ngoi vic phi cho kt qu xp x tt nht cn phi cho
tc ti u.
Ba cch tip cn v on thng gm thut ton DDA, thut ton Bresenham, thut
ton Midpiont u tp trung vo vic a ra cch chn mt trong hai im nguyn k tip
khi bit im nguyn bc trc. Thut ton DDA n gin ch dng thao tc lm
trn nn phi dng cc php ton trn s thc, trong khi thut ton Bresenham v
Midpiont a ra cch chn phc tp hn nhng cho kt qu tt hn. Tng t dng hai
gii thut Bresenham v Midpiont v ng trn v ellpise v mt s ng cong
khc.
Cc thut ton t mu vng gm thut ton loang ( qui) hay thut ton dng qut.
C th t cng mt mu hay t theo mu.
Bi tp:
1. Ch nh cc v tr mnh no s c chn bi thut ton Bresenham lc chuyn
qut mt ng thng t to pixel (1,1) sang to pixel (8,5).
2. Dng gii thut Bresenham vit hm sinh on thng (xt tt c cc trng hp ca
h s gc).
3. Dng gii thut Midpiont vit hm sinh on thng (xt tt c cc trng hp ca
h s gc).
x
y
neo
neo
x
y
PTIT
-
Chng 2: Cc gii thut sinh thc th c s
40
4. Dng gii thut Midpiont vit hm sinh ng trn (to tm (xc,yc) v bn knh
r).
5. Dng gii thut Midpiont vit hm sinh ng ellipse (to tm (xc,yc) v bn
knh rx v ry ).
6. T hm v ng thng thit k v ci t hm v cc hnh sau: hnh ch nht, a
gic, ngi nh....
7. Vit gii thut tm giao im hai on thng.
8. Vit chng trnh t mu Floodfill (s dng qui vi 4-connected).
9. a ra lu thut ton t mu theo dng qut.Vit thut ton t mu scan-line.
PTIT
-
Chng 3: Cc php bin i ho
41
CHNG 3: CC PHP BIN I HO
3.1. CC PHP BIN I HNH HC HAI CHIU
3.1.1. Php bin i Affine (Affine Transformations)
Php bin i Affine l php bin i tuyn tnh ta im c trng ca i tng
thnh tp tng ng cc im mi to ra cc hiu ng cho ton i tng.
V d: php bin i ta vi ch 2 im u cui ca on thng to thnh 2 im
mi m khi ni chng vi nhau to thnh on thng mi. Cc im nm trn on thng
s c kt qu l im nm trn on thng mi vi cng php bin i thng qua php ni
suy.
3.1.2. Cc php bin i i tng
Cc i tng phng trong ho 2 chiu m t tp cc im phng. im trong ho 2
chiu biu din thng qua to , vit di dng ma trn gi l vect v tr.
C 2 dng biu din:
Mt hng v 2 ct: yx
Hai hng v 1 ct:
y
x
Trong gio trnh chng ta chn biu din im l ma trn hng (mt hng v 2 ct).
Tp cc im c lu tr trong my tnh s c vit di dng ma trn v tr ca
chng. Chng c th l ng thng, ng cong, nh....tht d dng kim sot cc i
tng thng qua cc php bin i chng, thc cht cc php bin i ho ny c
m t di dng cc ma trn.
3.1.2.1. Php bin i v tr
Gi s ta c im P = [ x y ] trong mt phng vi [x y] l vect v tr ca P, k hiu l
[P]. Gi ma trn T l ma trn bin i s c dng:
Hnh 3.1 Php bin i v tr
Ta c im P sau php bin i thnh P c gi tr [x y].
Thc thi php bin i ng trn 1 im nh s ng vi ton b i tng.
dc
baT
y
x
P P
PTIT
-
Chng 3: Cc php bin i ho
42
Hay ta c: x = ax + cy
y = bx + dy
Xt ma trn bin i T:
Php bt bin:
Khi : a = d =1 v b = c = 0 v ma trn cho php bt bin l:
''10
01** yxyxyxTX
Vy x=x v y = y hay l P = P chng t bt bin qua php bin i.
Php bin i t l (scaling):
Nu d=1 v b = c = 0 th ma trn bin i l:
10
0aT
x = ax
y = y
P dch chuyn theo trc x vi t l a xc nh.
Nu b = c =0 th ma trn bin i l:
d
aT
0
0
''0
0** yxdyax
d
ayxTX
Hay tng qut hn gi Sx, Sy ln lt l t l theo trc x v trc y, th ma trn t l
s l:
Sy
SxT
0
0
Khi Sx , Sy >1 gi l php phng to
Khi Sx, Sy
-
Chng 3: Cc php bin i ho
43
i xng qua y i xng qua x i xng qua gc to
Hnh 3.2 Cc php i xng trn 2D
Php bin dng
Khi a = d = 1 th to ca P ph thuc vo thay i ca b v c
Xt c = 0
Hnh 3.3 Php bin dng theo trc oy
C P khng thay i gi tr to x, cn y thay i ph thuc vo c b v x
Xt b = 0
''1
01**X yxycyx
cyxT
Hnh 3.4 Php bin dng theo trc ox
Ch : im gc to P[0 0] bt bin vi mi php bin i
Php quay
C >0 ngc chiu kim ng h
P P
Sx=-1 P
P
Sy=-1
P
P
Sx=Sy=-1
''10
1** yxybxx
byxTX
P
P
y=bx+y
bx
P P
cy x=x+cy
PTIT
-
Chng 3: Cc php bin i ho
44
Hnh 3.5 Php quay trn 2D
Ta c:
P[x y]= [rcos rsin]
P[x y] = [rcos(+) rsin(+)]
P[x y] = [r(coscos - sinsin)r(cossin + sincos)]
= [(xcos - ysin)(xsin + ycos)]
Vy: x = xcos - ysin
y = xsin + ycos
Ta c:
[X]= [X]* [T] = [(xcos - ysin) (xsin + ycos)]
Vy T tng qut khi quay i tng quanh gc to 1 gc bt k l:
cossin
sincosT
3.1.2.2. Php bin i tng hp
Phng php bin i s dng php nhn ma trn vi to im thng qua cc vect v
tr tht s hiu qu v em li cng c mnh v ho cho ngi s dng. Nhng thc t
cc thao tc thng cn khng ch mt m nhiu php bin i khc nhau. Ta c php
hon v khi nhn ma trn l khng thc hin nhng kh nng t hp cc php nhn li cho
php to ra mt ma trn bin i duy nht. Lm gim bt ng k khi lng tnh ton
trong qu trnh bin i, lm tng tc cc chng trnh ng dng v to iu kin cho vic
qun l cc bin i trong ng dng.
Gi s ta c P vi [X] = [x y], c hai php bin i [T1] quay quanh gc to 900:
01
101T
V [T2] ly i xng P qua gc to :
10
012T
Ta c:
PTIT
-
Chng 3: Cc php bin i ho
45
xyyxTXX
01
10*1*'
xyxyTXX
10
01*2*'"
Gi s [T3] l ma trn tng hp [T1] v [T2]
xyyxTXX
01
10*3**
Kt lun: bin i qua nhiu ma trn thnh phn s tng ng vi php bin i
qua ma trn tng hp t cc php bin i .
3.2. TA NG NHT V CC PHP BIN I
3.2.1. To ng nht
Ta xt php tnh tin:
x= x + dx
y = y + dy
Vy P = P + [T]
dy
dxT
Vy php bin i tng hp:
P=P*[T] + [T] = (P + [T]) [T] + [T]
R rng khng th biu din thng qua ma trn tng hp 2 chiu 2x2 c. Php
tnh tin a ra ma trn bin i tng hp l khng th.
Th no l phng php biu din to ng nht ? l phng php biu din m
rng thng qua to ng nht ca cc vect v tr khng ng nht [x y] l ng dng
ca php bin i hnh hc m to im c m t di ma trn [x* y* h] vi
x=x*/h, y=y*/h c h l mt s thc tu . Vy mt vect v tr [xy] bt k trn mt phng
xoy bng tp v s cc im ng nht [hx hyh]. V d: [2 5] s biu din bng [4102],
[6153]..... n gin nht l [251].
Vy to ng nht ca vect v tr [X]= [ x y 1]. Khi ma trn bin i s l
3x3:
1
0
0
dydx
dc
ba
T
1
0
0
*1.'
dydx
dc
ba
yxTPP
x=ax + cy +dx
PTIT
-
Chng 3: Cc php bin i ho
46
y=bx + dy + dy
[X]= [x y1]
Trong dx, dy l khong tnh tin theo trc x v y.
3.2.2. Php bin i vi to ng nht
Ma trn bin i ng nht
Php tnh tin
C a=d=1 v b=c=0
1
010
001
nm
T
Ch : trong mt phng to , mi im k c gc to u c th bin i.
Php bin i tng hp ca hai php tnh tin theo khong [m1 n1] v [m2n2] bng
php bin i duy nht mt khong c gi tr bng tng ca hai php bin i
[m1+m2n1+n2].
Tht vy:
12121
010
001
122
010
001
*
111
010
001
2*1
nnmmnmnm
TT
Php t l
Tng t ma` trn t l:
100
00
00
Sy
Sx
Ts
Ch : Php bin i tng hp ca hai php t l Sx1, Sx2 v Sy1,Sy2 bng php
bin i duy nht c t l l tch hai php bin i trn Sx1*Sx2, Sy1*Sy2.
Ci t c/c++ cho php t l on thng to t (x1,y1) n (x2,y2):
x11=int(x1*1.1); x22=int(x2*0.9);
y11=int(y1*1.1); y22=int(y2*0.9);
Php quay
1
0
0
][
nm
dc
ba
T
]1[
1
010
001
]1[]1''[ nymx
nm
yxyx
]1..[
100
00
00
]1[]1''[ SyySxxSy
Sx
yxyx
PTIT
-
Chng 3: Cc php bin i ho
47
Hnh 3.6 Php quay
Ch : Php bin i tng hp ca hai php quay 1 v 2 l
Ci t c/c++ cho php quay tam gic quanh gc to :
void quay(int &x,int &y,float
goc){
goc=goc*3.14/180;
int t=x;
x=x*cos(goc)-y*sin(goc);
y=t*sin(goc)+y*cos(goc); }
tamgiac(x1,y1,x2,y2,x3,y3,4);
quay(x1,y1,goc);
quay(x2,y2,goc);
quay(x3,y3,goc);
tamgiac(x1,y1,x2,y2,x3,y3,mau);
3.2.3. Ci t c/c++ cho php quay tam gic quanh 1 im (xq,yq):
#define RADS 0.017453293
void Quay(int x1,int y1, int x2, int y2, int x3, int y3,int xq, int yq,float
goc ){
float x11,y11,x22,y22,x33,y33;
float anpha = RADS *goc;
x11=int(x1*cos(anpha)-y1*sin(anpha)+(1-cos(anpha))*xq + sin(anpha)*yq);
y11=int(x1*sin(anpha)+y1*cos(anpha)-sin(anpha)*xq+(1 - cos(anpha))*yq);
x22=int(x2*cos(anpha)-y2*sin(anpha)+(1-cos(anpha))*xq + sin(anpha)*yq);
y22=int(x2*sin(anpha)+y2*cos(anpha)-sin(anpha)*xq+(1-cos(anpha))*yq);
x33=int(x3*cos(anpha)-y3*sin(anpha)+(1-cos(anpha))*xq + sin(anpha)*yq);
y33=int(x3*sin(anpha)+y3*cos(anpha)-sin(anpha)*xq+(1 - cos(anpha))*yq);
tamgiac(x11,y11,x22,y22,x33,y33,12);
}
1)cossin()sincos(
100
0cossin
0sincos
]1[]1''[
yxyx
yxyx
y
( x, y )
x
( x, y )
PTIT
-
Chng 3: Cc php bin i ho
48
3.3. CC PHP BIN I HNH HC BA CHIU
Cc php bin i chuyn v - translation, t l-scaling v quay-rotation s dng trong
khng gian 2D u c th m rng trong khng gian 3D.
3.3.1.Biu din im trong khng gian 3 chiu
[x* y* z* h] hay[x*/h y*/hz*/h 1]
Vit gn hn:[x y z 1]
Ma trn bin i tng qut trong khng gian 3D vi ta ng nht (4x4)
Hay
1
0
0
0
dzdydx
hig
fed
cba
T
3.3.2. Php tnh tin
y l php bin i n gin nht, m rng t php bin i trong khng gian 2D ta c:
[X'] = [ X ] . [ T(dx,dy,dz) ]
[ x' y' z' 1 ] = [ x y z 1 ].[ T(dx,dy,dz) ]
= [ x+dx y+dy z+dz 1 ]
Hnh 3.7 Php tnh tin trn 3D
3.3.3. Php t l Tng t trong 2D ta c php t l trong 3D l :
1000
0Sz00
000
000
Sy
Sx
Ts
Ta c Sx,Sy v Sz l cc h s t l trn cc trc to
[X] = [X] . [T(Sx,Sy,Sz) ]
= [x.Sxy.Sy z.Sz 1]
Hnh 3.8 Php t l trn 3D
snml
rjig
qfed
pcba
][T
1
0100
0010
0001
)],,([
dzdydx
dzdydxT
1000
000
000
000
]1[]1'''[Sz
Sy
Sx
zyxzyx
PTIT
-
Chng 3: Cc php bin i ho
49
3.3.4. Php bin dng
Ta c tt c cc phn t nm trn ng cho chnh bng 1
Cc phn t chiu v tnh tin bng 0
[X] = [X] . [Tsh]
Hnh 3.9 Cc php bin dng trn 3D
3.3.5. Php ly i xng
i xng qua trc ox i xng qua mt xoy i xng qua gc O
1000
0100
0010
0001
Mox
1000
0100
0010
0001
Mxoy
1000
0100
0010
0001
Mo
3.3.6. Php quay 3 chiu 3.3.6.1. Quay quanh cc trc to n gin nht l php quay quanh cc trc to ox,oy v oz vi gc dng:
Hnh 3.10 Xc nh gc quay dng trn 3 trc to
Khi ny php quay li a v php quay khng gian 2D quanh gc to
Quay quanh trc oz:
1000
01
01
01
]1[]1'''[ig
fd
cb
zyxzyx
]1[ zfycxizybxgzydx
PTIT
-
Chng 3: Cc php bin i ho
50
Hnh 3.11 Quay quanh trc oz
zz
yxy
yxx
'
'
'
cossin
sincos
Quay quanh trc ox:
Hnh 3.12 quay quanh trc ox
cossin
sincos'
'
'
zyz
zyy
xx
Quay quanh trc oy:
Hnh 3.13 quay quanh trc oy
cossin
sincos
'
'
'
zxz
yy
zxx
Ghi ch: php quay trong khng gian 3D s dng php nhn ma trn bin i khng
c kh nng hon v cc ma trn.
3.3.6.2. Quay quanh mt trc bt k song song vi cc trc ta
u tin chuyn dch i tng cho n khi to a phng ca i tng
trng vi trc to m trc a phng song song.
Quay i tng xung quanh trc ca n (chnh l trc to )
a i tng v to trc khi dch chuyn ta c ma trn tng hp l:
[T//] = [Ttt-].[T].[Ttt+]
1000
0100
00cossin
00sincos
][
Tz
1000
0cossin0
0sincos0
0001
][
Tx
1000
0cos0sin
0010
0sin0cos
][
TyPTIT
-
Chng 3: Cc php bin i ho
51
V d: quay i tng xung quanh mt trc // vi trc z vi khong dch chuyn l
x,y v gc quay l .
Gii:
10)sin)cos1(sin)cos1(
0100
00cossin
00sincos
10
0100
0010
0001
.
10)cossin()sincos(
0000
00cossin
00sincos
10
0100
0010
0001
.
1000
0100
00cossin
00sincos
.
10
0100
0010
0001
..//
xyyx
yxyxyx
yxyx
TTTT ttttz
3.3.6.3. Quay i tng quanh mt trc bt k
Xt bi ton sau, hy tm ma trn bin i a mt trc bt k c hng: V=ax
+ by + cz v trng vi trc oz theo chiu dng.
Hnh 3.14 Quay i tng quanh mt trc
bt k i qua tm
Ta thc hin cc bc nh sau:
Quay V quanh trc y mt gc (-) sao cho
nm trn mt phng (y, z) c V1
Quay V1 quanh trc x mt gc sao cho
trng vi trc z c V2
PTIT
-
Chng 3: Cc php bin i ho
52
Bc 1:
Hnh 3.15 Quay V=ax+by+cz quanh trc oy
Ta tnh ?
Chiu V trn mt phng (x,z) c V. Ta c:
22
sinca
a
22
cosca
c
1000
00
0010
00
1000
0cos0)sin(
0010
0)sin(0cos
2222
2222
ca
c
ca
a
ca
a
ca
c
T y
Vect: 221 ,,0( cabV
Bc 2:
Hnh 3.16 Quay vector V1 quanh trc ox
222sin
cba
b
222
22
coscba
ca
y
V
V
a
a
b
c x
z
y
V V1
a
a
b
c x
z
V2
PTIT
-
Chng 3: Cc php bin i ho
53
1000
00
00
0001
1000
0cossin0
0sincos0
0001
222
22
222
222222
22
cba
ca
cba
b
cba
b
cba
ca
T x
Vy [Tv] = [T-y]. [Tx]
Nu a ngc li ta c:
yxxyv TTTTT .. 11
Cho trc quay L (vect V = ax + by + cz) v mt im P nm trn trc L. Hy
tm ma trn bin i quay i tng xung quanh trc L mt gc .
Gii:
Ta thc hin nh sau:
1. Tnh tin P v gc ta .
2. Chuyn trc L v trng vi trc OZ
3. Quay i tng xung quanh trc OZ mt gc .
4. Thc hin ngc li 2,1
Vy:
ttvZvttL TTTTTT .... 1,, 3.3.7. Ci t bng c/c++ nh sau:
i 3D sang 2D
#define RADS 0.017453293
struct point{
int x,y,z;
}
point Diem3d(int &x, int &y, int &z) {
point p;
p.x = int(getmaxx()/2+ y - x*cos(RADS*45));
p.y = int(getmaxy()/2 - z + x*cos(RADS*45));
return p;
}
Quay quanh cc trc to
point quay(int x,int y,int z,float goc,int truc){
point p;
if (truc==1){ //Quay quanh OX
p.y=y*cos(RADS*goc)-z*sin(RADS*goc);
p.z=y*sin(RADS*goc)+z*cos(RADS*goc);
p.x=x;
}
if (truc==2){ //Quay quanh OY
p.x=x*cos(RADS*goc)+z*sin(RADS*goc);
p.z=-x*sin(RADS*goc)+z*cos(RADS*goc);
p.y=y;
PTIT
-
Chng 3: Cc php bin i ho
54
}
if (truc==3){
p.x=x*cos(RADS*goc)-y*sin(RADS*goc);
p.y=x*sin(RADS*goc)+y*cos(RADS*goc);
p.z=z;
}
return p;
}
Tm tt:
Cc php bin i hnh hc cho php d dng thao tc trn cc i tng c to ra.
Chng lm thay i m t v to ca cc i tng, t i tng s c thay i
v hng, kch thc v hnh dng. Cc php bin i hnh hc c s bao gm tnh tin,
quay v bin i t l. Ngoi ra mt s php bin i khc cng thng c p dng
l php i xng v bin dng.
Cc php bin i hnh hc 2D u c biu din di dng ma trn ng nht 3x3
tin cho vic thc hin cc thao tc kt hp gia chng. Trong h to ng nht, to
ca mt im c m t bi mt vector dng bao gm ba gi tr, hai gi tr u tng
ng vi to Descartes ca im , v gi tr th ba l 1. Vi cch biu din ny, ma
trn ca php bin i c c t s kt hp ca cc php bin i c s s bng tch ca
cc ma trn ca cc php bin i thnh phn.
Php bin i hnh hc 3D l s m rng ca php bin i 2D. Tng t n cng
c cc php: tnh tin, t l, bin dng v quay. Phc tp nht l php quay, nn chng ta
kho st ln lt t n gin n phc tp: quay i tng quanh cc trc to , quanh 1
trc song song vi trc to , quanh 1 trc bt k....Do kho st cc php bin i affine
vi biu din dng ma trn ng nht (4x4 vi 3D) nn cng vic kh n gin v nht
qun.
Lu php tnh tin v quay c chung thuc tnh l: sau khi bin i hnh dng v
kch thc ca i tng khng thay i m chng ch b thay i v tr v nh hng
trong khng gian.
Bi tp:
1.
a. Hy tm ma trn biu th php quay mt i tng mt gc 600 quanh gc
to .
b. Tm to mi ca P(-3,3) sau khi thc hin php quay trn?
2.
a. Hy vit dng tng qut ca ma trn iu chnh t l tng ng vi mt
im c nh Q(a,b)?
b. Phng ln t gic c cc nh A(0,0), B(1,3), C(4,2) v D(3,1) ln hai ln
kch thc ban u ca n trong khi vn gi im D(3,1)?
3.
PTIT
-
Chng 3: Cc php bin i ho
55
a. M t php bin i nhm quay 1 i tng mt gc xung quanh mt
tm c nh Q(a,b)?
b. Thc hin php quay tam gic ABC c A(0,0), B(1,1) v C(4,2) mt gc
450 xung quanh im (-1, -1)?
4. Cho ABC c cc to nh l A(2,2), B(3,1) v C(4,3). Xc nh ma trn bin
i affine bin i tam gic ny thnh ABC bit nh A(4,3), B(4,5) v C(7,3).
5.
a. hy tm mt ma trn dnh cho php phn chiu i xng gng xung quanh
mt ng thng G vi dc m v tung gc (0,g)?
b. To phn x i xng gng a gic m nh ca n: A(-1,0), B(0,-2),
C(1,0) v D(0,2) xung quanh ng G trong cc trng hp sau:
i. x=2
ii. y=3
iii. y=2x+3
6. Cho hnh chp ABCD c cc to A(0,0,0), B(1,0,0), C(0,1,0) v D(0,0,1). Quay
hnh chp quanh ng L (v=x+y+z) i qua im C mt gc 450. Tm to hnh
chp mi.
7.
a. Hy tm php bin i dnh cho php i xng gng tng ng vi mt
mt phng cho (c vector php tuyn M, trn c mt im P).
b. p dng tm ma trn cho php i xng gng vi mt phng i qua gc
to v vector php tuyn c hng M=x+y+z.
8. Vit chng trnh vi i tng (ng thng, tam gic, t gic...) trong mt
phng 2D
a. Dch chuyn (dng cc phm dch chuyn)
x
y P
P
G
0
g
x
z
y
M
Q
Q
PTIT
-
Chng 3: Cc php bin i ho
56
b. Phng ln, thu nh (dng phm dch chuyn hay g vo t bn phm)
c. Quay vi gc quay c g vo t bn phm (gc g vo c tnh bng
)
9. Vit chng trnh vi i tng (hnh kim cng, hnh lp phng ...) trong 3D
a. Dch chuyn
b. Phng ln, thu nh
c. Quay mt gc
PTIT
-
Chng 4: Cc gii thut ho c s
57
CHNG 4: CC GII THUT HO C S
4.1. M HNH CHUYN I GIA BA H THNG TO
4.1.1. M hnh chuyn i
H ta Descartes l d thch ng cho cc chng trnh ng dng miu t cc hnh
nh (picture) trn h ta th gii thc (World Coordinate System). Cc hnh nh c
nh ngha trn h ta th gii thc ny sau c h ha v ln cc h ta
thit b (Device Coordinate). 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 v xa b nhng phn bn ngoi vng c chn.
Hnh 4.1 WCS
World Coordinate System
Hnh 4.2 NDCS Normalized
Device Coordinate System
Hnh 4.3 DCS
Device Coordinate System
Qui trnh chuyn i cc i tng trong WCS sang NDCS c gi l
php nh x ca s sang khung nhn hay php bin i chun ho (Window
to Viewport mapping or Normalization Transformation)
Qui trnh c th p cc to thit b hin th chun ho sang cc thit b ri
rc c gi l php bin i trm lm vic (Workstation Transformation)
4.1.2. Php nh x t ca s vo khung nhn
Hnh 4.4 i tng trong ca s Hnh 4.5 i tng ti khung nhn
Mt ca s (window) c ch nh bi bn to thc (WCS): Xwmin,
Xwmax, Ywmin, Ywmax
PTIT
-
Chng 4: Cc gii thut ho c s
58
Mt khung nhn (viewport) c m t bi bn to thit b chun ho
(NDCS): Xvmin, Xvmax, Yvmin, Yvmax
Mc ch ca php nh x ny l chuyn i cc to thc (Xw,Yw) ca mt im
tu sang thit b chun ho tng ng (Xv,Yv). gi li khong cch ca im trong
khung nhn bng vi khong cch ca im trong ca s, vi yu cu:
minmax
min
minmax
max
ww
ww
vv
vv
xx
xx
xx
xx
minmax
min
minmax
max
ww
ww
vv
vv
yy
yy
yy
yy
Ta c:
maxmin
minmax
minmax )()(
)(vww
ww
vvv xxx
xx
xxx
maxmin
minmax
minmax )()(
)(vww
ww
vvv yyy
yy
yyy
Ta c tm gi tr trn xc nh ca s v khung nhn u l hng s. Vy chng
ta hon ton tnh c (Xv,Yv) t (Xw, Yw) qua php bin i:
[XvYv1] = [XwYw 1]. [T]
[T] = [Ttt-]. [Ts] . [Ttt]
Ma trn tnh tin theo window:
1
010
001
ww
tt
yx
T
Ma trn chuyn i t l window vo viewport l:
100
00
00
minmax
minmax
minmax
minmax
ww
vv
ww
vv
syy
yy
xx
xx
T
Ma trn tnh tin theo to viewport:
1
010
001
vv
tt
yx
T
Vy ma trn bin i t ca s vo khung nhn:
PTIT
-
Chng 4: Cc gii thut ho c s
59
1..
00
00
minmax
minmaxminmin
minmax
minmaxminmin
minmax
minmax
minmax
minmax
ww
vvwv
ww
vvwv
ww
vv
ww
vv
yy
yyyy
xx
xxxx
yy
yy
xx
xx
T
4.2. CC GII THUT XN TI (CLIPPING)
4.2.1. Khi nim
Xn ta l tin trnh xc nh cc im ca mt i tng nm trong hay ngoi ca s hin
th. Nm trong c hin th, nm ngoi loi b.
Vic loi tng im nh ca i tng thng chm nht l khi i tng m phn
ln nm ngoi ca s hin th.
4.2.2. Clipping im
Gi s (x,y) l to ca mt im, vy im c hin th khi tho mn:
Xmin
-
Chng 4: Cc gii thut ho c s
60
Hnh 4.6 Mt phng m trong cc trng hp clipping on thng
M vng c xc nh theo 9 vng ca mt phng m cc im cui nm vo .
Mt bt c ci t true (1) hoc false (0).
Bt 1: im cui bn trn ca s = sign(y-ymax)
Bt 2: im cui bn di ca s = sign(ymin-y)
Bt 3: im cui bn phi ca s = sign(x-xmax)
Bt 4: im cui bn tri ca s = sign(xmin-x)
Qui c sign(a) = 1 nu a dng
= 0 nu a m
Bc 2 :Qu trnh kim tra v tr ca on thng so vi ca s. Tt c im u v im
cui ca on thng c m.
Gii thut nh sau :
Bc 1 :Nu m ca P1 hoc P2 u = 0000 th ton b on thng thuc phn hin th.
If (P1.M OR P2.M == 0000) then c on thng thuc ca s hin th
Bc 2 : Nu m ca P1 v P2 c cng mt v tr m P1 v P2 => cng pha
If (P1.M AND P2.M != 0000) then 2 im nm v 1 pha ca ca s
Bc 3: Xt giao im:
Hnh 4