Bài giảng Tô màu

Tài liệu Bài giảng Tô màu: CHNG 2 TÔ MÀU 2.1. GII THIU V CÁC H MÀU Giác quan ca con ngi cm nhn c các vt th xung quanh thông qua các tia sáng màu t t h n r t nhi u so v i 2 màu trng en. Vì vy, vic xây dng nên các chun màu là mt trong nhng lý thuyt c bn ca lý thuyt  ha. Vic nghiên cu v màu sc ngoài các yu t v mt vt lý nh b c sóng, cng , còn có 3 yu t khác liên quan n cm nhn sinh lý ca mt ngi d i tác ng ca chùm sáng màu i n t vt th là: Hue (sc màu), Saturation ( bo hòa), Lightness ( sáng). Mt trong nhng h màu c s dng rng rãi u tiên do A.H.Munsell a ra vào nm 1976, bao gm 3 yu t : Hue, Lightness và Saturation. Ba mô hình màu c s dng và phát trin nhi u trong các phn cng là: RGB - dùng v i các màn hình CRT (Cathode ray bube), YIQ – dùng trong các h th ng ti vi màu bng tn rng và CMY - s dng trong mt s thit b in màu. Ngoài ra, còn có nhi u h màu khác nh: HSV, HSL, YIQ, HVC, ... 2...

