Giáo trình Đồ họa máy tính - Chương 2: Các đối tượng đồ họa cơ sở

pdf 14 trang huongle 1430
Bạn đang xem tài liệu "Giáo trình Đồ họa máy tính - Chương 2: Các đối tượng đồ họa cơ sở", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_do_hoa_may_tinh_chuong_2_cac_doi_tuong_do_hoa_co.pdf

Nội dung text: Giáo trình Đồ họa máy tính - Chương 2: Các đối tượng đồ họa cơ sở

  1. 4/2/2012 ơ ơ 2.1. Các i t ng ho cơ s. 2.2. Các thu t toán v ng th ng. a 2.3. Các thu t toán v ng tròn. 2.4. Các thu t v Elip. 2.5. Phông ch . ơ ơ ơ ơ 2.1. Gi i thi u các i t ng ho . 2.1. Gi i thi u các i t ng ho . 1) H to th c và h to thi t b: 1) H to thi t b: x[0,640], y[0,480] ơ ơ ơ ơ 2.1. Gi i thi u các i t ng ho . 2.1. Gi i thi u các i t ng ho . 3) on th ng, ng gp khúc: 2) im:  on th ng là mt ng th ng b gi i hn.  Trong không gian hai chi u (x,y).  ng gp khúc, a giác,  Trong không gian ba chi u: (x,y,z).  Các thu c tính ca on th ng:  Ngoài ta im còn có thu c tính là màu  Màu sc. sc.  rng ca nét v.  Ki u v các ng. 1
  2. 4/2/2012 ơ ơ ơ ơ 2.1. Gi i thi u các i t ng ho . 2.1. Gi i thi u các i t ng ho . 3) on th ng, ng gp khúc: 4) Vùng tô:  Mt s ki u on th ng, ng gp khúc và  Mt vùng tô bao gm: ng biên và vùng. a giác.  Các thu c tính ca vùng bao gm:  Thu c tính biên: nh thu c tính on th ng.  Thu c tính vùng: gm màu tô và mu tô. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 1) Gi i thi u: 1) Gi i thi u: Các pixel tơ ng ng ca on  Các nh ho phát sinh bng máy tính có th ng. hình dng và màu sc c mô t:  Bng dãy các Pixel tơ ng ng.  Ho c tp các i t ng hình hc cơ s nh on th ng hay vùng tô a giác. -> sau ó các nh s c hi n th bng cách np các pixel vào vùng m khung. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 1) Gi i thi u: Các im (X i+1,y i+1). 1) Gi i thi u: Các im v gn vi im mu n v: 2
  3. 4/2/2012 ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 1) Gi i thi u: 2) Thu t toán DDA (Digital Differential Analyzer )  Có th v ng t tng pixel da vào hàm  DDA là thu t toán tính ta các im da vào h toán hc:y=ax+b -> s góc ca ph ơ ng trình: y = ax + b  Bài toán: Hai im u vào, hai im cu i, màu tô. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 2) Thu t toán DDA (Digital Differential Analyzer ) 2) Thu t toán DDA (Digital Differential Analyzer )  Thu t toán DDA tính toán da ph ơ ng  Ta có: yi = ax i + b trình: y = ax + b.  Do ó: yi+1 = yi + a -> int(y i+1).  Trong ó: a = dy/dx=(y -y )/(x -x ). i+1 i i+1 i  Tơ ng t: xi+1 = xi + 1/a -> int(x i+1).  Yi+1 = ax i+1 + b = a(x i+1) + b = ax i + b + a.  Xét hai tr ng hp:  0 1: ch n tng tr c y mt ơ n v: yi+1=y i+1. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 2) Thu t toán DDA (Digital Differential Analyzer ) 3) Thu t toán Bresenham.  Hai tr ng hp này v mt im bt u  Bài toán: V on th ng t (x 1,y 1) – (x 2,y 2) bên trái - ph i, ng c li ta có: theo màu color.  a 1 thì gi m tr c y mt ơ n v. xác nh im ti p theo trong 8 im lân cn > Lu thu t toán 3
  4. 4/2/2012 ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 3) Thu t toán Bresenham. 3) Thu t toán Bresenham.  Hình dng ca on th ng ph thu c vào  Tơ ng quan ca Dx và Dy cho ta im v dx và dy. ti p theo.  Dx=0 - ng th ng song song vi tr c y.  Nu abs(dx)>abs(dy): y=f(x).  Dy=0 - ng th ng song song vi tr c x.  Nu abs(dx) abs(dy): x=f(y).  Dx>0 - to x bi n thiên tng dn.  Dx<0 - to x bi n thiên gi m dn. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 3) Thu t toán Bresenham. 3) Thu t toán Bresenham.  Thí d ta ph i v on th ng t im (20, 10) n im (32, 18). Thu t toán cài t có th c mô t nh sau: ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 3) Thu t toán Bresenham. 4) Thu t toán trung im v on th ng.  Vi c ch n im (x i+1,y i+1) là P1 hay P2 ph  Thu t toán này do Pitteway - 1967, c thu c vào so sánh d1 hay d2 hay là xét du Van Aken phát tri n – 1984. ca d1 – d2:  Gi s ta ch n M v, xác nh pixel ti p  Nu d1 - d2 <0: ch n im P1. theo ti N hay NE.  Nu d1 - d2 0: thì ch n im P2. 4
  5. 4/2/2012 ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 4) Thu t toán trung im v on th ng. 4) Thu t toán trung im v on th ng.  Ý t ng: M nm phía nào ca ng th ng  Gi s ng th ng c bi u di n bi nm trên thì ch n E, hàm các tham s a, b, c: F(x,y)=ax+by+c=0 ng c li ch n NE.  Ta có: y=x.dy/dx+B -> x.dy/dx – y + B = 0. Xác nh M âu? -> F(x,y)=x.dy/dx – y + B = 0 -> F(x,y) = x.dy – y.dx + B.dx = 0 t a=dy; b=-dx; c=B.dx. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 4) Thu t toán trung im v on th ng. 4) Thu t toán trung im v on th ng.  Giá tr hàm ti M: F(M)=F(x p+1,y p+1/2)=d  Giá tr ca hàm ti M ti im ti p theo s  Nu d>0 thì M nm d i ng th ng - ch n NE v là:  Nu d Dnew = Dold + a = Dold + Dy,Dy ch s gia ti p theo. ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.2. Các thu t toán v ng th ng. 4) Thu t toán trung im v on th ng. 4) Thu t toán trung im v on th ng.  Ch n NE ta có:  Gi s v on th ng (x 0,y 0) – (x 1,y 1), trung im th nh t có to (x 0+1;y0+1/2).  Dnew = F(x p+2,y p+3/2)= a(x p+2) + b(y p+3/2) +c F(x +1;y +1/2) = a(x +1)+b(y +1/2)+c = -> Dnew = Dold + a + b= Dold + Dy -Dx,Dy-Dx ch s 0 0 0 0 gia ca im ti p theo. = ax 0 + by 0 + c + a + b/2 = F(x 0,y 0) + a + b/2 F(x 0,y 0) = 0 ->d s= a + b/2 = dy - dx/2. ( nh ngh a li hàm F = 2( ))  Ta có: ds = 2dy - dx; E=2dy; NE =2(dy-dx) 5
  6. 4/2/2012 ơ ơ ơ ơ 2.2. Các thu t toán v ng th ng. 2.3. Các thu t toán v ng tròn. 5) Thu c tính ca ng v. *) Thu t toán v ng tròn.  rng ng: Nu dy>dx thì thêm pixel  Tơ ng t v on th ng, ng tròn bên cnh (x-1,x+1) ca pixel ã v, còn ho hình thành bi các pixel gn ng dy<dx thì thêm pixel trên, d i pixel ã v. tròn toán hc nh t.  Ki u ng v:S dng các mu:  Tính ch t:  Thi t k mu.  V ng tròn tâm ti gc to sau ó dch  Lp mt n bt u bng bit cao nh t có giá tr 1. chuy n n v trí mong mu n.  Khi v th c hi n AND mt n vi mu. ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 2.3. Các thu t toán v ng tròn. *) Thu t toán v ng tròn. *) Thu t toán v ng tròn.  Tính i xng: khi bi t to  Ph ơ ng trình ng tròn: x=x c+r.cos mt im d dàng suy ra to y=y c+r.sin ca 7 im còn li.  S dng ph ơ ng trình tính ta ng tròn.  Các thu t toán ti u khác. ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 2.3. Các thu t toán v ng tròn. *) Thu t toán v ng tròn. 1) Thu t toán Bresenham. 2 2 2 1) Thu t toán v ng tròn Bresenham:  Giá tr y c tính: y = r - (x i+1) . tơ ng t nh phát sinh ng th ng, tìm  Sai s có th tính nh sau: pixel nào gn ng tròn nh t. 2 2 2 2 2 d1 = yi – y = yi –r + (x i+1) 2 2 2 2 2 d2 = y – (y i-1) = r – (x i+1) –(y i-1) 6
  7. 4/2/2012 ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 2.3. Các thu t toán v ng tròn. 1) Thu t toán Bresenham. 1) Thu t toán Bresenham.  Thi t lp tham s pi xác nh to im  Nu bt u t p1 tính các tham s p. Thay v ti p theo: im v u tiên (x 1,y 1)=(0,r) vào ph ơ ng 2 2 2 2 trình (*) ta có: p = 3 – 2r. pi = d1 - d2 = 2(x i+1) + yi + (y i-1) - 2r (*) 1  T ó ta a ra thu t toán nh sau:  Nu pi 0 thì (x,y) ngoài vòng tròn. là im nào: E hay SE?  Vi F(x,y) < 0 thì (x,y) trong vòng tròn. 7
  8. 4/2/2012 ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 2.3. Các thu t toán v ng tròn. 2) Thu t toán trung im v ng tròn: 2) Thu t toán trung im v ng tròn:  Bi n quy t nh d: giá tr hàm ti M  Nu dold >0 thì ch n SE, X tng, y gi m. 2 2 2 2 2 2 dold = F(x p+1,y p-1/2) = (x p+1) +(y p-1/2) -r dnew=F(x p+2,y p-3/2)=(x p+2) +(y p-3/2) - r  Nu dold h=1–R. . . ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 2.3. Các thu t toán v ng tròn. 2) Nâng cp thu t toán trung im v ng 3) Nâng cp thu t toán tròn(sai phân cp hai).  Gi s ti im E: (x p,y p), (x p+1,y p) có sai  T t ng: ánh giá tr c ti p hàm ti hai phân cp 1 là: im gn k, tính sai phân và áp dng nó Eold = 2xp + 3; Enew = 2xp + 5. vào vòng lp.  Vy sai phân cp 2 là: Enew - Eold = 2. 8
  9. 4/2/2012 ơ ơ ơ ơ 2.3. Các thu t toán v ng tròn. 3) Nâng cp thu t toán 3) Nâng cp thu t toán  Ch n im v trên cơ s du bi n quy t nh d t vòng lp tr c.  Gi s ti im SE: (x p,y p), (x p+1,y p-1) có sai phân cp 1 là:  Cp nh p d bi SE hay E ph thu c tính vòng lp tr c. SEold = 2xp–2yp + 5; SEnew = 2xp-2yp + 9.  Cp nh p bi sai phân hng s ã tính tr c  Vy sai phân cp 2 là: ó ch n Pixel ti p theo. SEnew - SEold = 4.  Th c hi n phép lp.  TH: Kh i ng vi E=3 và SE =5-2R ca im kh i u (0,R). ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. *) Thu t toán v Elip. *) Thu t toán v Elip.  Ph ơ ng trình Elip: Có th tính to (x,y)  Ph ơ ng trình Elip s dng to cc r và ca im nh bng công th c i s t PT x = xc + r1.cos Elip. y = yc + r2.sin  Ph ơ ng trình Elip có dng: ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. *) Thu t toán v Elip: 1)Thu t toán trung im v Elip. 1)Thu t toán trung im v Elip.  ơ n gi n hoá ta ch v ¼ Elip, nh hình:  Ph ơ ng trình Elip chu n có tâm ti gc to (0,0) c bi u di n nh sau: F(x,y) = b2x2 + a2y2 – a2b2 = 0.  Trong ó a là bán kính ln theo x và b là bán kính nh theo y. 9
  10. 4/2/2012 ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 1)Thu t toán trung im v Elip. 1)Thu t toán trung im v Elip.  Chia ¼ Elip thành 2 vùng, ranh gi i c a hai  Ý t ng: ánh giá li hàm ti im gi a hai vùng ti im cong có ti p tuy n vi h to pixel ch n v trí ti p theo v, s góc là -1. Xác nh im ó nh sau: 2 2 du ca nó cho bi t im gi a nm trong  GradF(x,y) = dF/dx.i + dF/dy.j = 2b x.i + 2a y.j hay ngoài Elip.  Các thành ph n i, j là các véct ơ Gradient.  Vi vùng 1: Tính bi n quy t nh d ca p.  Thành ph n j ca G ln hơn i thì im trong vùng 1, còn ng c li trong vùng 2. d = F(x,y) = F(x p+1,y p-1/2) ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 1)Thu t toán trung im v Elip. 1)Thu t toán trung im v Elip.  Nu d =0: ch n SE, x tng, y gi m 2 2 2 2 2 2 2 2 2 2 2 2 dold =F(x p+1,y p-1/2)=b (x p+1) +a (y p-1/2) -a b dold =F(x p+1,y p-1/2)=b (x p+1) +a (y p-1/2) -a b 2 2 2 2 2 2 2 2 2 2 2 2 dnew=F(x p+2,y p-1/2)=b (x p+2) +a (y p-1/2) -a b dnew=F(x p+2,y p-3/2)=b (x p+2) +a (y p-3/2) -a b 2 2 2 = dold + b (2xp + 3) = dold + E = dold + b (2xp + 3) + a (-2yp+2) = dold + SE ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 1)Thu t toán trung im v Elip. 1)Thu t toán trung im v Elip.  V i vùng 2: Tính bi n quy t nh d c a p.  Nu d>=0: ch n S, x gi nguyên, y gi m d = F(x,y) = F(x p+1/2,y p-1) 2 2 2 2 2 2 dold =F(x p+1/2,y p-1)=b (x p+1/2) +a (y p-1) -a b  Nu d<0: ch n SE, x tng, y gi m d =F(x +1/2,y -2)=b 2(x +1/2)2+a 2(y -2)2-a2b2 2 2 2 2 2 2 new p p p p dold =F(x p+1/2,y p-1)=b (x p+1/2) +a (y p-1) -a b = d + a2(-2y +3) = d + 2 2 2 2 2 2 old p old S dnew=F(x p+3/2,y p-2)=b (x p+3/2) +a (y p-2) -a b 2 2 = dold + b (2xp + 2) + a (-2yp+3) = dold + SE 10
  11. 4/2/2012 ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 1)Thu t toán trung im v Elip. 3) Thu t toán v a giác.  Tìm giá tr kh i u cho s gia d:  Xây dng cu trúc v a giác: nh p vào  Vùng 1: gi s a,b nguyên, im bt u là (0,b) to các nh ri gi th tc v ng  im ti p theo là (1,b-1/2). F(1,b-1/2) = b2 – a2b + a2/4. th ng ln l t nh : (0,1), (1,2), (n-1,n), trong ó nh n trùng vi nh 0 thì ta s  Vùng 2: Ph thu c vào im (x p+1,y p-1/2) ca im ti p theo ca im cu i vùng 1. c mt a giác. 2 2 2 2 2 2 F(x p+1/2,y p-1) = b (x +1/2) + a (y -1) - a b = = b2x2 + b2x + b2/4 + a2(y-1)2 - a2b2. ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 3) Thu t toán v a giác. 3) Thu t toán v a giác.  a giác gi là a giác li: nu bt k mt ng th ng nào i qua mt cnh ca a giác thì toàn b a giác nm v mt phía ca ng th ng ó.  Ng c li, nu tn ti ít nh t mt cnh ca a giác chia a giác làm hai ph n thì gi là a giác lõm. ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 3) Thu t toán v a giác. 3) Thu t toán v a giác.  Thu t toán 1(Ki m tra a giác li hay lõm):  Gi s:y=ax+b,chiamt ph ng thành 2  Thi t lp ph ơ ng trình ng th ng i qua ph n. Ta có: các cnh ca a giác, xét các nh còn li  Nu im C(xc,yc) nm trên ng th ng thì có: có nm v mt phía hay không? yc > ax c + b. úng -> a giác li, Sai -> a giác lõm.  Nu im D(xd,yd) nm d i ng th ng thì: yd < ax d + b. 11
  12. 4/2/2012 ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.4. Các thu t toán v Elip. 3) Thu t toán v a giác. 3) Thu t toán v a giác.  VD: cho ph ơ ng trình y = 1/2x + 1, cho hai im C(0,4) và D(2,0) Yc=4>½.0+1. YD = 0 =0  Trong mt ph ng Oxy cho hai véct ơ a và b. a qu o ph i sang b nu T<0 Tích vô h ng ca hai véct ơ này là:  Mt a giác li khi i dc theo biên ca nó thì ch i theo mt h ng mà thôi, ng c li là a giác lõm. ơ ơ ơ ơ 2.4. Các thu t toán v Elip. 2.5. Phông ch . 3) Thu t toán v a giác.  Phông là tp kí t y có chung ki u dáng (style). Phông ch bao gm tr ng l ng và hình dáng.  Phông ch c Guttenberg thi t k s dng t nhi u th k qua, t khi công nghi thay i phông ã xu t hi n trên máy tính. 12
  13. 4/2/2012 ơ ơ ơ ơ 2.5. Phông ch . 2.5. Phông ch .  Trong máy tính - Các lo i phông bao gm: 1) Phông Raster.  Phông Raster.  Raster – là phông u tiên s dng hi n  Phông Vect ơ. th kí t trên máy tính. Chúng ơ n gi n và  Phông TrueType. hoàn ch nh, c cài trong thi t b iu khi n nh màn hình ho c máy in hi n th . ơ ơ ơ ơ 2.5. Phông ch . 2.5. Phông ch . 1) Phông Raster. 1) Phông Raster.  u và nh c im:  Tc hi n th nhanh.  D to lp và sa i.  Không th co dãn theo t l chính xác.  Dung l ng lu tr ln. ơ ơ ơ ơ 2.5. Phông ch . 2.5. Phông ch . 2) Phông Vect ơ. 2) Phông Vect ơ.  S dng ngôn ng mô t nh :  u và nh c im:  Các lnh ng th ng, ng cong, a giác,  D co dãn, tr ơn tru, d to lp hi u ng c bi t:  To : tơ ng i trong ch nh t ch a kí t. xoay, gp, cong,  Ch ơ ng trình con x lý các lnh hi n th .  Khi hi n th font nh ch m hơn bitmap font.  Hi n th nét ch m. 13
  14. 4/2/2012 ơ ơ ơ ơ 2.5. Phông ch . 2.5. Phông ch . 3) Phông TrueType. 3) Phông TrueType.  TrueType là công ngh font ca Apple  Tp TTF ch a: Computer. MS s dng vào nm 1992.  Mô t hình dáng kí t.  Công ngh TrueType bao gm:  Các thông tin khác: tên font, bn quy n, hãng,  Các tp ch a TrueType Font (TTF).  Mô t kí t trong TTF:  B Raster hoá TrueType ca h iu hành tr c  Mô t ng vi n font. khi hi n th in trên gi y.  Mô t toán hc ca kí t t dãy toán hc. 14