Ki thuat do hoa
Transcript of Ki thuat do hoa
-
8/14/2019 Ki thuat do hoa
1/173
HC VIN CNG NGH BU CHNH VIN THNG
K THUT HA
(Dng cho sinh vin ho to i hc txa)
Lu hnh ni b
H N
I - 2006
-
8/14/2019 Ki thuat do hoa
2/173
HC VIN CNG NGH BU CHNH VIN THNG
K THUT HA
Bin son : THS. TRNH TH VN ANH
-
8/14/2019 Ki thuat do hoa
3/173
Li ni u
3
LI NI U
Hin nay ho my tnh (Computer Graphics) l mt trong nhng chng trnh thngdng nht, n gp phn quan trng lm cho giao tip gia con ngi v my tnh trnn thnthin hn. Tht vy, giao din kiu vn bn (text) c thay th hon ton bng giao din ho, cng vi cng ngha phng tin (multimedia) a ngnh Cng Ngh Thng Tin sangmt phin bn mi.
Cun ti liu ging dy ny, ti mun mang li cho bn c cc csl thuyt v homy tnh tn gin nht nh cc thut ton vng thng, ng trn, a gic, k t..... Tipn cc k thut xn ta, cc php bin i ho trong khng gian 2D v 3D.... Chng ta ln ltlm quen vi th gii mu sc thng qua cc h mu: RGB, CMYK, HSV.... Phc tp hn na lcc php chiu, cc phng php xy dng ng cong v mt cong cho i tng.
Ti liu gm by chng, trong chng mt gip bn c ci nhn tng quan v k thut ho t trc n gicng nh hng tng lai cho lnh vc ny. Cc chng tip theo, michng s l mt vn tn gin n phc tp. Cui mi chng u c phn bi tp chochng ta kim tra li kin thc va c c. Bi tp gm hai dng: dng tnh ton v dng lptrnh, 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 chng ta lm bi tp lp trnh, ngn ng haydng y l C/C++ hay BC.
B cc r rng, hnh nh phong ph, a dng. D cho bn cha tng bit v ho mytnh hay bn nhiu nm lm vic trong lnh vc ny, bn u c th nhn thy rng cun schny l mt b tham kho y cc thng tin hu ch v c tnh cht thc tin cao.
Trong qu trnh bin son mc d c gng ht sc nhng vn khng trnh khi nhng saist, rt mong nhn c sng gp chn thnh t qu bn c.
Xin chn thnh cm n.
Tc gi
-
8/14/2019 Ki thuat do hoa
4/173
Chng 1: Tng quan v k thut ha
4
CHNG 1: TNG QUAN V K THUT HO
1. CC KHI NIM TNG QUAN CA K THUT HO MYTNH (COMPUTER GRAPHICS)
1.1. L ch spht trin
- Graphics nhng nm 1950-1960
1959 Thit b hou tin l mn hnh xut hin ti c.
1960 - SAGE (Semi-Automatic Ground Environment System) xut hin bt sng thao tcvi mn hnh.
1960 William Fetter nh khoa hc ngi M, ng ang nghin cu xy dng m hnhbung li my bay cho hng Boeing ca M. ng da trn hnh nh 3 chiu ca m hnh ngiphi cng trong bung li ca my bay xy dng nn mt m hnh ti u cho bung li mybay. Phng php ny cho php cc nh thit k quan st mt cch trc quan v tr ca ngi litrong 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 hnhu da trn thit kng tia m cc CRT (Cathode ray tube).
Khi gi lm ti mn hnh l rt cao, my tnh x l chm, t v khng chc chn(khng ng tin cy).
- Graphics: 1960-1970
1963 Ivan Sutherland (hi ngh Fall Joint Computer - ln u tin c kh nng to mi, hinth v thay i c thc hin trong thi gian thc trn mn CRT).
H thng ny c dng thit k mch in: CRT, LightPen (bt sng), computer (chachng trnh x l thng tin). Ngi s dng c th v mch in trc tip ln mn hnh thngqua bt sng.
- Graphics:1970-1980
Raster Graphics ( hoim). Bt u chun ho v d nh: GKS(Graphics KernelSystem): European effort (kt qu ca chu u), Becomes ISO 2D standard.
- Graphics: 1980-1990
Mc ch c bit v phn cng, thit b hnh hc ho Silicon. Xut hin cc chun cngnghip: 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)
- Computer Graphics: 1990-2000
OpenGL API (Application Program Interface giao din chng trnh ng dng).
Completely computer-sinh ra ngnh in nh phim truyn (Toy Story) rt thnh cng.
Cc tim tng phn cng mi: Texture mapping (dn cc nh ca cnh tht ln b mt ca
i tng),blending (trn mu).- Computer Graphics: 2000- nay
-
8/14/2019 Ki thuat do hoa
5/173
Chng 1: Tng quan v k thut ha
5
nh hin thc.cc cc ho cho my tnh (Graphics cards for PCs), game boxes and gameplayers
Cng nghip phim nh nhvo ho my tnh (Computer graphics becoming routine inmovie industry): Maya (th gii vt cht tri gic c).
1.2. K thut ha vi tnh.
Definition (ISO): Phng php v cng ngh chuyn i d liu t thit b ho sang mytnh.
Computer Graphics l phng tin a nng v mnh nht ca giao tip gia con ngi vmy tnh.
Computer Graphics (Kthut ho my tnh) l mt lnh vc ca Cng ngh thng tin m nghin cu, xy dng v tp hp cc cng c (m hnh l thuyt v phn mm) khc nhau: kin to, xy dng, lu tr, x l Cc m hnh (model) v hnh nh (image) ca i tng.
Cc m hnh (model) v hnh nh ny c th l kt qu thu c t nhng lnh vc khc nhau cart nhiu ngnh khoa hc (vt l, ton hc, thin vn hc)
Computer graphics x l tt c cc vn to nh nhmy tnh.
2. CC K THUT HO
2.1. K thut hoim (Sample based-Graphics)
- Cc m hnh, hnh nh ca cc i tng c hin th thng qua tng pixel (tng muri rc)
- c im: C th thay i thuc tnh
+ Xo i tng pixel ca m hnh v hnh nh cc i tng.
+ Cc m hnh hnh nh c hin th nh mt li im (grid) cc pixel ri rc,
+ 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 mchng ta mun hin th.
Hnh 1.1 nh hoim
-
8/14/2019 Ki thuat do hoa
6/173
Chng 1: Tng quan v k thut ha
6
Bitmap
Hnh 1.2 K thut hoim
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 mphng ca s vt.
- 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 ctheo nhng phng php khc nhau thu c hnh nh c trng ca i tng.
2.2. K thut ho vector
Hnh 1.3 M hnh ho vector
- M hnh hnh hc (geometrical model) cho m hnh hoc hnh nh ca i tng- Xc nh cc thuc tnh ca m hnh hnh hc ny,
SRPlibrary
Pascal Cprogram
X WindowSystem Graphics hardware
Image
image formats, compression, transfer
graphics algorithmscolourpositions
M hnh ha
T trt
Thit b ra
Cc tham st trt
-
8/14/2019 Ki thuat do hoa
7/173
Chng 1: Tng quan v k thut ha
7
- Qu trnh t trt (rendering) hin th tng im ca m hnh, hnh nh thc ca itng
C thnh ngha ho vector: ho vector = geometrical model + rendering
So snh gia Raster v Vector Graphics hoim(Raster Graphics)
- Hnh nh v m hnh ca cc vt thc biu din bi tp h p 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 nhny sang hnh nh khc.
ho vector(Vector Graphics)
- Khng thay i thuc tnh ca tngim trc tip
- X l vi tng thnh phn hnh hc csca n v thc hin qu trnh t trt v hinth li.
- Quan st hnh nh v m hnh ca hnhnh v s vt nhiu gc khc nhau bng
cch thay i im nhn v gc nhn.
V d v hnh nh ho Vector
Hnh 1.4 V d v ho vector
Muscle ModelWireframe Skeletal
Skin Hair Render and Touch
-
8/14/2019 Ki thuat do hoa
8/173
Chng 1: Tng quan v k thut ha
8
2.3. Phn loi ca ho my tnh
Phn loi theo cc lnh vc ca ho my tnh
Phn loi theo h to
- Kthut 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.
-Kthut ho ba chiu: l k thut ho my tnh s dng h to ba chiu, i hirt 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 itng. 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 cutrc, hoc theo cc tiu tr c xc nh t trc v bng cc thut ton chn lc c th phntch hay tng hp nh cho thnh mt tp hp cc nh gc, cc nh gc ny c lu trong mtth 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 cacc vt th da trn cc i tng v mi quan h gia chng.
- Cc h CAD/CAM (Computer Aided Design/Computer Aided Manufacture System): kthut ho tp hp cc cng c, cc k thut trgip cho thit k cc chi tit v cc h thngkhc nhau: h thng c, h thng in, h thng in t.
- ho minh ho (Presentation Graphics): gm cc cng c gip hin th cc s liu thnghim mt cch trc quan, da trn cc mu th hoc cc thut ton c sn.
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
-
8/14/2019 Ki thuat do hoa
9/173
Chng 1: Tng quan v k thut ha
9
- ho hot hnh v ngh thut: bao gm cc cng c gip cho cc ho s, cc nh thit kphim hot hnh chuyn nghip lm cc k xo hot hnh, v tranh... V d: phn mm 3D Studio,3D Animation, 3D Studio Max.
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 tinhc. Ngay t khi xut hin n c sc li cun mnh lit, cun ht rt nhiu ngi nhiu lnhvc khc nhau nh khoa hc, ngh thut, kinh doanh, qun l...Tnh hp dn ca n c thcminh 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 ngidng ng dng. Giao din WYSIWYG v WIMP ang c a s ngi dng u thch nhtnhthn thin, d s dng ca n.
- To cc biu trong thng mi, khoa hc, kthutCc 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.
- Tng ho vn phng v chbn in t
- Thit kvi strgip 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 toMt s v d ca ng dng k thut ho:
-
8/14/2019 Ki thuat do hoa
10/173
Chng 1: Tng quan v k thut ha
10
Hnh 1.5 Cc ng dng ca k thut ho
Hnh 1.6 Hng dng CAD - CAM
-
8/14/2019 Ki thuat do hoa
11/173
Chng 1: Tng quan v k thut ha
11
2.5. Cc chun giao din ca h ho
Mc tiu cn bn ca phn mm hoc chun l tnh tng thch. Khi cc cng cc thit k vi hm ho chun, phn mm c thc 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 nhmt 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 vicc thit b ngoi vi.
CGM (Computer Graphics Metafile): xc nh cc chun cho vic lu tr v chuyn ihnh nh.
VRML (Virtual Reality Modeling Language): ngn ng thc ti o, mt hng pht trintrong cng ngh hin thc xut bi hng Silicon Graphics, sau c chun ha nhmt chun cng nghip.
PHIGS (Programmers Hierarchical Interactive Graphics Standard): xc nh cc phngphp 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 camt h ha nm 1993.
DIRECTX th vin ho ca hng Microsoft, Direct X/Direct3D1997
3. PHN CNG HO (GRAPHICS HARDWARE)
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 nhh 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 ngdng
Phn mm ng dng (Application Program): phn mm hong dng.Bm ( Frame buffer): c nhim v cha cc hnh nh hin th.
Biu khin mn hnh (Video Controller): iu khin mn hnh, chuyn d liu dng sframe buffer thnh cc im sng trn mn hnh.
-
8/14/2019 Ki thuat do hoa
12/173
Chng 1: Tng quan v k thut ha
12
Hnh 1.7 Cc thnh phn cng ca h ho tng tc
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 perinch)
S lng mu c th v trn mt im:
Dot size Point per inch
8 - 20/ 100inch 200, 600
5/1000inch 1500
My v 6,15/1000 inch 1000, 2000
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 dnn v tr xc nh trn mn hnh c ph mt lp phosphor. Ti mi v tr tng tc vi tia int ht phosphor s pht ln mt chm sng nh. Nhng chm sng s mdn rt nhanh nn cnc cch no n duy tr nh trn mn hnh. Mt trong cc cch l: lp i lp li nhiu ln vic v linh tht nhanh bng cch hng cc tia in t trli 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 trn mt cm m c thc v theo chiungang v chiu dc (c xem nh tng sim theo mi hng).
-
8/14/2019 Ki thuat do hoa
13/173
Chng 1: Tng quan v k thut ha
13
Hnh 1.8 Cng ngh mn hnh CRT
Kch thc vt l ca mn hnh hoc 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 dcv cc im ngang cn pht sinh cc on thng c di n v theo c hai hng trn mnhnh. Mn hnh c t s phng khc mt, th hnh vung hin th trn thnh hnh ch nht cnhnh trn thnh hnh ellipse.
Mn hnh dng im (Raster Display): thng gp nht trong s cc dng mn hnh s dngCRT trn cng ngh truyn hnh. Mi im trn mn hnh c gi l pixel. Cc thng tin v nhhin th trn mn hnh c lu tr trong mt vng b nhgi l vng m lm ti (Refresh
buffer) hay l vng m khung (Frame Buffer). Vng lu tr tp cc gi tr cng sng caton 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.
SONY Trinitron NEC Hybrid Hitachi EDP Standard Dot-trio
-
8/14/2019 Ki thuat do hoa
14/173
Chng 1: Tng quan v k thut ha
14
to ra hnh nh en trng, n gin ch cn lu thng tin ca mi Pixel l mt bt (0,1)(xem hnh 1.9). Trong trng hp nh nhiu mu th cn nhiu bt hn, nu thng tin mi pixelc lu bng b bt th ta c th c 2b gi tr mu phn bit cho pixel .
Trong cc mn hnh mu, ngi ta nh ngha tp cc mu lm vic trong mt bng tra (LookUpTable - 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 chnh s th t (index) tng ng ca mu trongLUT, s phn t trong bng LUT chnh l s mu c thc hin th cng mt lc trn mnhnh.
V d m hnh hoim ngi nh v ngi sao.
Hnh 1.9 Song nh gia vng m khung v 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 frame/giy. i khitc lm ti cn c biu din bng n v Hertz (Hz - s chu k trn/giy), trong mt chuk tng ng vi mt frame. Vy tc lm ti 60 frame/giy n gin l 60 Hz. Khi t ncui mi dng qut, tia in t quay trli 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 trligc bn tri ca mn hnh chun b bt u frame k tip.
Displayprocesso
Interface to hostcomputer
(Displaycommands)
(interaction data)
Keyboard
Data input
00000000000000000000000001000000000000000000000
Bitmap refresh buffer(the 1s are accentuatedfor contrast)
CRT
-
8/14/2019 Ki thuat do hoa
15/173
Chng 1: Tng quan v k thut ha
15
Hnh 1.10 Qut mnh v qut dng ca mn hnh CRT
V d v vic tia qut trn mn hnh CRT:
MOVE 10,15
LINE 400,300
LINE 600,800
Refesh Buffer
DrawLine(A, B):
Turn beam off,
move to A.
Turn beam on,
move to B.
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 chac t trng (cha c dng in) cun dy th nh sng truyn thng, khi c t trng th nhsng truyn i chiu.
Hnh 1.11 Cng ngh truyn nh sng trong mn hnh tinh th lng
-
8/14/2019 Ki thuat do hoa
16/173
Chng 1: Tng quan v k thut ha
16
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 ofCRT, typ. 1/5 of CRT)
Tiu tn ngun thp (typ. 1/4 of CRT)
Mn hnh phng tuyt i nn khng mo ticc 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 dngv 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 thchkh nng sng to v tng ng k hiu sut lm vic.
ho my tnh ngy nay c c ng dng rt rng ri trong nhiu lnh vc khao hc,k thut, ngh thut, kinh doanh, qun lCc ng dng ho rt a dng, phong ph v phttrin 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 gicng gm hai phn chnh l phn cng v phn mm. Phncng bao gm cc thit b hin th (thit b xut) v cc thit b nhp. Tiu biu nht l mn hnh,c hai loi 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 mkhung, phn gii, t s phng.... ca mn hnh loi ny?
2. ngha v hot ng ca bng tra LUT?
-
8/14/2019 Ki thuat do hoa
17/173
Chng 1: Tng quan v k thut ha
17
3. Tnh Video Ram ca cc mn hnh ln lt c phn gii l 640x480, 1024x768,1280x1024 m c mi pixel c m t l 8bt, 12 bit, 24 bit.
4. Nu chng ta dng cc gi tr 12bit cho mi pixel trong mt bng tham chiu lookuptable, c bao nhiu hng mc m lookup table c c?
5. Ti sao phi chun ho cc phn mm? Lit k v tm hiu cc chun h phn mm ho.
Bi tp trc nghim:
1. T s phng (aspect ratio) ca mn hnh l 1,4 vy mt hnh trn khi hin th trn mnhnh s cho:
a. Hnh trn
b. Hnh ellipse nm ngang (bn knh theo trc x di hn bn knh theo trc y)
c. Hnh ellipse ng (bn knh theo trc x ngn hn bn knh theo trc y)d. Hnh thoi
2. Cho mn c phn gii 1024x1024 v mi pixel c m t 24bt vy video RAM camn hnh l:
a. 1048576 bt
b. 2MB
c. 3MB
d. 4MB
3. Nu ta dng cc gi tr 24 bit cho mi pixel trong mt bng LUT. Th bng LUT c smu l:
a. 24 mu
b. 1024 mu
c. 16777216 mu
d. 16000000 mu
-
8/14/2019 Ki thuat do hoa
18/173
Chng 2: Cc gii thut sinh thc th cs
18
CHNG 2: CC GII THUT SINH THC TH C S
1. CC I TNG HO CS
1.1. H to th gii thc v h to thit b
a. Hto thgii thc (WCS: World Coordinate System)
WCS hay h to thc l h toc dng m t cc i tng trong th gii thc.Mt trong h to thc c dng nhiu nht l h to Descartes. Bt k im no trong mt
phng c m t bng cp to (x,y) trong x,y R. Gc to l im O c to (0,0),Ox,Oy ln lt l trc honh v trc tung v x,y l honh v tung .
Cc to th gii thc cho php ngi s dng bt k mt th nguyn (dimension) quic: foot, cm, nm, km, inch....tu .
b. Hto thit b(DCS: Device Coordinate System)
H to thit b l h toc dng bi mt thit b xut c th no nh my in,mn hnh...
Cc im c biu din bi cp to (x,y), nhng x,y N. im trong to thc cnh ngha lin tc, cn trong to thit b th ri rc do tnh cht ca tp cc s t nhin.
Cc to (x,y) c gii hn trong mt khong no .
1.2. im v on thng
a.im
Trong h to hai chiu (x,y), ngoi ra n cn c tnh cht mu sc.
b.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 2im P (x1,y1) v Q(x2,y2) nh sau:
(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 + m
k = (y2-y1)/(x2-x1) dc hay h s gc ca ng
m = y1- kx1on chn trn trc y
y = kx (tc l khi x thay i th y thay i theo)
Hnh 2.1 Von thng PQ+ Biu din khng tng minh: ax+by+c=0
m
P(x1,y1)
Q(x2 , y2)
-
8/14/2019 Ki thuat do hoa
19/173
Chng 2: Cc gii thut sinh thc th cs
19
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 rx + sy + t = 0s = -(x2-x1 )
r = (y2-y1) v t = x2y1 - x1y2
+ Biu din thng qua tham s:
P(u) = P1 + u(P2 - P1)u [0,1]
x(u) = x1 + u( x2 - x1 )
y (u)= y1 + u( y2 - y1 )
2. CC GII THUT XY DNG THC TH CS
2.1. Gii thut von 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
-
8/14/2019 Ki thuat do hoa
20/173
Chng 2: Cc gii thut sinh thc th cs
20
- Khi k>1 bt u y=y1 (y1
-
8/14/2019 Ki thuat do hoa
21/173
Chng 2: Cc gii thut sinh thc th cs
21
Gi (xi+1,y) l im thuc on thng, ta c y=k(xi+1)+b
d1 = y - yi = k(xi +1) + b - yi
d2 = yi+1 - y = yi + 1 - k(xi + 1) - b
- Nu d1 yi+1 = yi- Ngc li d1 > d2 => yi+1 = yi +1
t D = d1 - d2= 2k(xi + 1) - 2yi + 2b - 1
C k=y/x
t Pi = xD = x (d1 - d2)
Pi = x(2y/x(xi +1)- 2yi +2b-1)
= 2yxi +2y -2xyi + 2bx -xTa 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 - 2xTnh gi tru: 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
-
8/14/2019 Ki thuat do hoa
22/173
Chng 2: Cc gii thut sinh thc th cs
22
Hnh 2.4 S khi thut ton Bresemham chong thng
/*Thuat toan Bresenham ve dthang (0
-
8/14/2019 Ki thuat do hoa
23/173
Chng 2: Cc gii thut sinh thc th cs
23
- nu 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-y1Biu din tng minh:
y= (dy/dx)x +B hay
f(x,y)=0= xdy - ydx +Bdx (2)
So snh (1) v (2)
a=dyb=-dx 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
-
8/14/2019 Ki thuat do hoa
24/173
Chng 2: Cc gii thut sinh thc th cs
24
Hnh 2.6 S khi gii thut Midpiont choon thng
/* Thuat toan Midpoint de ve doan thang(0
-
8/14/2019 Ki thuat do hoa
25/173
Chng 2: Cc gii thut sinh thc th cs
25
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 +1pi = 2(xi +1 )
2 + 2yi2 - 2yi 1 - 2r
2
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 + 2pi+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:
Hnh 2.9 S khi gii thut Bresemham chong 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
-
8/14/2019 Ki thuat do hoa
26/173
Chng 2: Cc gii thut sinh thc th cs
26
Cu hi: lc s dng tnh i xng cho tm cch v mt ng trn y t cc topixel c to ng vi gc phn t th hai. Mt vi Pixel c v hai ln, hin tng ny gi lOverstrike. Hy chnh xem ni no xy ra hin tng ?
Tr li: Ti (r,0) hoc (0,r) v v tr ng cho: (r, r) trong = 1/2 0.7071
/* Thuat toan Bresenham de ve duong tron */
#include
#include
#define pc(xc,yc,x,y) {
putpixel(xc + x, yc + y, color);
putpixel(xc - x, yc - y, color);
putpixel(xc -y, yc +x, color);
putpixel(xc +y, yc -x, color);
}
void Bresenham_Circle(int xc, int yc, int Radius, int color){
int x, y, p;
x = 0;
y = Radius;
p = 3 - 2 * Radius;
pc(xc,yc, Radius,0); //ve 4 diem dac biet
while (x < y){
if (d < 0)
p += 4 * x + 6;
else{
p += 4 * (x-y) + 10;
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.7. Gii thut sinh ng trn Midpoint
Phng trnh ng trn khng tng minh:
f(x,y) = x2+y2-R2 =0
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
-
8/14/2019 Ki thuat do hoa
27/173
Chng 2: Cc gii thut sinh thc th cs
27
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)
= (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)= 1
2 + (r-1/2)2 - r2
d1 = 5/4 -r
Thut ton nh sau:
Hnh 2.10 S khi gii thut Midpoint vng 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
-
8/14/2019 Ki thuat do hoa
28/173
Chng 2: Cc gii thut sinh thc th cs
28
Hnh 2.11 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 yGi 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 =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 +3b2 +a2(-2yi +2)
Hay Pi+1 = Pi + b2(2xi +3) + a
2(-2yi +2)
AM tiep tuyen = -1B gradient
B CM
i
-
8/14/2019 Ki thuat do hoa
29/173
Chng 2: Cc gii thut sinh thc th cs
29
- 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 nh p 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) = b
2(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) = b
2(xk+1/2)2 + a2(yk-1)
2 -a2b2
Cu hi: lc ly i xng 4 cch tm 1 Ellipse hon chnh t cc to pixel c to ravi 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);
-
8/14/2019 Ki thuat do hoa
30/173
Chng 2: Cc gii thut sinh thc th cs
30
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; //2b2if (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);
}
}
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.9. Gii thut sinh k t
Trong mn hnh text, truy xut cc k t trn mn hnh c h trbi phn cng. Cc k
tc lu tr trong b nhROM, di dng bitmap hay cc ma trn nh. Phn cng sa kt ln mn hnh ti v tr xc nh, tnh ton cun trang v xung dng.
-
8/14/2019 Ki thuat do hoa
31/173
Chng 2: Cc gii thut sinh thc th cs
31
Trong ho:
+ Vector: nh ngha cc k t theo nhng ng cong mm bao ngoi ca chng, tn kmv mt tnh ton.
Hnh 2.12 K tvector
- 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 thccnh)
+ Bitmap: nh ngha mi k t vi 1 font ch cho trc l 1 nh bitmap hnh ch nht nh.
Hnh 2.13 K tbitmap
- n gin trong vic sinh k t(copypixel)
- Lu tr ln- Cc php bin i(I,B,U, scale) i hilu tr thm
- Kch thc khng i
+ bitmap: s dng hm copypixel (copy im nh) c lu tr trong b nh cnh -Fontcache, a vo b nhm 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 nxo, yo//im gc trn bm 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));
}
K t fontcache bitmap n gin ca SRGP lu tr cc k t theo chui lin tip nhautrong b nh. Nhng rng cc k t khc nhau, truy nhp cc fontcache thng qua bn ghi vcu trc cho tng k t.
Cu trc font chtypedef 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
-
8/14/2019 Ki thuat do hoa
32/173
Chng 2: Cc gii thut sinh thc th cs
32
Xy dng theo phng php nh ngha cc k t bi ng cong mm bao ngoi cachng d dng thay i kch thc ca k t cng nh ni suy ra cc dng ca k t. Hon tonc lp vi thit b.
+ Ti u nht: lu tr font di dng ng bao. Khi cc chng trnh ng dng s dng lbitmap tng ng vi chng.
2.10. Gii thut sinh a gic (Polygon)
a. Thut gii vng 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.14 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 nmtrn 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)
{ if (n
-
8/14/2019 Ki thuat do hoa
33/173
Chng 2: Cc gii thut sinh thc th cs
33
- Bc tip: kim tra thuc tnh mu cc im ln cn
+ im ln cn t mu (exit)
+ trng vi mu ng bin(exit)
+ Nu khng th t muCc phng php xc nh im ln cn
Hnh 2.15 Phng php tnh tin gii thut
Gii thut t mu ng bin:#include
#include
void FloodFill (int x, int y, int in_color, int new_color){
if (getpixel(x, y) == in_color){
putpixel(x, y, new_color);
FloodFill(x-1, y, in_color, new_color);
FloodFill(x+1, y, in_color, new_color);
FloodFill(x, y-1, in_color, new_color);
FloodFill(x, y+1, in_color, new_color);
}
}void main(){
int gr_drive = DETECT, gr_mode;
initgraph(&gr_drive, &gr_mode, "");
circle(getmaxx() / 2, getmaxy() / 2, 15);
FloodFill(getmaxx() / 2, getmaxy() / 2, 0, 4);
getch();
closegraph();
}
+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 ymaxnymin ca vng cn c t mu.
Vi mi gi tr y = ying 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
-
8/14/2019 Ki thuat do hoa
34/173
Chng 2: Cc gii thut sinh thc th cs
34
Gi s vng t c cho bi 1 a gic n nh: pi (xi,yi), i=0,1,....,n-1. a gic ny c th la gic li, a gic lm hay a gic t ct....
Cc bc tm tt chnh ca thut ton:
- Tm ytop, ybottom ln lt l gi tr ln nht, nh nht ca tp cc tung ca cc nh caa gic cho.
ytop = max{yi,(xi,yi) P},
ybottom = min{yi,(xi,yi) P}.
- ng vi mi dng qut y=k, vi k thay i t ybottomn ytop lp:
+ Tm tt c cc honh giao im ca dng qut y=k vi cc cnh ca a gic
+ Sp xp cc honh giao im theo th t tng dn: xo,x1,....
+ T mu cc on thng trn ng thng y=k ln lt c gii hn bi cc cp(x
o,x
1), (x
2,x
3), ......, (x
2k,x
2k+1).
Chng ta s gp 1 s vn sau:
- ng vi mi dng qut khng phi lc no tt c cc cnh ca a gic cng tham gia ctdng qut. Do ci thin tc cn phi c mt cch no hn chc s cnh cntm giao im ng vi mi dng qut.
- Nu s giao im tm c gia cc cnh a gic v dng qut l l (iu ny ch xy rakhi dng qut si qua cc nh ca a gic) khi ta s tnh sim l 2 th c th t khngchnh xc. Ngoi ra, vic tm giao im ca dng qut vi cc cnh nm ngang l trng hp t
bit...
Hnh 2.16 Gii thut scanline cho mt a gic bt k
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
x
yyqmax
yq
yqmin
yq
-
8/14/2019 Ki thuat do hoa
35/173
Chng 2: Cc gii thut sinh thc th cs
35
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 cth ct ng vi dng qut hin hnh v tp cc im giao tng ng. N c mt sc 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 sc cp nht lin tctrong qu trnh thc hin thut ton. u tin ta c danh dch cha ton b cc cnh ca a gicgi l ET (Edge Table) c sp xp theo th t tng dn ca ymin, ri sau mi ln dng qut thayi s di chuyn cc cnh trong ET thoiu 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 ETsang AET s l k>=ymin; v iu kin loi mt cnh ra khi AET l y
-
8/14/2019 Ki thuat do hoa
36/173
Chng 2: Cc gii thut sinh thc th cs
36
Nhc im: khng c im nh v tr phn bit mt cch r rng cho mu t trong mt agic 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 ccng bin cho cc vng t, vy nu ngoi cc thc th cc mu t khng c php th hin.
Hnh 2.18 Phng php ly im neo
Tm tt chng:
Cc i tng ho cscung cp cc cng c cbn nht cho vic xy dng cc nh ho ca cc i tng phc tp. Cc on thng, ng cong, vng t, k t....l cc i tng ho csc hu ht tt c cc cng c lp trnh ho h tr.
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 toth gii thc v dy cc pixel tng ng gn vi chng nht trn to thit b. Qu trnh ny cnc gi l qu trnh chuyn i bng dng qut. Yu cu quan trng nht i vi qu trnh nyngoi vic phi cho kt qu xp x tt nht cn phi cho tc ti u.
Ba cch tip cn von thng gm thut ton DDA, thut ton Bresenham, thut tonMidpiont u tp trung vo vic a ra cch chn mt trong hai im nguyn k tip khi bitim nguyn bc trc. Thut ton DDA n gin ch dng thao tc lm trn nn phi dngcc php ton trn s thc, trong khi thut ton Bresenham v Midpiont a ra cch chn phctp hn nhng cho kt qu tt hn. Tng t dng hai gii thut Bresenham v Midpiont v
ng trn v ellpise v mt sng 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. Chnh cc v tr mnh no sc chn bi thut ton Bresenham lc chuyn qut mtng 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 sgc).
3. Dng gii thut Midpiont vit hm sinh on thng (xt tt c cc trng hp ca h sgc).
x
y
neo
neo
x
y
-
8/14/2019 Ki thuat do hoa
37/173
Chng 2: Cc gii thut sinh thc th cs
37
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 rxv ry ).
6. T hm vng 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.
10.Vit thut ton t mu scan-line.
Bi tp trc nghim:
1. Xy dng gii thut tng qut vng thng ta c xt h s k (h s gc ca ng)
s c tt c cc trng hp ca k:a. 4
b. 3
c. 2
d. 1
2. biu din on thng thng qua phng trnh tham s nh sau:
a. y=f(x) hay y=kx+b
b. f(x,y)=0 hay ax + by +c =0
c. x(v)=x1 +v(x2-x1) v y(v) = y1 +v(y2-y1) c v [0,1]
d. P(u) = P1 + u(P2-P1) c u [0,1]
3. Khi xy dng gii thut vng trn y ta ch cn vit phng trnh cho 1/8 ngtrn, ri gi i xng 8 cch. Khi xy ra hin tng overstrike. Vy im xy ra hintng l: (r l bn knh ca ng trn)
a. (0,r) v
rr
2
1,
2
1
b. (r,0) hoc (0,r) v
rr 2
1
,2
1
c. (0,r) v (-r,0)
d. (r,0) v (0,r)
4. Gii thut sau l gii thut g? V dng bao nhiu im ln cn?
void Function (int x, int y, int c1, int c2){
if (getpixel(x, y) == c1){
putpixel(x, y, c2);
Function (x-1, y, c1, c2);
Function (x+1, y, c1, c2);
Function (x+1, y+1, c1, c2);Function (x-1, y-1, c1, c2);
Function (x, y-1, c1, c2);
-
8/14/2019 Ki thuat do hoa
38/173
Chng 2: Cc gii thut sinh thc th cs
38
Function (x, y+1, c1, c2);
}
}
Gii thut scanline, sim ln cn l: Gii thut t mung bin, s imln cn l:
Gii thut t muloang, s im lncn l:
Gii thut t mutheo mu, s mu lncn l:
A B c d
5. Gii thut vng thng sau v cho trng hp k l:
void Midline(int x1,int y1,int x2,int y2,int c){
int x=x1,y=y1,dx=x2-x1,dy=y2-y1,p=2*dx-dy;
while(y
-
8/14/2019 Ki thuat do hoa
39/173
Chng 2: Cc gii thut sinh thc th cs
39
7. Gii thut sau l gii thut no?
void Function(int xt, int yt, int r, int c){
int x, y, d;
x = 0;
y = r;d = 3 - 2 * r;
while (x
-
8/14/2019 Ki thuat do hoa
40/173
Chng 2: Cc gii thut sinh thc th cs
40
getch();closegraph();
}
A B c d
-
8/14/2019 Ki thuat do hoa
41/173
Chng 3: Cc php bin i ha
41
CHNG 3: CC PHP BIN I HO
1. CC PHP BIN I HNH HC HAI CHIU
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 thnhtp 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 mim khi ni chng vi nhau to thnh on thng mi. Cc im nm trn on thng s c kt qul im nm trn on thng mi vi cng php bin i thng qua php ni suy.
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 2chiu biu din thng qua to, vit di dng ma trn gi l vectv tr.
C 2 dng biu din:
Mt hng v 2 ct: [ ]yx
Hai hng v 1 ct:
y
x
Trong ti liu ny chng ta chn biu din im l ma trn hng (mt hng v 2 ct).
Tp cc im c lu tr trong my tnh sc 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 quacc php bin i chng, thc cht cc php bin i ho ny c m t di dng cc matrn.
1.2.1. Php bin i vtr
Gi s ta c im P = [ x y ] trong mt phng vi [x y] l vectv tr ca P, k hiu l [X].
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 sng vi ton bi tng.
=
dc
baT
y
x
P P
-
8/14/2019 Ki thuat do hoa
42/173
Chng 3: Cc php bin i ha
42
Hay ta c: x = ax + cy
y = bx + dyXt 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
-
8/14/2019 Ki thuat do hoa
43/173
Chng 3: Cc php bin i ha
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
[ ] [ ] [ ] [ ] [ ]''10
1** yxybxx
byxTX =+=
=
P P
Sx=-1P
P
Sy=-1
P
P
Sx=Sy=-1
P
P
y=bx+y
bx
P P
cy x=x+cy
-
8/14/2019 Ki thuat do hoa
44/173
Chng 3: Cc php bin i ha
44
Php quay
C >0 ngc chiu kim ng h
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 + ycosTa 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
1.2.2. Php bin i tng hp
Phng php bin i s dng php nhn ma trn vi toim thng qua cc vectv trtht s hiu qu v em li cng c mnh v ho cho ngi s dng. Nhng thc t cc thaotc thng cn khng ch mt m nhiu php bin i khc nhau. Ta c php hon v khi nhn matrn l khng thc hin nhng kh nng t hp cc php nhn li cho php to ra mt ma trn bini duy nht. Lm gim bt ng k khi lng tnh ton trong qu trnh bin i, lm tng tccc 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:
-
8/14/2019 Ki thuat do hoa
45/173
Chng 3: Cc php bin i ha
45
=
10
012T
Ta c:
[ ] [ ] [ ] [ ] [ ]xyyxTXX =
==0110*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 matrn tng hp t cc php bin i .
2. TA NG NHT V CC PHP BIN I
2.1. Tong 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 tina ra ma trn bin i tng hp l khng th.
Th no l phng php biu din tong nht ? l phng php biu din m rngthng qua tong nht ca cc vectv tr khng ng nht [x y] l ng dng ca php bin
i hnh hc m toim c m t di ma trn [x* y* h] vi x=x*/h, y=y*/h c h lmt s thc tu . Vy mt vectv tr [xy] bt k trn mt phng xoy bng tp v s cc imng nht [hx hyh]. V d: [2 5] s biu din bng [4102], [6153]..... n gin nht l [251].
Vy tong nht ca vectv 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
-
8/14/2019 Ki thuat do hoa
46/173
Chng 3: Cc php bin i ha
46
x=ax + cy +dx
y=bx + dy + dy
[X]= [x y1]
Trong dx, dy l khong tnh tin theo trc x v y.2.2. Php bin i vi tong nht
Ma trn bin i ng nht
Php tnh tin
C a=d=1 v b=c=0
[ ]
=
1
010001
nm
T
Ch : trong mt phng to, mi im k c gc tou c th bin i.
Php bin i tng hp ca hai php tnh tin theo khong [m1 n1] v [m2n2] bng phpbin 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 iduy nht c t l l tch hai php bin i trn Sx1*Sx2, Sy1*Sy2.
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 =
=
-
8/14/2019 Ki thuat do hoa
47/173
Chng 3: Cc php bin i ha
47
Hnh 3.6 Php quay
3. CC PHP BIN I HNH HC BA CHIUCc php bin i chuyn v - translation, t l-scaling v quay-rotation s dng trong
khng gian 2D u c th mrng trong khng gian 3D.
3.1.Biu din im trong khng gian 3 chiu
[x* y* z* h] hay[x*/h y*/hz*/h 1]
Vit gn hn:[xy z1]
Ma trn bin i tng qut trong khng gian 3D vi ta ng nht (4x4)
Hay
=
1
0
00
dzdydx
hig
fedcba
T
3.2. Php tnh tin
y l php bin i n gin nht, mrng 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
[ ]1)cossin()sincos(
1000cossin
0sincos
]1[]1''[
yxyx
yxyx
+=
=
( x, y )
(x, y)
=
snml
rjig
qfed
pcba
][T
=
1
0100
0010
0001
)],,([
dzdydx
dzdydxT
-
8/14/2019 Ki thuat do hoa
48/173
Chng 3: Cc php bin i ha
48
3.3.Php t lTng t trong 2D ta c php t l trong 3D l:
=
1000
0Sz00000
000
Sy
Sx
Ts
Ta c Sx,Sy v Sz l cc h s t l trn cc trcto
[X] = [X] . [T(Sx,Sy,Sz) ]
= [x.Sxy.Sy z.Sz 1]
Hnh 3.8 Php t l trn 3D
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.5. Php ly i xng
=
1000
000
000
000
]1[]1'''[Sz
Sy
Sx
zyxzyx
=
1000
01
0101
]1[]1'''[ig
fd
cb
zyxzyx
]1[ zfycxizybxgzydx ++++++=
-
8/14/2019 Ki thuat do hoa
49/173
Chng 3: Cc php bin i ha
49
i xng qua trc ox i xng qua mt xoy i xng qua gc O
=10000100
0010
0001
Mox
=10000100
0010
0001
Mxoy
=10000100
0010
0001
Mo
3.6.Php quay 3 chiu2.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:
Hnh 3.11 Quay quanh trc oz
=
+=
=
zz
yxy
yxx
'
'
'
cossin
sincos
- Quay quanh trc ox:
=
1000
0100
00cossin
00sincos
][
Tz
-
8/14/2019 Ki thuat do hoa
50/173
Chng 3: Cc php bin i ha
50
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 phng php nhn ma trn bin ikhng c kh nng hon v cc ma trn.
3.6.2. Quay quanh mt trc bt k song song vi cc trc ta
- u tin chuyn dch i tng cho n khi toa phng ca i tng trng vitrc 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+]
V d: quay i tng xung quanh mt trc // vi trc z vi khong dch chuyn l x,y v
gc quay l .
Gii:
=
1000
0cossin0
0sincos0
0001
][
Tx
=
1000
0cos0sin
00100sin0cos
][
Ty
-
8/14/2019 Ki thuat do hoa
51/173
Chng 3: Cc php bin i ha
51
[ ] [ ][ ][ ]
+
=
+
=
=
= +
10)sin)cos1(sin)cos1(0100
00cossin
00sincos
10
0100
0010
0001
.
10)cossin()sincos(
0000
00cossin
00sincos
100100
0010
0001
.
10000100
00cossin
00sincos
.
100100
0010
0001
..//
xyyx
yxyxyx
yxyx
TTTT ttttz
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 trcbt ki qua tm
Ta thc hin cc bc nh sau:
Quay V quanh trc y mt gc (-) sao chonm trn mt phng (y, z) c V1
Quay V1 quanh trc x mt gc sao chotrng vi trc z c V2
Bc 1:
-
8/14/2019 Ki thuat do hoa
52/173
Chng 3: Cc php bin i ha
52
Hnh 3.15 Quay V=ax+by+cz quanh trc oy
Ta tnh ?
Chiu V trn mt phng (x,z) c V. Ta c:
22sin
ca
a
+=
22cos
ca
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
cx
z
y
VV1
a
a
b
cx
z
V2
-
8/14/2019 Ki thuat do hoa
53/173
Chng 3: Cc php bin i ha
53
[ ]
++ +++
++++
+
=
=
1000
00
00
0001
1000 0cossin0
0sincos0
0001
222
22
222
222222
22
cbaca
cbab
cba
b
cba
ca
Tx
Vy [Tv] = [T-y]. [Tx]
Nu a ngc li ta c:
[ ] [ ][ ]( ) [ ][ ]yxxyv TTTTT ..11
==
Cho trc quay L (vectV = 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,,
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 sc thay i vhng, kch thc v hnh dng. Cc php bin i hnh hc c sbao 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 xngv 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 tong nht, to ca mtim c m t bi mt vector dng bao gm ba gi tr, hai gi tru tng ng vi toDescartes ca im , v gi tr th ba l 1. Vi cch biu din ny, ma trn ca php bin i cc t s kt hp ca cc php bin i css bng tch ca cc ma trn ca cc php bin ithnh phn.
Php bin i hnh hc 3D l s mrng ca php bin i 2D. Tng t n cng c ccphp: tnh tin, t l, bin dng v quay. Phc tp nht l php quay, nn chng ta kho st lnlt tn gin n phc tp: quay i tng quanh cc trc to, quanh 1 trc song song vitrc 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.
-
8/14/2019 Ki thuat do hoa
54/173
Chng 3: Cc php bin i ha
54
Lu php tnh tin v quay c chung thuc tnh l: sau khi bin i hnh dng v kchthc ca i tng khng thay i m chng ch b thay i v tr v nh hng trong khnggian.
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 giim D(3,1)?
3.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 tonh l A(2,2), B(3,1) v C(4,3). Xc nh ma trn bin iaffine 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 xi xng gng a gic m nh ca n: A(-1,0), B(0,-2), C(1,0) vD(0,2) xung quanh ng G trong cc trng hp sau:
i. x=2ii. y=3
iii. y=2x+36. Cho hnh chp ABCD c cc to A(0,0,0), B(1,0,0), C(0,1,0) v D(0,0,1). Quanh 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 mtphng cho (c vector php tuyn M, trn c mt im P).
x
y P
P
G
0
g
-
8/14/2019 Ki thuat do hoa
55/173
Chng 3: Cc php bin i ha
55
b. p dng tm ma trn cho php i xng gng vi mt phng i qua gc tov 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 2Da. Dch chuyn (dng cc phm dch chuyn)
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 3Da. Dch chuyn
b. Phng ln, thu nhc. Quay mt gc
Bi tp trc nghim:
1. Cho ABC c cc to A(1,1), B(1,2) v C(3,4) thu nh tam gic ch cn m vn gicnh im A. To mi ca tam gic l:
a. A(1,1), B(1/4, 1/2) v C(3/4,1)b. A(1,1), B(0.5, 1) v C(1.25,1.5)c. A(0.25,0.25), B(1, 1.5) v C(0.75,2)d. A(1,1), B(1, 1.25) v C(0.5,1.75)
2. Cho on thng AB c to A(2,3) v B(6,1) quay AB mt gc 600 vn gi cnh B.To mi ca AB l:
a. ) ))23,31' +A v B(6,1)b.
) ))232,34' +A v B(6,1)
c. ( )
+
13,324
1'A v B(1,6)
d. ) ))134,31' ++A v B(6,1)3. Cho hnh ch nht ABCD c cc to l A(-1,-1), chiu rng HCN l 4 v chiu di l 3.
Ngi ta phng ln HCN n cao ln gp 2 ln v rng gp 1.5 ln m vn gi cnhA. To mi ca HCN :
a. A(-1,-1), B(5,-1), C(5,-7) v D(-1,-7)b. A(-1,-1), B(-1,5), C(5,-1) v D(-7,-1)
c. A(2,2), B(3,4), C(5,-7) v D(-7,5)d. A(-1,-1), B(0,-1), C(-1,-7) v D(-1,5)
x
z
y Q
Q
-
8/14/2019 Ki thuat do hoa
56/173
Chng 3: Cc php bin i ha
56
4. Cho ng trn c tm ti (1,4), mt im trn ng trn A(1,0). Quay ng trn mtgc 900 quanh im A, tm mi ca ng trn l:
a. (0.5, 2)b. (-3,1)
c. (2,5)d. (-2,3)
5. Cho on thng AB trong khng gian c to A(2,1,1) v B(1,3,4), quay on thngquanh trc oz mt gc 300 vn cnh A. To mi ca AB l:
a. A(2,1,1), ) ) )3,23,31' +B
b. ( )
+ 4,2
13,32'A , B(1,3,4)
c. A(1,3,5), ) ) )3,23,31' +B
d. A(2,1,1),
4,3,
2
312'B
6. Cho ABC trong khng gian c to A(1,1,1), B(4,6,0) v C(2,-1,3) ko dn cho tam
gic rng ra (theo hng trc ox) ln 2 ln vn gi cnh B. To mi ca ABC l:a. A(2,1,1), B(4,6,0) v C(2,-1,3)
b. A(-2,1,1), B(4,6,0) v C(0,-1,3)c. A(2,1,1), B(2,3,1) v C(2,-1,1)d. A(2,2,2), B(4,6,0) v C(1,-0.5,1.5)
7. Cho hnh kim cng ABCD c cc to l A(4,6,1), B(1,2,3), C(2,2,5) v D(7,2,4). ixng gng hnh kim cng qua trc ox, to mi ca hnh kim cng l:a. A(4,6,-1), B(1,2,-3), C(2,2,-5) v D(7,2,-4)
b. A(-4,6,-1), B(-1,2,-3), C(-2,2,-5) v D(-7,2,-4)c. A(4,-6,-1), B(1,-2,-3), C(2,-2,-5) v D(7,-2,-4)d. A(-4,-6,-1), B(-1,-2,-3), C(-2,-2,-5) v D(-7,-2,-4)
8. Cho hnh kim cng ABCD c cc to l A(5,6,1), B(0,0,0), C(3,2,5) v D(8,2,4). Quayhnh kim cng quanh trc oy v vn gi cnh B. To mi ca hnh kim cng l:
a. A(-1,5,-1), B(0,0,0), C(2,3,-3) v D(2,4,8)b. A(1,6,-5), B(1,2,2), C(5,2,-3) v D(2,-4,8)
c. A(-1,5,-1), B(0,0,0), C(2,3,5) v D(2,4,8)d. A(1,6,-5), B(0,0,0), C(2,5,-3) v D(2,4,-8)
9. Trong on m sau cc s t,,, ln lt l cc phm mi tn dch chuyn:
c = getch();
switch (c)
{
case 75: x -= 10; //
break;
case 77: x += 10;//
break;
case 72: y -= 10; //
-
8/14/2019 Ki thuat do hoa
57/173
Chng 3: Cc php bin i ha
57
break;
case 80: y += 10;//
break;
}
a. Tri, phi, trn v dib. Tri, phi, di v trnc. Trn, di, tri v phid. Trn, di, phi v tri
10.Chng trnh sau a ra ci g?
#include
#include
#include
#include
#define RADS 0.017453293
void Function1() {
line (10,getmaxy()/2,getmaxx()-10,getmaxy()/2);
line (getmaxx()/2,10,getmaxx()/2,getmaxy()-10);
}
void Function2(int x1,int y1,int x2,int y2,int x3,int y3){
line (getmaxx()/2+x1,getmaxy()/2-y1,getmaxx()/2+x2,getmaxy()/2-y2);
line (getmaxx()/2+x2,getmaxy()/2-y2,getmaxx()/2+x3,getmaxy()/2-y3);
line (getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x1,getmaxy()/2-y1);
}void Function3(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);
Function2(x11,y11,x22,y22,x33,y33);
}
void main() {
clrscr();
int driver = DETECT, mode;
initgraph(&driver,&mode,"c:\\tc\\bgi");
int x1 =50,y1 = 20,x2 = 50,y2 = 100,x3 = 200,y3 = 20;
int xq=100,yq=100;
float goc=30 ;
Function1();
Function2(x1,y1,x2,y2,x3,y3);
-
8/14/2019 Ki thuat do hoa
58/173
Chng 3: Cc php bin i ha
58
Function3(x1,y1,x2,y2,x3,y3,xq,yq,goc);
getch();
closegraph();
}
A b c D
-
8/14/2019 Ki thuat do hoa
59/173
Chng 4: Cc gii thut ha cs
59
CHNG 4: CC GII THUT HO C S
1. H TA V M HNH CHUYN I
1.1. Cc h thng to trong ho
Mt hnh nh c to ra bng my tnh thng trnh by mt khung xem (viewing) tngphn ca quang cnh ln. Ging ht nh ta nhn cnh vt qua ca s hay mt knh ngm camera. to ra hnh nh i tng trn cc thit b hin th bt buc ngi s dng phi c bc bini trung gian.
1.1.1. Hto thc (WCS World Coordinate System)
H to ca i tng c cc chng trnh ng dng s dng m t to cc itng trong th gii thc.
n v trong h thng to ph thuc vo khng gian v kch thc ca i tng cm t: A0, nm, mm, m, km
Hnh 4.1 H to thc
1.1.2. Hto thit b(DCS Device Coordinate System)
L h thng to ca thit b ni hin th hnh nh v khng gian ca i tng m ngdng m t. Khng gian ca h thng ca to ny chnh l kch thc ca thit b hin thcs dng.
V d: mn hnh VGA 640x480, SVGA 600x800
1.1.3. Hto thit bchun (NDCS Normalized Device Coordinate System)
Chuyn i i tng t khng gian thc vo to thit b hin th. Phn mm hoc vit s thc hin s chuyn i m cha th xc nh r kch thc ca thit b cng nh
phn gii. Ta c cng cc lp vi thit b nhm m t vng hin th ra h to thit b chunho. Coi NDCS nh h to thit b c kch thc mn hnh hin th l mt hnh vung c cnhl mt n v (1x1).
-
8/14/2019 Ki thuat do hoa
60/173
Chng 4: Cc gii thut ha cs
60
Hnh 4.2 WCS World Coordinate System
Hnh 4.3 NDCS NormalizedDevice Coordinate System
Hnh 4.4 DCS Device Coordinate System
- Qui trnh chuyn i cc i tng trong WCS sang NDCS c gi l php nh xca s sang cng xem 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 gil php bin i trm lm vic (Workstation Transformation)
-
8/14/2019 Ki thuat do hoa
61/173
Chng 4: Cc gii thut ha cs
61
1.2. Php nh x tca s vo cng xem
Hnh 4.5 i tng trong ca s
Hnh 4.6 i tng ti cng xem
- Mt ca s (window) c ch nh bi bn to thc (WCS): Xwmin, Xwmax,Ywmin, Ywmax
- Mt cng xem (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 cng xem
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:
-
8/14/2019 Ki thuat do hoa
62/173
Chng 4: Cc gii thut ha cs
62
maxminminmax
minmax )()(
)(vww
ww
vvv xxx
xx
xxx +
=
maxminminmax
minmax
)()(
)(vww
ww
vv
v yyyyy
yy
y +
=
Ta c tm gi trtrn xc nh ca s v cng xem u l hng s. Vy chng ta honton 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:
[ ]
=
1010
001
ww
tt
yxT
- 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 cng xem:
[ ]
=
1..
00
00
minmax
minmaxminmin
minmax
minmaxminmin
minmax
minmax
minmax
minmax
ww
vvwv
ww
vvwv
ww
vv
ww
vv
yy
yyyy
xx
xxxx
yyyy
xx
xx
T
2. CC GII THUT XN TI (CLIPPING)
2.1. Khi nim
Xn ta l tin trnh xc nh cc im ca mt i tng nm trong hay ngoi ca s hinth. 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 nmngoi ca s hin th.
-
8/14/2019 Ki thuat do hoa
63/173
Chng 4: Cc gii thut ha cs
63
2.2. Clipping im
Gi s (x,y) l to ca mt im, vy im c hin th khi tho mn:
Xmin
-
8/14/2019 Ki thuat do hoa
64/173
Chng 4: Cc gii thut ha cs
64
Qui c sign(a) = 1 nu a dng
= 0 nu a m
Qu trnh kim tra v tr ca on thng so vi ca s. Tt cim u v im cui ca
on thng c m. Nu m ca P1 hoc P2u = 0000 th ton bon thng thuc phn hin th.
If (P1.M OR P2.M == 0000) then con thng thuc ca s hin th
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
Xt giao im:
Hnh 4.9 M t thut ton Cohen Sutherland outcode
- Tm giao im ca ng thng vi ca s, chnh xc hn l vi phn mrng ca ngbin.
- Ch : cc ng bin m im cui c chn s y ngang qua nhm thay i m 1thnh 0
- Nu:
Bt 1 l 1: ct y=ymax
Bt 2 l 1: ct y= ymin
Bt 3 l 1: ct x=xmax
Bt 4 l 1: ct x=xmin
Nhn trn hnh ta c: gi im cui ca on (x1,y1)
Nu C c chn th ng y=ymin chn tnh phn ct nhau (bt 2 = 1)
Nu D c chn th y=ymax hoc x=xmax (bt 1 v bt 3 =1)
To ct:
=
=
+=
=
max
min
11
maxmin
)(
/
xx
xx
xxmyy
xxx
ii
i
Hoc:
ymax
ymin
xmin xmax
A(0001)
B(1000)
C(0100)
D(1010)
-
8/14/2019 Ki thuat do hoa
65/173
Chng 4: Cc gii thut ha cs
65
max
min
maxmin
11
/
/)(
yy
yy
yyy
myyxx
i
ii
=
=
=
+=
C m l dc ca on thng
m=(y2-y1)/(x2-x1)
By githay im cui (x1,y1) vi im ct (xi,yi)
V d: Cho ca s ct ta hnh ch nht c gc tri di L(-3,1), gc phi trn R(2,6)
Hy tm m vng dnh cho cc im cui ca cc on AB c A(-2,3), B(1,2) ; CD c C(-4,7), D(-2,10) ; IK c I(-4,2), K(-1,7)
Tm hng mc ct ta ca chng
Gii:
- M vng
Bt 1 = sign(y-ymax) = sign(y-6)Bt 2 = sign(ymin-y) = sign(1-y)Bt 3 = sign(x-xmax) = sign(x-2)Bt 4 = sign(xmin-x)= sign(-3-x)Qui c sign(a) = 1 nu a dng
= 0 nu a mVy:
A(-2,3) c (0000)B(1,2) c (0000)C(-4,7)c (1001)D(-2,10) c (1000)
I(-4,2) c (0001)K(-1,7) c (1000)- Hng mc ct ta
AB c m vng u l (0000) nn n nm hon ton trongCD c (1001) and (1000) = (1000) (!= (0000)) nn hon ton nm ngoiIK c (0001) or (1000) =(1001) v (0001) and (1000) =(0000) nn phi xn ta.Xt I(0001) da trn ng bin xmin =-3
+=
=
)( 11
min
xxmyy
xx
cc
c
xmin = -3
m=(y2-y1)/x2-x1)= (7-2)/ (-1-(-4)) = 5/3
yc=2 + 5/3 (-3-(-4)) = 11/3
Thay I bi I1 (-3,11/3) (c m vng 0000)
Xt K(1000) ct ymax =6
=
+=
max
11 /)(
yy
myyxx
c
cc
yc=6
xc=-1 +(6-7)/(5/3)=-8/5Thay K bi K1(-8/5,6) c m vng 0000)
-
8/14/2019 Ki thuat do hoa
66/173
Chng 4: Cc gii thut ha cs
66
Vy sau khi xn ta on IK thu c I1K1
2.3.2. Gii thut Lyangbarsky
Biu din on thng theo tham bin: on thng bt k i qua hai im P1(x1,y1) v
P2(x2,y2) chng ta c phng trnh tham bin:
Hnh 4.10 Phng trnh tham s cho on thng
x=x(u) c 0
-
8/14/2019 Ki thuat do hoa
67/173
Chng 4: Cc gii thut ha cs
67
+ Vi im (x,y) nm bn trong ca s ct ta:
xmin
-
8/14/2019 Ki thuat do hoa
68/173
Chng 4: Cc gii thut ha cs
68
u1 l cc gi tr cc i ca tp hp ang cha 0 v cc gi tr ukc tnh
u2 l cc gi tr cc tiu ca tp hp ang cha 1 v cc gi tr ukc tnh
V d: cho ca s ct ta hnh ch nht c gc tri di L(1,2) v gc phi trn R(9,8). Ccc on AB to A(11,10) v B(11,6), on CD to C(3,2) v D(8,4), on IJ to I(-1,7)v J(11,1). Tm cc hng mc ct ta.
Gii:
Xt AB
P1 = 0q1=10
P2 = 0q2=-2
P3 = -4q3=4
P4 = 4q4=2
C P2 =0 m q2 =-2
-
8/14/2019 Ki thuat do hoa
69/173
Chng 4: Cc gii thut ha cs
69
Vy ng sau khi ct ta l: I1I2 c I1(1,6) v I2(9,2)
2.4. Gii thut xn ta a gic (Sutherland Hodgman)
2.4.1. Khi nim
Hnh 4.12 Cc loi a gic
- a gic li: l a gic c ng thng ni bt k 2 im bn trong no ca a gic unm trn trong a gic. a gic khng li l a gic lm.
- Theo qui c: mt a gic vi cc nh P1, .....,PN (cc cnh l Pi-1Pi v PNP1) c gi ltheo hng dng nu cc hnh theo th t cho to thnh mt mch ngc chiu kimng h.
Nu bn tay tri ca mt ngi dc theo bt k cnh Pi-1Pi hoc PNP1 cng ch v bntrong a gic.
Hnh 4.13 Qui tc tm hng dng ca mt a gic hng
- Kho st mt im so vi mt ng thng:
Hnh 4.14 Kho st mt im so vi ng thng
C im A(x1,y1), B(x2,y2) v P(x,y)
Theo nh ngha th tch ca hai vect (ABxAP) ch theo hng ca vectK vi mt
phng (xoy). C:AB=(x2-x1)i + (y2-y1)j
triangular convex non-convex self-intersecting religious
L
R
K
A(x1,y1)
P(x,y)
B(x2,y2)
ABxAP
-
8/14/2019 Ki thuat do hoa
70/173
Chng 4: Cc gii thut ha cs
70
AP=(x-x1)i + (y-y1)j
Vy ABxAP=[ (x2-x1).(y-y1) (y2-y1).(x-x1) ].K
Do hng c xc nh nh sau:
))(())(( 112112 xxyyyyxxC = - Nu C dng th P nm bn tri AB
- Nu C m th P nm bn phi AB
2.4.2. Gii thut Hodgman
Cho P1,......,PN l danh sch cc nh ca a gic b ct ta. Cho cnh AB (im A,B) lcnh bt k. a gic ct ta li hng dng.
Hnh 4.15 Cc trng hp trong gii thut Hodgman
Nu c Pi-1 v Piu nm bn tri ca cnh ny th Pic lu li (a vo output) caa gic ct ta.
Nu c Pi-1 v Piu nm bn phi ca cnh th khng c nh no c lu li.
Nu Pi-1 nm bn tri v Pi nm bn phi ca cnh th giao im I ca Pi-1Pi vi cnh sc lu li.
Nu Pi-1 nm bn phi v Pi nm bn tri th c giao im I v Piu c lu li.
2.4.3. Minh ho thut ton Sutherland Hodgman
F=P1 (F l nh c a vo u tin, S l nh a vo trc P - nh c a). Sbn phi khp kn a gic bi PNP1
A
B
A A A
B BBPi-1
Pi
output
Pi
Pi
Pi
Pi-1
Pi-1Pi-1
I
I
output
output
output
-
8/14/2019 Ki thuat do hoa
71/173
Chng 4: Cc gii thut ha cs
71
Hnh 4.16 S khi thut ton Hodgman
2.4.4. V d minh ho:
Begin
P(Vertex Input)Vertex Output, F,AB,N
I=1S=Pi
i=1
i++ F=P1
SPi ctAB
Giao ct I
Vertex outputI
S=Pi
S bn triAB
i
-
8/14/2019 Ki thuat do hoa
72/173
Chng 4: Cc gii thut ha cs
72
V d 1: ct ta a gic A1,.A5 da trn ca s ABCD
Hnh 4.17 V d dng gii thut Hodgman xn ta a gic A1...A5
V d 2: hy s dng thut ton Hodgman ct xn on thng ni P1(-1,2) n P2(6,4)
trn ca s A(1,1), B(5,1), C(5,3) v D(1,3)
Hnh 4.18 V d dng thut ton Hodgman xn ta on P1P2
A
B C
D
A1
A2
A3
A4
A5
A
B C
D
B1
B2 B3
B4
B5
A
B C
D
C1
C2C3
C4
C5
A
B C
D
D1
D2 D3
D4
D5
A
B C
D
E1
E2E3
E4
E5
P1(-1,2)
D(1,3)
A(1,1)B(5,1)
C(5,3)
P2(6,4)I1I2
I3
-
8/14/2019 Ki thuat do hoa
73/173
Chng 4: Cc gii thut ha cs
73
Theo thut ton Hodgman ta xn P1P2 da trn tng cnh.
AB: ta xt C=(x2-x1)(y-y1) (y2-y1)(x-x1)
im P1: C=(5-1)(2-1)-(1-1)(-1-1) = 4 >0 nm bn tri
im P2: C= (5-1)(4-1)-(1-1)(-1-1) = 12 >0 nm bn triVy P1P2u c lu
BC
im P1:C = (5-5)(2-1)-(3-1)(-1-5)= 12 >0 nm bn tri
im P2:C = - (3-1)(6-5) = -2 0 nm bn tri
im I1:C=(1-5)(26/7 -3) = -20/7
-
8/14/2019 Ki thuat do hoa
74/173
Chng 4: Cc gii thut ha cs
74
thng mi hnh nh m chng ta quan st c trn mn hnh thit bc gi l mt gc nhn(view) ca i tng.
Qu trnh loi b cc phn hnh nh nm ngoi mt vng cho trc c gi l xn ta.Vng c dng xn ta gi l ca s xn ta.
Cc thut ton xn ta on thng Cohen-Sutherland, LyaBarsky u tp trung gii quythai vn chnh nhm ti u tc thut ton l: loi b vic tm giao im i vi cc onthng chc chn khng ct ca s (nh nm hon ton trong, nm hon ton ngoi), v vi onthng c kh nng ct ca s, cn phi tm cch hn ch s ln tm giao im vi cc bin khngcn thit. Thut ton Cohen-Sutherland gii quyt hai ny thng qua kiu d liu m vng mv bn cht ch l s m t v tr tng i ca vng ang xt so vi cc bin ca ca s. Cnthut ton LyaBarsky th tuy da vo phng trnh tham s ca on thng l p lun nhngthc cht l da trn vic xt cc giao im c th c gia on thng ko di vi cc bin caca s (cng c ko di). Cc giao im ny tng ng vi cc gi tr rk = qk/pk. C hai thut
ton ny u c thc mrng cho vic xn hnh trong ho 3D.
Bi tp:
1. Tm php bin i chun ho to nh x cho mt ca s m gc bn tri pha di ca n(1,1) v gc bn phi trn (3,5) vo:
a. L mn hnh thit bc chun ho ton b.
b. Mt cng xem c gc bn tri di (0,0) v gc bn tri trn (1/2,1/2)
2. Cho ca s ct ta hnh ch nht c gc bn tri di (-3,-2) v gc phi trn (2,3), dnggii thut Cohen Sutherland xn ta on thng AB c to l A(3,2) v B(-2,-4).
3. Cho ca s ct ta hnh ch nht c gc bn tri di (-3,-2) v gc phi trn (2,3), dnggii thut LyaBarsky xn ta on thng AB c to l A(3,2) v B(-2,-4).
4. Vit chng trnh ci t thut ton Cohen Sutherland.
5. Vit chng trnh ci t thut ton LyaBarsky
6. Vit chng trnh ci t thut ton Sutherland Hodgman
Bi tp trc nghim:
1. H to thit b chun (NDCS) c kch thc mn hnh hin th l hnh ch nht cchiu di gp i chiu rng. Vy nu mt hnh ch nht ng (c chiu di gp i chiurng khi hin th trn mn hnh s cho:
a. Hnh ch nht nm ngang (chiu di gp i chiu rng)
b. Hnh vung
c. Vn l hnh ch nht ng
d. Hnh ch nht c chiu di gp 1.5 chiu rng
2. Php bin i chun ho to nh x cho mt ca s m gp bn tri pha di (1,3) v gc
bn phi trn (4,7) vo mn hnh c chun ho ton b l:
-
8/14/2019 Ki thuat do hoa
75/173
Chng 4: Cc gii thut ha cs
75
a.
1413
31
04
10
003
1
b.
3
100
020
213
1
c.
14
13
4
1
0310
033
1
d.
1
4
130
03
110
3
102
3. Cho ca s ct ta gc tri di (-2,2) v gc phi trn (4,7). M vng 4bt ca im A(-3,-1) l:
a. 1000
b. 1010
c. 0101
d. 0001
4. Cho ca s ct ta c gc tri di (2,-3) v phi trn (5,6), m vng 4bt ca imM(6,10) l:
a. 1010
b. 1100
c. 0101
d. 0001
5. Cho ca s ct ta c gc tri di (2,2) v gc phi trn (5,10). Cho on AB c A(1,5)v B(6,8), sau khi xn ta ta thu c to mi l:
a.
3,5
235,
5
33
-
8/14/2019 Ki thuat do hoa
76/173
Chng 4: Cc gii thut ha cs
76
b.
5
33,32,
5
13
c.
2,
5
27
5
13,5
d.
5
27,5
5
35,2
6. Cho ca s ct ta c gc tri di (1,2) v phi trn (9,8). on thng MN c M(-1,7) vN(11,1), sau khi xn ta ta thu c on thng c to l:
a. (2,6) v (7,1)
b. (5,2) v (9,1)
c. (1,6) v (9,2)
d. (3,9) v (6,3)7. Gii thut LyaBarsky da vo phng trnh ng thng:
a. Tng minh y=f(x)
b. Khng tng minh f(x,y) = 0
c. Tham s x = x(t), y = y(t) c t [0,1]
d. Do ng a ra
8. Trong cc cu ni sau cu no sai ?
a. on thng c hin th khi c hai u cui u trong ca s hin th
b. on thng nm hon ton ngoi khi n phm bt k mt trong bn bt ng thcsau:
x1,x2>xmaxx1,x2 ymaxy1,y2 =xmaxx1,x2 = ymaxy1,y2
-
8/14/2019 Ki thuat do hoa
77/173
Chng 4: Cc gii thut ha cs
77
10. Hm sau l mt hm trong gii thut Cohen Sutherland. Bn hy cho bit ln lt cc dnglnh , , , s cho cc m vng 4bt l: (chiu theo nh ngha m vng 4bt trong sch kthut ho)
unsigned char encode(double x, double y, double xmin, double ymin,
double xmax, double ymax)
{
unsigned char code = 0x00;
if (x < xmin)
code = code | LEFT_EDGE;//
if (x > xmax)
code = code | RIGHT_EDGE; //
if (y < ymin)
code = code | TOP_EDGE; //
if (y > ymax)
code = code | BOTTOM_EDGE;//
return code;
}
a. 0x8, 0x4, 0x2 v 0x1b. 0x1, 0x2, 0x4 v 0x8c. 0x1, 0x2, 0x8 v 0x4d. 0x2, 0x8, 0x4 v 0x1
11. Bn hy cho bit hm sau l mt trong nhng hm ci t cho gii thut xn ta no?#define TRUE 1
#define FALSE 0int cliptest(double p, double q, double *u0, double *u1)
{
double r;
int retVal = TRUE;
if (p < 0.0)
{
r = q / p;
if (r > *u1)
retVal = FALSE;
else
if (r > *u0)*u0 = r;
}
else
if ( p > 0.0)
{
r = q / p;
if (r < *u0)
retVal = FALSE;
else
if (r < *u1)
*u1 = r;
}
else
-
8/14/2019 Ki thuat do hoa
78/173
Chng 4: Cc gii thut ha cs
78
{
if (q < 0.0)
retVal = FALSE;
}
return (retVal);}
a. Cohen Sutherlandb. Lyabarskyc. Hodgmand. Khng phi gii thut xn ta
-
8/14/2019 Ki thuat do hoa
79/173
Chng 5: Phiu chiu Projection
79
CHNG 5: PHP CHIU PROJECTION
1. KHI NIM CHUNG
1.1.Nguyn l v 3D (three-Dimension)
ha 3 chiu (3D computer graphics) bao gm vic b xung kch thc v chiu su cai tng, cho php ta biu din chng trong th gii thc mt cch chnh xc v sinh ng hn.
Tuy nhin cc thit b truy xut hin ti u l 2 chiu, Do vy vic biu din c thc thithng qua php t cht (render) gy o gic (illusion) v su
ho 3D l vic chyn th gii t nhin di dng cc m hnh biu din trn cc thit bhin th thng qua k thut t cht (rendering).
1.2. c im ca k thut ho 3D
C cc i tng phc tp hn cc i tng trong khng gian 2D
- Bao bi cc mt phng hay cc b mt
- C cc thnh phn trong v ngoi
Cc php bin i hnh hc phc tp
Cc php bin i h to phc tp hn
Thng xuyn phi b xung thm php chiu t khng gian 3D vo khng gian 2D
Lun phi xc nh cc b mt hin th
1.3.Cc phng php hin th 3D
Vi cc thit b hin th 2D th chng ta c cc phng php sau biu din i tng 3D:
- K thut chiu (projection): Trc giao (orthographic)/phi cnh (perspective)
- K thut nh du su (depth cueing)
- Nt khut (visible line/surface identification)
- T cht b mt (surface rendering)
- Ct lt (exploded/cutaway scenes, cross-sections)
Cc thit b hin th 3D:- Knh stereo - Stereoscopic displays*
- Mn hnh 3D Holograms
-
8/14/2019 Ki thuat do hoa
80/173
Chng 5: Phiu chiu Projection
80
Exploded/cutawayscenes (ct lt)
Perspective (phicnh) and Depth of
Field (chiu su)
Shadows as depth cues (to bng cmgic c chiu su)
Hnh 5.1 Cc cch m ti tng 3D
Hnh chiu cnh Hnh chiu bng Hnh chiu ng
Hnh 5.2 Cc gc nhn khc nhau ca m hnh 3D
-
8/14/2019 Ki thuat do hoa
81/173
Chng 5: Phiu chiu Projection
81
Hnh 5.3 Cc cch m ti tng 3D
2.PHP CHIU
nh ngha vphp chiu
Mt cch tng qut, php chiu l php chuyn i nhng im ca i tng trong hthng ta n chiu thnh nhng im trong h thng ta c s chiu nh hn n.
nh ngha vhnh chiu
nh ca i tng trn mt phng chiu c hnh thnh t php chiu bi cc ngthng gi l tia chiu (projector) xut pht t mt im gi l tm chiu (center of projection) iqua cc im ca i tng giao vi mt chiu (projection plan).
Cc bc xy dng hnh chiu
1. i tng trong khng gian 3D vi ta thc c ct theo mt khng gian xc nhgi l view volume.
2. View volume c chiu ln mt phng chiu. Din tch chon bi view volume trn mtphng chiu s cho chng ta khung nhn.
3. L vic nh x khung nhn vo trong mt cng nhn bt k cho trc trn mn hnh hin th hnh nh.
M hnh 3D(3D Modelling)
Tham s(Parametric)
a gic(Polygonal)
Mnh nh(Particles)
Nt khut(Implicit)
2222
rzyx =++
2
4
cos
sin
=
=
y
x
-
8/14/2019 Ki thuat do hoa
82/173
Chng 5: Phiu chiu Projection
82
Hnh 5.4 M hnh nguyn l ca tin trnh biu din i tng 3D
Hnh 5.6 Phn loi cc php chiu
Ct theo viewvolum
Php chiu trnmt phng chiu
Php bin i vocng nhn cata thit b
ta thc3D
ta theo vngct khung nhn
ta thitb
Php chiu hnh hcphng
Php chiu songsong
Php chiu phi cnh
Mt im
Ba im
Hai im
Trc giao Php chiuXin
Cavalier
Cabinet
Php chiukhc
Chiung
Chiucnh
Axonometric
Trimetric
Dimetric
Isometric
Chiubng
-
8/14/2019 Ki thuat do hoa
83/173
Chng 5: Phiu chiu Projection
83
Hnh 5.5 V d minh ho cc php chiu phi cnh
3. PHP CHIU SONG SONG (Parallel Projections )
Php chiu song song (Parallel Projections) l php chiu m cc tia chiu song songvi nhau hay xut pht tim v cng.
Phn loi php chiu song song da trn hng ca tia chiu (Direction Of Projection) vmt phng chiu (projection plane).
3.1.Php chiu trc giao (Orthographic projection)
L php chiu song song v tia chiu vung gc vi mt phng chiu. V mt ton hc,php chiu trc giao l php chiu vi mt trong cc mt phng to c gi tr bng 0. Thngdng mt phng z=0, ngoi ra x=0 v y=0.
ng vi mi mt phng chiu ta c mt ma trn chiu tng ng.
Hnh 5.7 Php chiu trc giao
=
1000
0000
0010
0001
][ zT
=
1000
0100
0000
0001
][ yT
=
1000
0100
0010
0000
][ xT
-
8/14/2019 Ki thuat do hoa
84/173
Chng 5: Phiu chiu Projection
84
Thng thng th ngi ta khng s dng c 6 mt phng suy din ngc hnh ca mti tng m ch s dng mt trong s chng nh: hnh chiu bng, ng, cnh.
C su gc nhn u c th thu c t mt mt phng chiu thng qua cc php bin ihnh hc nh quay, dch chuyn hay ly i xng.
V d: gi s chng ta c hnh chiu bng trn mt phng z=0, vi php quay i tngquanh trc mt gc 900 s cho ta hnh chiu cnh.
i vi cc i tng m cc mt ca chng khng song song vi mt trong cc mt phngh to th php chiu ny khng cho hnh dng tht ca vt th. Mun nhn vt th chnh xchn ngi ta phi hnh thnh php chiu thng qua vic quay v dch chuyn i tng sao chomt phng song song vi cc trc to.
Hnh ca i tng qu phc tp cn thit phi bit cc phn bn trong ca i tng ilc chng ta phi to mt ct i tng.
3.2. Php chiu trc lung (Axonometric)Php chiu trc lng l php chiu m hnh chiu thu c sau khi quay i tng sao cho
ba mt ca i tng c trng thy r nht (thng mt phng chiu l z=0).
C 3 php chiu- Php chiu Trimetric- Php chiu Dimetric- Php chiu Isometric
3.2.1.Php chiu Trimetric
L php chiu hnh thnh t vic quay t do i tng trn mt trc hay tt c cc trc ca
h ta v chiu i tng bng php chiu song song ln mt phng chiu (thng l mtphng z = 0).
Ngoi tr nhng mt phng ca i tng song song vi mt phng chiu khng thay i.Cc mt khc ca i tng hay hnh dng ca i tng thng bin dng sau php chiu.Tuynhin t l co (Shortening Factor - SF) l t s ca di on thng chiu so vi di thc tca i tng. Trn csSF php chiu trc lng c chia lm ba loi sau:
Php chiu Trimetric
Php chiu Dimetric
Php chiu IsometricVic tnh cc gi tr SF ny ca cc trc tng ng da vo cng thc [U]* [T].
[ U ]: l ma trn vectorn v ca cc trc x, y, z bt bin
[ T ]: l ma trn chiu tng hp tng ng
SF- t l co theo cc trc l:
=
=
1000
10
10
10
][
1100
1010
1001
][''
''
''
zz
yy
xx
yx
yx
yx
TU
-
8/14/2019 Ki thuat do hoa
85/173
Chng 5: Phiu chiu Projection
85
2'2'xxx yxf +=
3.2.2.Php chiu Dimetric
L php chiu Trimetric vi 2 h s t l co bng nhau, gi tr th 3 cn li l tu .
Php chiu c xy dng bng cch quay i tng quanh trc y theo mt gc , tip
quanh quanh trc ox mt gc v sau cng l php chiu trn mt phng z=0 vi tm chiu ti vtn.
Hnh 5.8 nh ca php chiu Trimetric vi cc tham s gc xoay thay i
2222'2'2 sin.sincos)( +=+= xxx yxf
=
=
1000
0000
0010
0001
.
1000
0cossin0
0sincos0
0001
.
1000
0cos0sin
0010
0sin0cos
]][][[][
PzRxRyT
=
=
1000
00
00
00
1000
00sincossin
00cos0
00sinsincos
][''
''
''
zz
yy
xx
yx
yx
yx
T
22'2'2 cos)( =+= yyy yxf
22 '' zzz yxf +=22 '' yyy yxf +=
-
8/14/2019 Ki thuat do hoa
86/173
Chng 5: Phiu chiu Projection
86
T l co trn x v y bng nhau nn ta c:
cos2 = cos2 + sin2.sin2
1- sin2 = 1-sin2 + sin2.sin2
sin2(sin2-1) = - sin2
2
22
sin1
sinsin
=
2
2
2
222
sin1
sin
sin1
sinsin
=
= zf
2sin2 zf
=
)2
(sin 1 zf
=
Ta thy t l co thuc khong [0 1], vi mi fz ta c bn kh nng ca php chiu.
fz = 0 fz =1/2 fz = 1
Hnh 5.9 Php chiu hnh hp vi f=0, f=1/2 v f=1
Khi fz =1/2 th:
208.22)378.0(sin)4/7
2/1(sin
705.20)35355.0(sin)22
1(sin
11
011
==
=
3.2.3.Php chiu Isometric
L php chiu trc lng m h s co cnh trn 3 trc l bng nhau.
Gc quay tng ng l 35.260 v 450
c ng dng nhiu trong vic xy dng cc gc quan st chun cho i tng trong cch son tho ho.
)sin1(sinsin)sin1(sinsin
sincossin)(222222
2222'2'2
+=+=
+=+= zzz yxf
2
22
sin1
sin21sin
=
2
22
sin1
sinsin
=
)2
(sin2
1
z
z
f
f
=
-
8/14/2019 Ki thuat do hoa
87/173
Chng 5: Phiu chiu Projection
87
026.35
3
1sin
=
=
0
2
22
45
2
1sin
2/13/11
3/1sin1
sinsin
=
=
=
=
=
V d cc php chiu song song:
othergraphic oblique
Dimetric isometric
Hnh 5.10 V d cc php chiu song song
3.3. Php chiu xin - Oblique
Php chiu Cavalier Php chiu Cabinet
045
026.35==
8165.03/2cos2 === f
-
8/14/2019 Ki thuat do hoa