pdf7 trang | Chia sẻ: hunglv | Lượt xem: 1489 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Tô màu, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
CHNG 2 TÔ MÀU 2.1. GII THIU V CÁC H MÀU Giác quan ca con ngi cm nhn c các vt th xung quanh thông qua các tia sáng màu t t h n r t nhi u so v i 2 màu trng en. Vì vy, vic xây dng nên các chun màu là mt trong nhng lý thuyt c bn ca lý thuyt  ha. Vic nghiên cu v màu sc ngoài các yu t v mt vt lý nh b c sóng, cng , còn có 3 yu t khác liên quan n cm nhn sinh lý ca mt ngi d i tác ng ca chùm sáng màu i n t vt th là: Hue (sc màu), Saturation ( bo hòa), Lightness ( sáng). Mt trong nhng h màu c s dng rng rãi u tiên do A.H.Munsell a ra vào nm 1976, bao gm 3 yu t : Hue, Lightness và Saturation. Ba mô hình màu c s dng và phát trin nhi u trong các phn cng là: RGB - dùng v i các màn hình CRT (Cathode ray bube), YIQ – dùng trong các h th ng ti vi màu bng tn rng và CMY - s dng trong mt s thit b in màu. Ngoài ra, còn có nhi u h màu khác nh: HSV, HSL, YIQ, HVC, ... 2.1.1.H RGB (Red, Green, Blue) Mt ca chúng ta cm nhn ba màu rõ nh t là Red (), Green (lc), Blue (xanh). Vì vy, ngi ta ã xây dng mô hình màu RGB (Red,Green, Blue) là tp t t c các màu c xác nh thông qua ba màu va nêu. Chun này u tiên c xây dng cho các h vô tuyn truy n hình và trong các máy vi tính. T t nhiên, không phi là t t c các màu  u có th biu di n qua ba màu nói trên nhng hu ht các màu  u có th chuyn v c. H này c xem nh mt kh i ba chi u v i màu Red là trc X, màu Green là trc Y và màu Blue là trc Z. M!i màu trong h này c xác nh theo ba thành phn RGB (Hình 2.1). Chng II. Tô màu 26 Y Z X Black White Blue Cyan Yellow Green Red Magenta Hình 2.1. H màu RGB Ví d: Màu Red là (1, 0, 0) Màu Blue là (0, 0, 1) Red + Green = Yellow Red + Green + Blue = White 2.1.2. H CMY (Cyan, Magenta, Yellow) H này c"ng c xem nh mt kh i ba chi u nh h RGB. Nhng h CMY trái ngc v i h RGB, ch#ng h$n: White có thành phn (0, 0, 0) Cyan có thành phn (1, 0, 0) Green có thành phn (1, 0, 1) ... Sau ây là công thc chuyn %i t h RGB → CMY :           −           =           B G R Y M C 1 1 1 2.1.3. H YIQ H màu này c ng dng trong truy n hình màu bng tn rng t$i M&, do ó nó có m i quan h cht ch' v i màn hình raster. YIQ là s thay %i ca RGB cho kh nng truy n phát và tính t ng thích v i ti vi en trng th h tr c. Tín hiu truy n s dng trong h th ng NTSC (National Television System Committee). Sau ây là công thc bin %i t h RGB thành h YIQ: Chng II. Tô màu 27                     − −−=           B G R Q I Y * 311.0523.0212.0 321.0275.0596.0 114.0587.0299.0 Ma trn nghch o ca ma trn bin %i RGB thành h YIQ c s dng cho phép bin %i t h YIQ thành RGB. 2.1.4. H HSV (Hue, Saturation, Value) Mô hình màu này còn c gi là h HSB v i B là Brightness ( sáng) da trên c s( n n tng trc giác v tông màu, sc  và sc thái m& thut (Hình 2.2). Hue có giá tr t 00 → 3600 S, V có giá tr t 0 → 1 Black V Cyan 0.0 Blue 1.0 Green Red H White S Yellow White Hình 2.2. H màu HSV Ví d: Red c biu di n (00, 1, 1) Green c biu di n (1200,1,1) 2.1.5. H HSL (Hue, Saturation, Lightness) H này c xác nh b(i tp hp hình chóp sáu c$nh ôi ca không gian hình tr (hình 2.3). H S 1.0 L 0.0 0.5 White Red YellowGreen Cyan Blue Black White Hình 2.3. H màu HSL Chng II. Tô màu 28 2.2. CÁC THUT TOÁN TÔ MÀU 2.2.1. Bài toán Cho a giác S xác nh b(i n )nh : P1, P2, ..., Pn. Hãy tô màu mi n S. * Ph ng pháp t%ng quát : - Tìm hình ch nht W nh nh t cha S (hình 2.4). - Duyt qua t t c các im P(x, y) ∈ W. Nu P ∈ S thì tô màu im P. 2.2.2. Thut toán xác nh P ∈ S 2.2.2.1. S là a giác l i - L y P ∈ W, n i P v i các )nh ca S thì ta c n tam giác : Si= PPiPi+1, v i Pn+1=P1. - Nu  = n 1 i )dt(S i = dt(S) thì P ∈ S. Ta có công thc tính din tích ca S: S=  = ++ − n i iiii yxyx 1 11 |)(| 2 1 2.2.2.2. Tr ng hp tng quát (Thut toán Jordan) L y P(x, y) ∈ W, k* na ng th+ng ∆P xu t phát t P và không i qua các )nh ca a giác S. Gi S(P) là s giao im ca ∆P v i các biên ca S. Nu S(P) l* thì P ∈ S. * V n  còn l$i là tìm S(P): B c 1: K* na ng th+ng ∆P // 0y và h ng v phía y>0. B c 2: V i m!i c$nh Ci= PiPi+1 ca S: + Nu x=xi thì xét 2 c$nh có 1 u là Pi: Nu y<yi thì S W P 2 P 3 P 4 P 5 P 1 Hình 2.4 Chng II. Tô màu 29 • Nu c 2 u kia ( cùng mt phía ca ∆P thì ta tính ∆P ct c 2 c$nh. • Ngc l$i : ∆P ct 1 c$nh. + Ngc l$i: • Nu x>Max(xi,xi+1) hoc x<Min(xi,xi+1) thì ∆P không ct Ci • Ngc l$i: -Nu y<= Min(yi, yi+1) thì ∆P ct Ci -Ngc l$i : Xét ta  giao im (x0, y0) ca ∆P v i Ci Nu y >= y0 thì ∆P không ct Ci. Ngc l$i ∆P ct Ci. Thut toán này có th c cài t b,ng o$n ch ng trình nh sau: Type ToaDo=record x,y:integer; End; Mang=array[0..30] of ToaDo; Function SOGIAODIEM(a:Mang; n:Byte):Integer; var dem,i,j,s:Integer; Begin dem:=0; for i:=1 to n do { Tim so giao diem } begin if i=n then j:=1 else j:=i+1; if i=1 then s:=n else s:=i-1; if x=a[i].x then begin if y<a[i].y then if (x<=Min(a[s].x ,a[j].x))OR (x>=Max(a[s].x,a[j].x)) then dem:=dem+2 else dem:=dem+1; end else if (x>Min(a[i].x,a[j].x)) and (x<Max(a[j].x,a[i].x)) then if y<=Min(a[i].y,a[j].y) then dem:=dem+1 else if y <= (x-a[j].x)*(a[i].y-a[j].y)/ (a[i].x-a[j].x)+a[j].y then dem:=dem+1; end; SOGIAODIEM:=dem; End; Chng II. Tô màu 30 2.2.3. Thut toán tô màu theo dòng quét (Scanline) -t x0 = Min(xi), i∈ [1,n]. B c 1: K* Dy//0y i qua x0 (hình 2.5). B c 2: Xác nh các giao im Mi- (x,y) ca Dy v i các c$nh Ci. Nu có c$nh Ci = PiPi+1 song song và trùng v i Dy thì xem nh Dy ct Ci t$i 2 im Pi và Pi+1. B c 3: Sp xp l$i các im Mi theo th t tng dn  i v i yi (im u tiên có th t là 1). B c 4: Nhng im n,m trên Dy  gia giao im l và giao im chn liên tip là nhng im n,m trong a giác và nhng im này s' c tô. B c 5: Tng x0 lên mt Pixel. Nu x0 ≤ Max(xi) thì quay l$i b c 1. 2.2.4. Thut toán tô màu theo vt du loang L y P(x,y) ∈ S, tô màu P. Xét các im lân cn ca P (Hình 2.6). Nu các im lân cn ó v.n còn thuc S và cha c tô màu thì tô màu các im lân c$n ó... Thut toán trên có th c minh ha b,ng th tc  qui: Procedure TOLOANG(x,y:Integer; Color:Word); Begin If (P(x,y)∈S)and(P(x,y)cha tô) Then Begin PutPixel(x,y,Color); TOLOANG(x+1,y,Color); TOLOANG(x-1,y,Color); x 0 xi x Dy y Hình 2.5 O X X X X O Hình 2.6 Chng II. Tô màu 31 TOLOANG(x,y+1,Color); TOLOANG(x,y-1,Color); End; End; BÀI TP 1. Vit hàm DienTich(P:Array; n:Byte);  tính din tích ca a giác li có n )nh lu trong mng P. 2. Vit hàm KiemTra(x,y:Integer; P:Array; n:Byte):Boolean;  kim tra im (x,y) n,m trong hay ngoài a giác có n )nh c lu trong mng P theo hai cách: - Dùng công thc tính din tích a giác ( i v i a giác li). - Dùng thut toán Jordan ( i v i a giác b t k/). 2. Vit ch ng trình cài t thut toán tô màu mt a giác theo thut toán Scanline. 3. Vit ch ng trình cài t thut toán tô màu mt a giác theo vt du loang theo hai ph ng án: a. - qui. b. Kh  qui. 4. Vit th tc FillRec(x1,y1,x2,y2:Integer; color:Byte);  tô màu hình ch nht xác nh b(i 2 )nh (x1,y1) và (x2,y2). 5. Vit th tc FillEllipse(x,y,Rx,Ry:Integer; color:Byte);  tô màu Ellipse có tâm (x,y) và bán kính theo hai trc là Rx và Ry. 6. Vit th tc FillSector(x,y,Rx,Ry,g1,g2:Integer; color:Byte);  tô màu hình qu$t Ellipse có tâm (x,y), bán kính theo hai trc là Rx và Ry, góc bt u là g1 và góc kt thúc là g2. 7. Vit th tc Donut(x,y,Rmin,Rmax:Integer; color:Byte);  tô màu hình vành khn có tâm (x,y) và bán kính hai ng tròn t ng ng là Rmin và Rmax. Bài tp l n: Xây dng mt th vin  ha MYGRAPH t ng t nh th vin GRAPH.TPU ca Turbo Pascal.

Các file đính kèm theo tài liệu này:

  • pdf_giaotrinhlythuyetdohoach2.pdf