Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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