Xem mẫu
- Tr ng H Hàng H i Vi t Nam
Khoa Công ngh thông tin
= = =&*&= = =
Bài gi ng môn h c
H A MÁY TÍNH
- L i nói u
Nh m ph c v cho công tác gi ng d y, h c t p môn h c h a máy tính c a
th y và trò khoa Công ngh thông tin - tr ng H HÀNG H I VI T NAM, b
môn H thông thông tin ti n hành t ng h p, biên so n s b t p bài gi ng môn
h c h a máy tính. T p bài gi ng này c biên so n ch y u d a trên Giáo
trình K thu t h a máy tính c a khoa CNTT - HBK Hà N i và Giáo trình
h a máy tính (dùng cho h ào t o t xa) c a HQG TP H Chí Minh.
Ngoài ra chúng tôi có tham kh o cu n Computer Graphics c a Donald Hearn &
M. Pauline Baker, nhà xu t b n Prentice-Hall, New Jersey, 1986 cùng m t s tài
li u khác (xem ph n tài li u tham kh o).
h c t t môn h c này, ngoài nh ng ki n th c c s v l p trình, sinh viên
c n ph i c trang b nh ng ki n th c c b n v i s , gi i tích, hình h c gi i
tích, hình h c h a hình, ki n trúc máy tính và thi t b ngo i vi,... Th c s
h a máy tính là m t môn h c không n gi n, s! d ng nhi u công c toán h c
và òi h"i ki n th c t ng h p.
Vì ây là l n u tiên biên so n nên ch#c ch#n không tránh kh"i nh ng thi u
sót. R t mong nh n cs óng góp ý ki n c a quý ng nghi p và c a các
em sinh viên công vi c biên so n ngày càng t t h n.
B môn H th ng thông tin
Khoa Công ngh thông tin - Tr ng H Hàng H i
2
- M cl c
M c l c ................................................................................................................. 3
Ch ng 1: T ng quan v h a máy tính ....................................................... 5
1.1 Khái ni m v h a máy tính và l ch s phát tri n .................................... 5
1.2 K thu t h a t ng tác(Interactive Computer Graphics) ...................... 6
1.3 Khái quát v h th ng h a ...................................................................... 7
1.3.1 Ph n c ng .............................................................................................. 8
1.3.2. Ph n m m ........................................................................................... 11
1.4 Các h màu c b n ................................................................................... 13
1.4.1 Không gian RGB (RGB space) ........................................................... 14
1.4.2 Không gian HSL.................................................................................. 15
1.4.3 Không gian HSV ................................................................................. 16
1.4.4 Không gian màu CMY (Cyan - Magenta - Yellow) ........................... 17
Ch ng 2: Các thu t toán v ng và tô màu c b n............................... 19
2.1 H t a th gi i th c, h t a thi t b và h t a chu n ................. 19
2.1.1 H t a th gi$i th c ........................................................................ 19
2.1.3 H t a thi t b chu%n (Normalized device coordinates) ................. 20
2.2 Các thu t toán v ng d a trên i m .................................................... 21
2.2.1 Các thu t toán v& ng th'ng............................................................ 21
2.2.2 Các thu t toán v& ng tròn .............................................................. 27
2.3 Các thu t toán tô màu................................................................................ 33
2.3.1 Tô màu theo t ng i m (ph ng pháp tô n gi n) ........................... 33
2.3.2 Tô màu theo dòng quét (scan - line).................................................... 37
2.3.3 Ph ng pháp tô màu d a theo ng biên.......................................... 41
Ch ng 3: Các phép bi n i hình h c 2D ..................................................... 45
3.1 Các phép bi n i hình h c c s .............................................................. 45
3.1.1 Phép t nh ti n...................................................................................... 45
3.1.2 Phép bi n i t( l ............................................................................... 46
3.1.3 Phép quay ............................................................................................ 47
3.1.4 Bi u di)n ma tr n c a phép bi n i ................................................... 47
3.1.5 H t a thu n nh t (hormogeneous coordinates)............................. 48
3.2 K t h p các phép bi n i ......................................................................... 49
3.2.1 K t h p các phép t nh ti n................................................................... 49
3.2.2 K t h p các phép t( l ......................................................................... 50
3.2.3 K t h p các phép quay ........................................................................ 50
3.2.4 Phép quay có tâm quay là i m b t k*................................................ 50
3.3 M t s tính ch t c a phép bi n i Affine ................................................. 51
3.3.1 Phép bi n i affine b o toàn ng th'ng......................................... 51
3.3.2 Tính song song c a các ng th'ng c b o toàn .......................... 51
3.3.3 Tính t+ l v kho ng cách c b o toàn............................................. 51
3.4 M t s phép bi n i khác ......................................................................... 52
3
- 3.4.1 Phép i x ng...................................................................................... 52
3.4.2 Phép bi n d ng .................................................................................... 52
3.4.3 Phép bi n i ng c ............................................................................ 53
3.4.4 Phân rã phép bi n i .......................................................................... 53
3.5 Phép bi n i gi a các h t a .............................................................. 54
Ch ng 4: Hi n th các i t ng 2D.............................................................. 56
4.1 Quy trình hi n th các i t ng 2D.......................................................... 56
4.1.1 M t s khái ni m ................................................................................. 56
4.1.2 H t a quan sát và h t a thi t b chu%n.................................... 58
4.1.3 Chuy n i t c!a s quan sát sang vùng quan sát............................. 59
4.2 Các thu t toán c t xén hình ....................................................................... 60
4.2.1 Thu t toán Cohen - Sutherland............................................................ 61
4.2.2 Thu t toán Liang - Barsky................................................................... 66
Ch ng 5: T ng quan v h a 3D................................................................ 71
5.1 Khái quát chung......................................................................................... 71
5.1.1 S l c v quy trình hi n th ............................................................... 72
5.1.2 Mô hình khung n i k t ........................................................................ 73
5.1.3 V& các i t ng theo mô hình khung n i k t s! d ng các phép chi u
...................................................................................................................... 75
5.1.4 Phép chi u song song (Parallel Projection)......................................... 76
5.1.5 Phép chi u ph i c nh (Perspective Projection)................................... 78
5.2 Bi u di n các i t ng 3D ....................................................................... 79
5.2.1 Bi u di)n m,t a giác .......................................................................... 80
5.2.2 Các ng cong và m,t cong .............................................................. 85
5.2.3 Các m,t có quy lu t(ruled surfaces) .................................................... 85
5.2.4 Các m,t tròn xoay (Surfaces of revolution) ........................................ 87
5.2.5 Các m,t cong b c hai........................................................................... 88
Ch ng 6: Các phép bi n i trong h a 3D.............................................. 90
6.1 Các phép bi n i hình h c ....................................................................... 90
6.1.1. M t s khái ni m liên quan ................................................................ 91
6.1.2 Phép t nh ti n....................................................................................... 92
6.1.3 Phép t( l ............................................................................................. 93
6.1.4 Phép bi n d ng .................................................................................... 94
6.1.5 Phép quay ............................................................................................ 94
6.1.6 K t h p các phép bi n i Affine 3 chi u........................................... 98
6.2 Phép bi n i mô hình và phép bi n i h tr c t a ............................ 98
Tài li u tham kh o ........................................................................................... 100
4
- Ch ng 1
T ng quan v h a máy tính
1.1 Khái ni m v h a máy tính và l ch s phát tri n
K thu t h a máy tính là ph ng pháp và công ngh dùng trong vi c
chuy n i qua l i gi a d li u và hình nh trên màn hình b ng máy tính. K
thu t h a hay h a máy tính còn c hi u d $i d ng ph ng pháp và k
thu t t o hình nh t các mô hình toán h c mô t các i t ng hay d li u l y
c t các i t ng trong th c t .
M t s chuyên gia máy tính cho r ng K thu t h a máy tính có th nh
ngh-a nh m t l-nh v c c a công ngh thông tin mà ó nghiên c u, xây d ng
và t p h p các công c (mô hình lý thuy t và các th vi n l p trình) khác nhau
ki n t o, xây d ng, l u tr và x! lý các mô hình(model) và hình nh(image)
c a các i t ng, s v t khác nhau trong cu c s ng, s n xu t và nghiên c u.
Các mô hình và hình nh này có th là k t qu thu c t nh ng l-nh v c khác
nhau c a r t nhi u ngành khoa h c - k thu t ( V t lý, toán h c, thiên v.n h c,
c khí, ki n trúc...) và bao trùm r t nhi u th lo i a d ng và phong phú: c u
trúc phân t!, c u trúc sinh h c, mô hình tàu v/ tr ,...
Thu t ng k thu t h a máy tính (Computer Graphics) c xu t b i
m t chuyên gia ng i M tên là William Fetter vào n.m 1960. Khi ó ông ang
nghiên c u xây d ng mô hình bu ng lái máy bay cho hãng máy bay Boeing.
William Fetter ã d a trên các hình nh 3D c a mô hình ng i phi công trong
bu ng lái xây d ng nên m t mô hình t i u cho máy bay Boeing.
ây là ph ng pháp nghiên c u r t m$i vào th i k* ó. Ph ng pháp này có
nh ng tính n.ng v t tr i h n t t c các ph ng pháp nghiên c u xây d ng mô
hình bu ng lái máy bay truy n th ng tr $c ó c áp d ng t i Boeing. Ph ng
pháp này cho phép các k s thi t k quan sát m t cách tr c quan v trí c a phi
công trong bu ng lái. William Fetter ã ,t tên cho ph ng pháp c a mình là
"Computer Graphics".
L ch s! h a t nh ng n.m 1960 còn c ánh d u b i d án Sketchpad
t i MIT v$i Ivan Sutherland t i h i ngh Fall Joint Computer cùng v$i s ki n
l n u tiên t o m$i, hi n th và thay i c d li u hình nh tr c ti p trên
màn hình trong th i gian th c (hình 1.1)
5
- Hình 1.1: Hình nh h at ng tác u tiên trên Sketchpad
K thu t h a liên t c c hoàn thi n vào nh ng n.m 1970 v$i s xu t
hi n c a các chu%n h a làm t.ng c ng kh n.ng giao ti p và tái s! d ng c a
các ph n m m c/ng nh các th vi n h a.
S phát tri n bùng n c a công ngh vi i n t! và l-nh v c ph n c ng máy
tính trong nh ng n.m 1980 làm xu t hi n hàng lo t các v+ m ch h0 tr cho vi c
truy xu t h a i cùng v$i s gi m giá áng k c a máy tính cá nhân (PC) ã
làm h a càng i sâu vào cu c s ng th c ti)n.
K t n.m 1990 t$i nay các k thu t h a 3D và các phép x! lý c phát
tri n m nh m& và cho ra i hàng lo t các nh ng s n ph%m h a ng d ng
trong th c t nh thi t k mô hình, games, phim ho t hình, k x o i n nh,...
Các v+ m ch h a cho máy tính cá nhân th ng tr trong thi tr ng h a nh :
Nvidia, ATi, 3DLabs,... ngày càng hoàn thi n và cung c p ngày càng nhi u kh
n.ng cho ng i s! d ng. Liên ti p hàng t( ô la c u t cho h a máy
tính h a h1n s phát tri n không ng ng và nh ng s n ph%m ngày càng cc i
ti n s& là quà t,ng mong i cho nh ng ai yêu thích l-nh v c này.
1.2 K thu t h at ng tác(Interactive Computer Graphics)
C/ng nh m i l-nh v c khác trong công ngh thông tin, m t h th ng s!
d ng k thu t h a t ng tác là m t h th ng x! lý thông tin bao g m 3 thành
ph n v$i các thao tác t ng ng:
• Nh p d li u: thông qua các thi t b vào nh nh chu t, máy quét, bàn
phím,...
• X! lý và l u tr d li u
• Hi n th /K t xu t k t qu : thông qua các thi t b nh màn hình, máy
in,...
Ngoài các ,c thù chung nh ã li t kê trên, h th ng k thu t h a
t ng tác còn có m t ,c i m r t ,c tr ng c a mình: trong h th ng này, các
thông tin và các d li u ,c tr ng c hi n th trên màn hình m t cách tr c
quan và ng i s! d ng có th quan sát, theo dõi và thay i giá tr ho,c khuôn
d ng c a chúng m t cách t ng tác (interactive) và ngay l p t c nh ng thay i
này s& c h th ng ghi nh n và x! lý. K t qu c a s thay i s& ch
th ng x! lý ngay trên các mô hình, c u trúc ho,c hình nh c a các i t ng và
hi n th chúng ngay trên màn hình nh ng i s! d ng mong mu n.
6
- Nh p/vào L u tr và Hi n th
d li u x! lý k t qu
USER
Hình 1.2: Mô hình chung c a h h a t ng tác
Nh trên mô hình chung c a m t h th ng s! d ng k thu t h a t ng
tác, chúng ta th y ng i s! d ng có kh n.ng giao ti p t ng tác v$i h th ng
c 3 giai o n trong quá trình x! lý thông tin.
H th ng h a t ng tác u tiên c thi t k và xây d ng b i
IvanSutherland n.m 1963. H th ng Sketchpad này c dùng thi t k m ch
i n và bao g m nh ng thành ph n sau:
• CRT màn hình.
• Bút sáng và m t keyboard bao g m 1 s phím b m ch c n.ng
• Máy tính ch a ch ng trình x! lý các thông tin
Ng i s! d ng có th v& m ch i n tr c ti p lên màn hình thông qua bút
sáng. ch ng trình s& phân tích và tính toán nh ng thông s c n thi t c a m ch
i n do ng i s! d ng v& nên.
Hình 1.3: Ivan Sutherland và h th ng Sketchpad (1962)
1.3 Khái quát v h th ng h a
M th h a bao gi c/ng có hai thành ph n chính ó là ph n c ng và ph n
m m. Ph n c ng bao g m các thi t b hi n th và nh p d li u,… Ph n m m bao
g m các công c l p trình và các trình ng d ng h a. Chúng ta s& l n l t
kh o sát các thành ph n này.
7
- 1.3.1 Ph n c ng
1.3.1.1 Thi t b hi n th
Nói chung, màn hình là thi t b hi n th thông d ng nh t trong m t h h a.
Các thao tác c a h u h t màn hình u d a trên thi t k c a ng tia âm c c
(CRT – cathode ray tube).
A. C u t o chung c a CRT
Hình 1.6 minh h a thao tác c s c a m t ng tia âm c c. M t chùm các tia
i n t! (tia âm c c) phát ra t m t súng i n t!, v t qua các h th ng h i t
(focusing) và d2n h $ng (deflection) s& h $ng t$i các v trí xác nh trên màn
hình c ph m t l$p phosphor. T i m0i v trí t ng tác v$i tia i n t!, h t
phosphor s& phát ra m t ch m sáng nh". Vì ánh sáng phát ra b i các h t
phosphor m d n r t nhanh nên c n ph i có m t cách nào ó duy trì nh trên
màn hình. M t trong các cách ó là l,p i l,p l i nhi u l n vi c v& l i nh th t
nhanh b ng cách h $ng các tia i n t! tr l i v trí c/. Ki u hi n th này g i là
refresh CRT.
Hình 1.4: C u t o c a CRT
Có nhi u lo i phosphor c dùng trong m t CRT. Ngoài màu s#c ra, i m khác
nhau chính gi a các lo i phosphor là " b n” (persistent), ó là kho ng th i
gian phát sáng sau khi tia CRT không còn tác ng. L$p phosphor có b n
th p c n t c làm t i cao h n gi cho hình nh trên màn hình kh"i nhòe.
Lo i này th ng r t t t cho ho t hình, r t c n thay i hình nh liên t c.
L$p phosphor có b n cao th ng c dùng cho vi c hi n th các nh
t-nh, ph c t p cao. M,c dù m t s lo i phosphor có b n l$n h n 1 giây,
tuy nhiên các màn hình h a th ng c xây d ng v$i b n dao ng t 10
n 60 micro giây.
S l ng t i a các i m có th hi n th trên m t CRT c g i là phân
gi i (resolution). M t nh ngh-a chính xác h n c a phân gi i là s l ng các
i m trên m t centimet mà có th c v& theo chi u ngang và chi u d c, m,c
dù nó th ng c xem nh là t ng s i m theo m0i h $ng.
Kích th $c v t lí c a màn hình h a c tính t dài c a ng chéo
màn hình, th ng dao ng t 12 n 27 inch ho,c l$n h n. M t màn hình CRT
có th c k t h p v$i nhi u lo i máy khác nhau, do ó s l ng các i m trên
màn hình có th c v& th t s còn tùy thu c vào kh n.ng c a h th ng mà nó
k t h p vào.
8
- M t thu c tính khác c a màn hình n a là t+ s ph ng (aspect ratio). T+ s
ph ng là t+ l c a các i m d c và các i m ngang c n phát sinh các o n
th'ng có dài n v theo c hai h $ng trên màn hình (trong m t s tr ng
h p ng i ta th ng dùng t+ s ph ng nh là t+ s c a các i m theo chi u
ngang so v$i các i m theo chi u d c). V$i các màn hình có t+ s ph ng khác
1, d) dàng nh n th y là các hình vuông hi n th trên nó s& có d ng hình ch
nh t, các hình tròn s& có d ng hình ellipse. Th c ra khái ni m t+ s ph ng xu t
phát t b n ch t kho ng cách (n u tính cùng m t n v dài) gi a các i m
d c không b ng kho ng cách gi a các i m ngang. M t t+ s ph ng có giá tr
¾ có ngh-a là v& 3 i m theo chi u d c s& có cùng dài v$i vi c v& 4 i m
theo chi u ngang.
B. Màn hình d ng i m (raster - scan display)
Màn hình d ng i m là d ng th ng g,p nh t trong s các d ng màn hình s!
d ng CRT d a trên công ngh truy n hình.
Trong h th ng này, chùm tia i n t! s& c quét ngang qua màn hình, m0i l n
m t dòng và quét tu n t t trên xu ng d $i. S b t t#t c a các i m sáng trên
màn hình ph thu c vào c ng c a tia i n t! và ây chính là c s c a vi c
t o ra hình nh trên màn hình.
M0i i m trên màn hình c g i là m t pixel hay là pel (vi t t#t c a picture
element). Các thông tin v hình nh hi n th trên màn hình c l u tr trong
m t vùng b nh$ g i là vùng m làm t i (refresh buffer) hay là vùng m
khung (frame buffer). Vùng b nh$ này l u tr t p các giá tr c ng sáng c a
toàn b các i m trên màn hình và luôn luôn t n t i m t song ánh gi a m0i i m
trên màn hình và m0i ph n t! trong vùng này.
Hình 1.5: Quá trình t o hình nh c a các tia quét
thay i các hình nh c n hi n th , các giá tr t ng ng v$i v trí và
sáng ph i c ,t vào vùng m khung. Hình 1.8 minh h a các giá tr t ng
ng trong vùng m khung hi n th hình nh c a ch A trên màn hình.
i v$i màn hình en tr#ng, vùng m khung còn c g i là bitmap, v$i
các màn hình khác vùng m khung th ng c g i là pixmap.
9
- t o ra các nh en tr#ng, n gi n ch+ c n l u thông tin c a m0i pixel
b ng 1 bit (các giá tr 0, 1 s& t ng tr ng cho vi c t#t (t i), b t (sáng) pixel trên
màn hình). Trong tr ng h p nh nhi u màu, ng i ta c n nhi u bit h n, n u
thông tin c a m0i pixel c l u b ng b bit, thì ta có th có 2b giá tr màu phân
bi t cho pixel ó.
Hình 1.6: Song ánh gi a vùng m khung và màn hình
Trong các màn hình màu, ng i ta nh ngh-a t p các màu làm vi c trong
m t b ng tra (LookUp Table - LUT). M0i ph n t! c a LUT nh ngh-a m t b
ba giá tr R (Red), G (Green), B (Blue) mô t m t màu nào ó. Khi c n s! d ng
m t màu, ta ch+ c n ch+ nh s th t (index) t ng ng c a màu ó trong LUT.
B ng LUT có th c thay i b i các ng d ng và ng i l p trình có th can
thi p i u khi n. V$i cách làm này chúng ta có th ti t ki m không gian l u tr
cho m0i ph n t! trong vùng m khung.
S ph n t! c a LUT c xác nh t s l ng các bits/pixel. N u m0i ph n
t! c a vùng m khung dùng b bits l u thông tin c a m t pixel, thì b ng LUT
có 2b ph n t!. N u b=8, LUT s& có 28=256 ph n t!, ó chính là s màu có th
c hi n th cùng m t lúc trên màn hình.
Vi c làm t i trên màn hình d ng này c th c hi n t c 60 n 80
frame/giây. ôi khi t c làm t i còn c bi u di)n b ng n v Hertz (Hz –
s chu kì/ giây), trong ó m t chu kì t ng ng v$i m t frame. S! d ng n v
này, chúng ta có th mô t t c làm t i 60 frame/giây n gi n là 60Hz. Khi
t n cu i m0i dòng quét, tia i n t! quay tr l i bên trái c a màn hình b#t
u dòng quét k ti p. Vi c quay tr l i phía trái màn hình sau khi làm t i m0i
dòng quét c g i là tia h i ngang (horizontal retrace). Và t$i cu i m0i frame,
tia i n t! (tia h i d c – vertical retrace) quay tr l i góc trên bên trái c a màn
hình chu%n b b#t u frame k ti p.
Trong m t s màn hình, m0i frame c hi n th thành hai giai o n s! d ng
k- thu t làm t i an xen nhau (interlaced refesh). 3 giai o n u tiên, tia quét
s& quét m t s dòng t trên xu ng d $i, sau tia h i d c, các dòng còn l i s& c
quét. Vi c an xen các dòng quét này cho phép chúng ta th y c toàn màn
hình hi n th ch+ trong m t n!a th i gian so v$i dùng quét t t c các dòng m t
l n t trên xu ng d $i. K- thu t này th ng c dùng cho lo i màn hình có t c
làm t i th p.
10
- Hình 1.7: Ho t ng c a màn hình interlaced
1.3.1.2. Các thi t b nh p
Hai lo i thi t b nh p c b n nh t trong máy tính v2n là chu t và bàn phím.
A. Bàn phím : Xu t hi n trong h u h t các máy tính, nó là thi t b nh p d
li u d ng v.n b n và s . ây là lo i thi t b quen thu c nh t v$i ng i s! d ng
tuy có h n ch là t ng tác không cao.
B. Chu t : Cùng v$i s xu t hi n c a các ng d ng h a t ng tác cao,
chu t là thi t b nh p ngày càng quen thu c v$i ng i s! d ng. Ng i ta dùng
chu t tr" và ch n (point-click) các ch c n.ng phù h p v$i yêu c u c a mình.
B ng cách này, giao ti p gi a ng i dùng và máy tính càng ngày càng thân thi n
và d) dàng h n. Ngoài ra chúng ta c/ng có m t s thi t b nh p khác cùng h
v$i chu t nh track ball, …
1.3.2. Ph n m m
Ph n m m h a có th phân thành 2 lo i : các công c l p trình và các trình
ng d ng h a ph c v cho m t m c ích nào ó. Các công c l p trình cung
c p m t t p các hàm h a có th c dùng trong các ngôn ng l p trình c p
cao nh C, Pascal, .. Ví d nh các th vi n h a c a các ngôn ng nh C,
Pascal hay GL (Graphics Library) c a Silicon Graphics. Các hàm c s c a nó
bao g m vi c t o các i t ng c s c a hình nh nh o n th'ng, a giác,
ng tròn,…, thay i màu s#c, ch n khung nhìn, áp d ng các phép bi n i,…
Trong khi ó, các ng d ng h a c thi t k cho nh ng ng i dùng không
ph i là l p trình viên, cho phép ng i dùng t o các i t ng, hình nh, … mà
không c n quan tâm t$i vi c chúng c t o ra nh th nào. Ví d nh là
Photoshop, AutoCAD, …
• Bi u di n t a
Thông th ng các h h a s! d ng h t a Descartes mô t i t ng.
N u các t a c a i t ng c mô t trong các h t a khác nh t a
c u, …, chúng ph i c chuy n v t a Descartes tr $c khi dùng.
• Quy trình hi n th i t ng
Tr $c tiên chúng ta mô t các i t ng thành ph n c a m t nh ph c t p
trong các h t a riêng thu n ti n cho vi c bi u di)n t a c a chúng. Các
h t a này c g i là h t a mô hình (modeling coordinates) hay còn g i
là h t a c c b (local coordinates). M t khi các i t ng thành ph n c
bi u di)n xong, chúng ta s& ,t chúng vào các v trí t ng ng trong nh s!
d ng h t a th gi$i th c (world coordinates). Sau cùng, các mô t c a nh
trong h t a th gi$i th c s& c chuy n n m t ho,c nhi u h t a khác
11
- nhau c a thi t b hi n th , tùy vào chúng ta mu n hi n th trên thi t b nào. Các
h t a này còn c g i là h t a thi t b (device coordinates). Các mô t
trong các h t a c c b và h t a th gi$i th c cho phép chúng ta s! d ng
th nguyên thích h p cho các n v o mà không ph i b ràng bu c gì c a t ng
thi t b hi n th c th .
Hình 1.8: Quy trình hi n th it ng
Thông th ng, các h h a chuy n các mô t trong h t a th gi$i th c
t$i h t a thi t b chu%n (normalized device coordinates) có các chi u là n
v tr $c khi chuy n t$i h t a thi t b . i u này làm cho h th ng c l p v$i
nhi u lo i thi t b khác nhau.
• Các hàm h a
Các hàm h a cung c p kh n.ng t o và thao tác hình nh. Các hàm này c
phân lo i nh sau :
-T p các công c t o ra các i t ng h a c s nh i m, o n
th'ng, ng cong, vùng tô, kí t , …
-T p các công c thay i thu c tính dùng thay i thu c tính c a
các i t ng h a c s nh màu s#c, ki u ng, ki u ch , m2u
tô, …
-T p các công c th c hi n các phép bi n i hình h c dùng thay
i kích th $c v trí, h $ng c a các i t ng, …
-T p các công c bi n i h quan sát dùng xác nh v trí quan sát
i t ng và v trí trên thi t b hi n th c dùng hi n th i
t ng.
-T p các công c nh p li u : Các ng d ng h a có th s! d ng
nhi u lo i thi t b nh p khác nhau nh bút v&, b ng, chu t, bàn
phím,… i u khi n và x! lí dòng d li u nh p.
12
- Cu i cùng là t p các công c ch a các thao tác dùng cho vi c qu n lí và i u
khi n ví d nh xóa toàn b màn hình, thi t l p ch h a, …
• Các chu n ph n m m
M c tiêu c.n b n c a các ph n m m h a c chu%n là tính t ng thích.
Khi các công c c thi t k v$i các hàm h a chu%n, ph n m m có th c
di chuy n m t cách d) dàng t h ph n c ng này sang h ph n c ng khác và
c dùng trong nhi u cài ,t và ng d ng khác nhau.
Sau nh ng n0 l c không nh" c a các t ch c chu%n hóa c a các qu c gia và
qu c t , m t chu%n cho vi c phát tri n các ph n m m h a ã ra i ó là
GKS (Graphics Kernel System – H h a c s ). H th ng này ban u c
thi t k cho t p các công c h a hai chi u, sau ó c phát tri n và m r ng
cho h a ba chi u.
Các hàm c a GKS th c s ch+ là các mô t tr u t ng, c l p v$i b t kì ngôn
ng l p trình nào. cài ,t m t chu%n h a cho ngôn ng c th nào, các cú
pháp t ng ng s& c xác nh và c th hóa.
M,c dù GKS xác l p c các ý t ng ban u cho các hàm h a c s , tuy
nhiên nó không cung c p m t cách th c chu%n cho vi c giao ti p h a v$i các
thi t b xu t. Nó c/ng không xác nh các cách th c cho các mô hình th i gian
th c c/ng nh các cách th c l u tr và chuy n i hình nh. Các chu%n cho các
cách th c này c xây d ng riêng, c th là : Các chu%n cho các cách th c giao
ti p thi t b c cho b i h CGI (Computer Graphics Interface System), h
CGM (Computer Graphics Metafile) xác nh các chu%n cho vi c l u tr và
chuy n i hình nh, và h PHIGS (Programmer’s Hierarchical Interactive
Graphics Standard) xác nh các cách th c chu%n cho các mô hình th i gian th c
và các kh n.ng l p trình m c cao h n mà ch a c quan tâm t$i trong
GKS.
1.4 Các h màu c b n
Vi c nghiên c u màu s#c bao g m nhi u l-nh v c nh : quang h c, sinh lí
h c, tâm lí h c và các nhân t khác thu c v con ng i. Vì th , có r t nhi u
quan ni m c/ng nh các thành ng v khoa h c các màu s#c. i v$i nh ng
ng i làm tin h c, v n mà h quan tâm là m i t ng tác qua l i gi a s c m
nh n màu s#c c a con ng i v$i các b ph n ph n c ng hi n th màu s#c c a
màn hình máy tính, và v$i các ph n m m thi t k trên nó.
13
- B ng d $i ây s& trình bày m i quan h này :
S c m nh n c i m ph n c ng c i m ph n
c a con ng i m m
Màu s#c Các màu hi n th g c Thu t toán trên
không gian màu
S#c màu B $c sóng
(Hue) (WaveLength)
bão hòa S thu n nh t c a màu
(Saturation)
sáng hay C ng sáng Hi u ch+nh gamma
chói
S "rung" c a T c làm t i (refresh)
màn hình
Không gian màu (color space) do ó c a ra nh các màu hi n th
trên máy tính b i vì chúng làm n gi n hóa các thao tác tính toán c n thi t cho
vi c chuy n i màu s#c (color transformation). Không gian màu có th c
thi t k ho,c là d a trên c s c a b phát sinh màu c a ph n c ng (hardware
color generation) (ví d nh không gian RGB) ho,c là d a trên s c m nh n
màu s#c c a m#t (nh không gian HSL). V$i m t ng d ng, vi c ch n không
gian màu nào s! d ng tùy thu c vào m t s nhân t sau : chính xác mà các
nhà thi t k c n ki m soát màu s#c (color control); yêu c u v s t ng tác gi a
các màu s#c và t c các tính toán cho ng d ng ó.
1.4.1 Không gian RGB (RGB space)
Không gian RGB mô t màu s#c b ng ba thành ph n Red, Green, Blue.
Không gian này c minh h a b ng m t kh i l p ph ng v$i các tr c chính
RED(R), GREEN(G), BLUE(B).
M0i màu trong không gian RGB u c bi u di)n nh là m t vector thông
qua ba vector c s là Red, Green, Blue. Do ó, ng v$i các t h p khác nhau
c a ba màu này s& cho ta m t màu m$i.
14
- Hình 1.9: Mô hình không gian RGB
Trong hình l p ph ng m0i màu g c (Red, Green, Blue) c ,t vào góc
i di n v$i các màu bù nó. (Hai màu bù nhau là hai màu mà khi k t h p t o
thành màu tr#ng hay xám (grey)). Nh v y Red i di n v$i Cyan, Green i
di n v$i Magenta, Blue i di n v$i Yellow. Giá tr xám n m trên ng chéo
n i các +nh (0,0,0);(1,1,1) c a hình l p ph ng. Th ng th ng các tr c R, G,
B c chu%n hóa. Khi k t h p hai màu l i v$i nhau thì màu sinh ra có vector
b ng t ng các vector thành ph n.
• M t s thu n l i khi dùng không gian RGB :
- Không gian RGB là chu%n công nghi p cho các thao tác h a máy
tính. Các thao tác màu s#c có th c tính toán trên các không gian màu
khác nh ng cu i cùng c n ph i chuy n v không gian RGB có th hi n
th trên màn hình (do thi t k c a ph n c ng d a trên mô hình RGB).
- Có th chuy n i qua l i gi a không gian RGB v$i các không gian
màu khác nh CIE, CMY, HSL, HSV, ...
- Các thao tác tính toán trên không gian RGB th ng n gi n h n.
• M ts b tl i:
- Các giá tr RGB c a m t màu là khác nhau i v$i các màn hình khác
nhau : Ngh-a là các giá tr RGB c a màu tiùm trên màn hình màu này s&
không sinh ra úng màu ó trên m t màn hình khác.
- S mô t các màu trong th gi$i th c i v$i không gian RGB còn
nhi u h n ch b i vì không gian RGB không hoàn toàn phù h p v$i s
c m nh n màu s#c c a con ng i. Hai i m phân bi t trong không gian
RGB, v$i m#t ng i có th ho,c không th là th hi n c a hai màu khác
nhau. Chính vì i u này mà không gian RGB không th ánh x tr c ti p
n b t c chi u c m nh n nào khác (nh hue, saturation, lightness) ngoài
hue (s#c ).
1.4.2 Không gian HSL
Không gian này có chú tr ng h n không gian RGB n các thành ph n c a
s c m nh n màu s#c c a m#t (Hue, Saturation, Lightness). Tuy nhiên, không
15
- gian HSL th c ra c/ng ch+ là m t phép bi n i g n úng c a không gian RGB
mà thôi. Không gi ng nh các không gian màu khác xây d ng trên s c m nh n
màu s#c c a m#t, không gian HSL v2n còn b l thu c vào ph n c ng c a CRT.
Không gian HSL c bi u di)n trong h t a tr , hình minh h a là hai
hình nón úp vào nhau. H (Hue) là to ng v$i góc quay, S (Saturation) là t a
g c, L là tr c th'ng ng. H u h t các màu t bão hòa khi S = 1 và L = 0.5.
Hình 1.10: Mô hình không gian HSL
• M t s thu n l i c a không gian HSL :
- Không gian HSL g n v$i s c m nh n các thu c tính màu s#c c a
con ng i h n không gian RGB (tuy cách ti p c n ã n gi n hóa
i nhi u). Các màu c xác nh d) dàng h n ch'ng h n do H
quay quanh tr c ng nên các màu bù c xác nh m t cách d)
dàng, i v$i các giá tr lightness c/ng v y.
- Vi c ki m soát các màu c s HSL d) h n cho nh ng ng i m$i
làm quen v$i các ch ng trình h a.
• M ts b tl i:
- Vi c thêm vào m t vector không th th c hi n n gi n nh
không gian RGB (ch+ thêm vào các thành ph n màu). Các thao tác
l ng giác khi bi n i s& nh h ng áng k n t c c a
ch ng trình.
- C n ph i qua hi u ch+nh gamma tr $c khi hi n th (gi ng nh các
không gian khác).
1.4.3 Không gian HSV
Không gian HSV th c ch t c/ng ch+ là m t s bi n i khác c a không gian
RGB. Không gian HSV c mô hình b ng hình l p ph ng RGB quay trên
+nh Black c a nó. H (Hue) là góc quay quanh tr c Values, S (Saturation) i t
0 n 1, tr c V (Values) do v y t ng ng v$i ng chéo n i +nh White và
Black.
16
- Hình 1.11: Mô hình không gian HSV
Theo cách này, các màu t bão hòa khi S=1 và V=1. Trong không gian HSV
các màu c chu%n hóa v s các gam (gamut) màu c a thi t b hi n th .
• M t s thu n l i c a không gian HSV :
- Không gian HSV d) dàng áp ng các màu s#c c a các ch ng trình
h a do c xây d ng d a trên s b#t ch $c lu t tr n màu c a ng i
h a s-. Ví d : Khi c n thêm màu tr#ng vào, ph i ,t V=S=1 sau ó
gi m S t t cho t$i khi t c màu v a ý; hay khi c n thêm màu en
vào, i u ó có ngh-a là gi m V (c ng sáng) và c nh S,...
- Do không c n s! d ng các phép bi n i l ng giác khi mu n
chuy n sang không gian RGB nên không gian HSV có nhi u thu n l i
v m,t tính toán h n so v$i không gian HSL.
• M ts b tl i:
- C n có các phép hi u ch+nh gamma.
1.4.4 Không gian màu CMY (Cyan - Magenta - Yellow)
T ng t nh không gian màu RGB nh ng 3 thành ph n chính là Cyan -
Magenta - Yellow. Do ó, t a các màu trong không gian CMY trái ng c v$i
không gian RGB. Ví d : màu White có các thành ph n là (0,0,0), màu Black
(1,1,1), màu Cyan (1,0,0),....
17
- B ng so sánh gi a các không gian màu
RGB HSL HSV
Chu%n công Hình th c bi n i Hình th c bi n i
nghi p cho các khác c a không khác c a không
thao tác h a gian RGB gian RGB
máy tính
Liên h tr c ti p Liên h g n h n Liên h g n h n v$i
v$i ph n c ng v$i s c m nh n s c m nh n màu
màu s#c c a con s#c c a con ng i
ng i
Là chuy n i òi h"i các phép ã n gi n hóa các
cu i cùng cho t t bi n i ph c t p thao tác tính toán.
c các nhu c u
hi n th
Không th chuy n c l p thi t b c l p thi t b
sang màn hình
khác (ph thu c
thi t b )
Không có s Có Có
t ng ng 1-1 v$i
cách c m nh n
màu c a con
ng i
Mô hình là hình Mô hình là hai Mô hình là hình nón
l p ph ng hình nón úp vào n
nhau
c chu%n hóa c chu%n hóa v c chu%n hóa v
v 1 1 1
bão hòa t bão hòa t bão hòa t max
max khi S =1 max khi S =1, L khi S =1, V =1
=0.5
Tr n màu không Rõ ràng Rõ ràng
rõ ràng
18
- Ch ng 2
Các thu t toán v ng và
tô màu c b n
2.1 H t a th gi i th c, h t a thi t b và h t a
chu n
Trong l-nh v c k thu t h a, chúng ta ph i hi u c r ng th c ch t c a
h a là làm th nào có th mô t và bi n i c các i t ng trong th
gi$i th c trên máy tính. B i vì, các i t ng trong th gi$i th c c mô t
b ng t a th c. Trong khi ó, h t a thi t b l i s! d ng h t a nguyên
hi n th các hình nh. ây chính là v n c b n c n gi i quy t. Ngoài ra,
còn có m t khó kh.n khác n a là v$i các thi t b khác nhau thì có các nh ngh-a
khác nhau. Do ó, c n có m t ph ng pháp chuy n i t ng ng gi a các h
t a và i t ng ph i c nh ngh-a b i các thành ph n n gi n nh th
nào có th mô t g n úng v$i hình nh th c bên ngoài.
Hai mô hình c b n c a ng d ng h a là d a trên m2u s hóa và d a trên
,c tr ng hình h c. Trong ng d ng h a d a trên m2u s hóa thì các i
t ng h a c t o ra b i l $i các pixel r i r c. Các pixel này có th u c
t o ra b ng các ch ng trình v&, máy quét, ... Các pixel này mô t t a xác
nh v trí và giá tr m2u. Thu n l i c a ng d ng này là d dàng thay i nh
b ng cách thay i màu s#c hay v trí c a các pixel, ho,c di chuy n vùng nh t
n i này sang n i khác. Tuy nhiên, i u b t l i là không th xem xét i t ng t
các góc nhìn khác nhau. 4ng d ng h a d a trên ,c tr ng hình h c bao g m
các i t ng h a c s nh o n th'ng, a giác,.... Chúng c l u tr b ng
các mô hình và các thu c tính. Ví d : o n th'ng c mô hình b ng hai i m
u và cu i, có thu c tính nh màu s#c, dày. Ng i s! d ng không thao tác
tr c ti p trên các pixel mà thao tác trên các thành ph n hình h c c a i t ng.
2.1.1 H t a th gi i th c
M t trong nh ng h t a th c th ng c dùng mô t các i t ng
trong th gi$i th c là h t a Descartes. V$i h t a này, m0i i m P c
bi u di)n b ng m t c,p t a (x ,y ) v$i x , y ∈ R
p p p p
19
- y
yp P( xp, yp)
0
xp x
Hình 2.1: H t a th gi$i th c
. Ox : g i là tr c hoành.
. Oy : g i là tr c tung.
. x : hoành i m P.
p
. y : tung i m P.
p
2.1.2 H t a thi t b
H t a thi t b (device coordinates) c dùng cho m t thi t b xu t c th
nào ó, ví d nh máy in, màn hình,..
Trong h t a thi t b thì các i m c/ng c mô t b i c,p t a (x,y).
Tuy nhiên, khác v$i h t a th c là x, y ∈ N. i u này có ngh-a là các i m
trong h t a th c c nh ngh-a liên t c, còn các i m trong h t a thi t
b là r i r c. Ngoài ra, các t a x, y c a h t a thi t b ch+ bi u di)n c
trong m t gi$i h n nào ó c a N.
Ví d : phân gi i c a màn hình trong ch h a là 640x480. Khi ó,
x∈(0,640) và y∈(0,480) (xem hình 2.2).
0 640 x
480
y
Hình 2.2: H t a trên màn hình
2.1.3 H t a thi t b chu n (Normalized device coordinates)
Do cách nh ngh-a các h t a thi t b khác nhau nên m t hình nh hi n
th c trên thi t b này là chính xác thì ch a ch#c hi n th chính xác trên thí t
20
nguon tai.lieu . vn