Giáo trình Đồ họa máy tính - Chương 4: Đồ họa hai chiều-2D

pdf 12 trang huongle 1830
Bạn đang xem tài liệu "Giáo trình Đồ họa máy tính - Chương 4: Đồ họa hai chiều-2D", để 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_4_do_hoa_hai_chieu_2d.pdf

Nội dung text: Giáo trình Đồ họa máy tính - Chương 4: Đồ họa hai chiều-2D

  1. 4/2/2012 ơ aa 4.1. Tng quan v ha 2D. 4.2. Các phép bi n i trong ha 2D. a 4.3. Ct xén ơ aa ơ aa 4.1. Tng quan ha 2D. 4.1. Tng quan ha 2D. 1) Các phép toán ma tr n. 1) Các phép toán ma tr n.  Xét ma tr n:  Cng và tr ma tr n: Ch cng và tr các ma tr n cùng bc.  Nhân ma tr n: Hai ma tr n nhân ư c khi s ct ma tr n th nh t bng s hàng ca ma tr n th hai. ơ aa ơ aa 4.1. Tng quan ha 2D. 4.1. Tng quan ha 2D. 1) Các phép toán ma tr n. 1) Các phép toán ma tr n.  nh th c ca ma tr n: det(M)  Ma tr n o: [A] [A] -1 = [I].  Trong ó: [A] -1 = 1/det(A).||A|| T. ||A||: là ma tr n ph n ph i s. ||A|| T: là ma tr n chuy n v ca ||A||. 1
  2. 4/2/2012 ơ aa ơ aa 4.1. Tng quan ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Các phép toán ma tr n. 1) Phép bi n i hai chi u.  VD: cho ma tr n: tính ma tr n o ca A.  Các i tư ng hi n th ư c xác nh bi tp các ta . Phép bi n i hình hc là các th tc tính v trí ta mi cho nh ng im này cho phù hp vi nhu cu thay i v kích th ư c, hư ng ca các i tư ng. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u.  Phép tnh ti n. a) Tnh ti n:  Phép co dãn.  Tnh ti n là dch chuy n i tư ng theo  Phép xoay. ư ng th ng t v trí này sang v trí khác.  Tnh ti n im t v trí (x, y) sang v trí mi (x', y') bng cng thêm kho ng tnh ti n Tx, Ty vào ta gc. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.1. Các phép bi n i hình hc 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. a) Tnh ti n: a) Tnh ti n: X’ = X + Tx; Y’ = Y + Ty hay  Dch chuy n a giác bng vécto (-20,25). [X’ Y’] = [X Y] + [Tx Ty]  Trong ó (Tx, Ty) gi là véct tơ tnh ti n. 2
  3. 4/2/2012 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. b) Co dãn: b) Co dãn:  Phép bi n i làm thay i kích th ư c i x’ = x.Sx; y’= y.Sy hay tư ng thì gi là co dãn. [x’ y’] = [x y]. Sx 0  Vi a giác: nhân giá tr ta các nh 0 Sy (x,y) vi th a s co dãn Sx, Sy có  Trong ó: Sx là th a s co dãn chi u x, Sy (x',y'). là th a s co dãn chi u y. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. b) Co dãn: b) Co dãn:  Sx, Sy có giá tr dươ ng bt k: nu co i tư ng, nu >1 -> dãn i tư ng, nu Sx=Sy=1 thì không thay i. Nu Sx=Sy -> co dãn u.  Hình v: Sx=Sy=1/2 s làm gi m dài và dch on th ng v gc ta . ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. b) Co dãn: b) Co dãn:  Ta có th iu khi n v trí ca i tư ng co  Gi s co dãn a giác. Các nh s co dãn dãn bng ch n 'điểm cố đị nh' -> im này tươ ng i so vi im c nh bng co dãn không thay i sau khi co dãn. Ta kho ng cách t mi nh n im c nh. (x F,y F) này có th nm trong hay ngoài i Nu gi nh (x,y) có ta co dãn (x', y') tư ng. tính nh ư sau: 3
  4. 4/2/2012 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. b) Co dãn: c) Xoay hình:  x'=x + (x - x )Sx, y'=y + (y - y )Sy. F F F F  Chuy n dch các im i tư ng theo  Vy ta có: ư ng tròn gi là xoay hình. Xác nh ki u chuy n i bng góc xoay.  Trong ó (1-Sx)x F và (1-Sy)y F là hng s cho mi im ca i tư ng ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. c) Xoay hình: c) Xoay hình:  Hình v là dch chuy n x'=rcos(φ+θ) =rcos φcos θ −rsin φsin θ im t v trí (x, y) y'=rsin(φ+θ) =rsin φcos θ +rcos φsin θ n (x', y') xác nh  Trong ó r là kho ng cách im gc và: bng góc θ và góc φ x = rcos φ, y = rsin φ -> x’ = xcos – ysin -> [x’ y’]=[x y] cos sin xác nh v trí ca im gc. y’ = ycos + xsin -sin cos ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 1) Phép bi n i hai chi u. c) Xoay hình: c) Xoay hình:  Ch n im (x R, yR) xoay quanh chúng. im ó gi là im xoay hay im ch t (pivot point). Ph ươ ng trình bi n i các ta xoay có ư c t các quan h lư ng giác nh ư sau: 4
  5. 4/2/2012 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 1) Phép bi n i hai chi u. 2) Bi u di n ma tr n và ta thu n nh t. c) Xoay hình:  Mt nh ư c to t tp các hình dng,  im ch t có th bt k âu, ngoài hay trong i thông th ư ng ph i co dãn, xoay và dch tư ng. chuy n va v trí nh. Trình t chuy n  Tính toán xoay cn tính hàm lư ng giác và mt i ph i ư c th c hi n ng th i. s phép cng -> th i gian tính kéo dài. Vi hình  Tr ư c ht, ta xác nh i tư ng ph i nh ng hay i tư ng có nhi u im thì khi xoay góc nh (<10 0) thì có th thay th các hàm ư c co dãn, sau ó xoay cu i cùng ta lư ng giác bng giá tr xp x.Vi góc nh thì ph i ư c dch chuy n n v trí mong cos θ xp x 1 và sin θ xp x 0. mu n. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 2) Bi u di n ma tr n và ta thu n nh t. 2) Bi u di n ma tr n và ta thu n nh t.  Ti p c n hi u qu : tính t a cu i cùng  Ph ươ ng trình dch chuy n cơ bn là: tr c ti p t ta gc nh ph ươ ng pháp ma tr n, mi chuy n i cơ s u ư c bi u di n bng ma tr n.  Ta có th bi u di n v trí ta hai chi u (x,y) bng b ba [x h, yh, w], trong ó: xh=x.w, yh = y.w, trong bi n i 2 chi u w=1 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 2) Bi u di n ma tr n và ta thu n nh t. 2) Bi u di n ma tr n và ta thu n nh t.  Ph ươ ng trình co dãn cơ bn là:  Ph ươ ng trình xoay cơ bn là: 5
  6. 4/2/2012 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 3) Chuy n i gp. 3) Chuy n i gp:  Bi u di n tr t t chuy n i bng ma tr n  Dch chuy n: Dch chuy n hai ln liên ti p chuy n i gp ri tính kt qu ca mi ma ca mt i tư ng có th ư c th c hi n tr n chuy n i nh ư sau: bng t hp các ma tr n dch chuy n, sau ó áp dng ma tr n t hp cho im ta . Gi s hai kho ng cách dch chuy n là (Tx 1, Ty 1) và (Tx 2, Ty 2), ta tính ma tr n t hp : ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 3) Chuy n i gp: 3) Chuy n i gp:  P’ = P.T(Tx 1+Tx 2,Ty 1+Ty 2)  Co dãn: Ma tr n chuy n d ch t h p c a hai ln co dãn liên t c s là: S(Sx 1, Sy 1).S(Sx 2, Sy 2)=S(Sx 1.Sx 2, Sy 1.Sy 2)  Ma tr n k t qu c a phép co dãn là nhân. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 3) Chuy n i gp: 4) Co dãn i tư ng quanh im c nh:  S dng ma tr n chuy n i T(Tx, Ty) và  Xoay: Ma tr n t h p c a hai l n xoay liên tc s là: R( θ1).R( θ2)=R( θ1+ θ2) co dãn S(Sx, Sy) có ư c ma tr n a hp co dãn theo im c nh (x F, yF)  Ma tr n k t qu c a hai l n xoay là c ng. bng tr t t ba chuy n i nh ư: 6
  7. 4/2/2012 ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 4) Co dãn i tư ng quanh im c nh: 5) Xoay i tư ng quanh im ch t:  Dch chuy n i tư ng v gc ta , co dãn, ri dch chuy n i tư ng v im c. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 5) Xoay i tư ng quanh im ch t: 6) Co dãn theo hư ng tùy ý:  Dch chuy n v gc, xoay, ri dch chuy n  Tham s co dãn Sx và Sy ch tác ng các hư ng x và v im c: y. Ta có th co dãn các i tư ng theo hư ng khác bng t hp chuy n i xoay và co dãn.  Gi s ta áp dng tham s co dãn có giá tr S1 và S2. Th c hi n chúng: xoay hư ng S1, S2 cho kh p vi tr c x, y. Ti p theo là áp dng bi n i co dãn. Cu i cùng là xoay tr li hư ng ban u. ơ aa ơ aa 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. 6) Co dãn theo hư ng tùy ý: 6) Co dãn theo hư ng tùy ý:  Ma tr n t hp là:  Áp dng vi chuy n i co dãn hình vuông có 0 =45 và S1=1; S2=2. 7
  8. 4/2/2012 ơ aa ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác.  ha trên máy tính th ư ng cài t các phép bi n i cơ s nh ư trình bày trên ây. Tuy nhiên chúng còn cài t mt vài phép chuy n i ph khác nh ư ph n chi u (reflection), bi n dng (shear). ơ a a ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác. 1) Phép chi u: 1) Phép chi u:  Ph n chi u là chuy n i to nh gươ ng ca  Ph n chi u qua tr c y s o tr c x và gi i tư ng. nh gươ ng ư c to so vi tr c ph n nguyên giá tr y. chi u.  Thí d phép ph n chi u qua tr c x ư c bi u di n bng ma tr n sau:  Phép chuy n dch này gi nguyên x và o y. ơ a a ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác. 1) Phép chi u: 1) Phép chi u:  Ph n chi u qua gc ta thì s o c x  Ph n chi u qua ư ng th ng y=x. và y. 8
  9. 4/2/2012 ơ a a ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác. 1) Phép chi u: 1) Phép chi u:  Th c hi n phép chuy n dch trên theo tr t t sau: xoay tam giác 45 (d ươ ng theo chi u kim ng h) ư ng y=x v tr c x. Ph n chi u tam giác qua tr c x. Xoay tam giác tr v v trí gc. Kt qu là ma tr n trên ây sau khi thay θ=45 0. ơ a a ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác. 1) Phép chi u: 1) Phép chi u:  có ư c ph n chi u theo ư ng y=-x, ta th c hi n theo tr t t sau: xoay theo chi u kim ng h 45 , ph n chi u qua tr c y, xoay ng ư c chi u kim ng h 45 .Kt qu nh ư sau: ơ a a ơ a a 4.2. Các phép bi n i trong ha 2D. 4.2. Các phép bi n i trong ha 2D. * Các phép bi n i khác. * Các phép bi n i khác. 2) Bi n dng: 2) Bi n dng:  Chuy n i lo i này làm bi n dng hình th  To bi n dng theo x,y theo các ma tr n: (xo n). Hai chuy n i bi n dng hay gp là bi n dng theo tr c x và theo tr c y. 9
  10. 4/2/2012 ơ a a ơ aa 4.2. Các phép bi n i trong ha 2D. 4.3. Ct xén. * Các phép bi n i khác.  Ct xén là ti n trình ct b các on th ng 2) Bi n dng: nm ngoài màn hình, ca s.  Cách ơ n và tng nh t ca ct xén là ki m tra tng pixel ca on th ng xem nó có trong gi i hn hay không? Nu s dng ct xén bng hình ch nh t thì thì thu t toán nhanh hơn. ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 1) Ct xén on th ng: 1) Ct xén on th ng:  Ph ươ ng pháp: gi i các ph ươ ng trình tìm  Thu t toán Sutherland-Cohen: Tư tư ng là các im ct nhau ti biên các vùng ct. lo i ra các ư ng không cn ct xén bng  tính to giao nhau, ta gán to biên cách so sánh to các im cu i ca on ca ca s là (X,Y) vào ph ươ ng trình ư ng th ng vi biên ca s ch nh t -> ơ n gi n th ng, gi i PT có im nm trên c ư ng và hi u qu . th ng biên ca s. ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 1) Ct xén on th ng: 1) Ct xén on th ng:  Thu t toán Sutherland-Cohen:  Mã hoá u cu i ca on th ng.  Ki m tra xem on th ng có cn ct xén hay không? nh các phép toán logic AND và OR.  Kết qu ả phép OR hai mã đầ u mút đoạn th ẳng cho kết qủa 0 thì cả hai điểm nằm trong ch ữ nh ật.  Kết qu ả phép AND hai mã đầ u mút đoạn th ẳng cho kết qủa 0 thì cả hai điểm nằm ngoài ch ữ nh ật. 10
  11. 4/2/2012 ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 1) Ct xén on th ng: 1) Ct xén on th ng:  Ct xén: u cu i OR AND Meaning  Giao im ca on th ng vi 0000 0000 0000 0000 No các cnh ch nh t song song vi 0001 0001 0001 0001 No tr c tung x có giá tr xmin , xmax 1001 0001 1001 0001 No và h s góc là:a=(y 2-y1)/(x 2-x1) 1001 0100 1101 0000 Yes y = y1 + a(x 1-x2) ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 2) Ct xén vùng: 1) Ct xén on th ng:  K thu t Sutherlan-Cohen: th c hi n ct xén  Ct xén: bng cách ln lư t so sánh a giác vi mi cnh  Giao im ca on th ng vi các cnh ch nh t ca s. song song vi tr c hoành y có giá tr y , y và min max  Ý tư ng: So sánh ln lư t các nh ca a giác h s góc a: vi biên ca ca s: nh nm ngoài lo i b x = x1 + a(y 1-y2) ngay, nh nm trong lưu li kt qu , tính giao im ca các cnh a giác vi cnh hình ch nh t. ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 2) Ct xén vùng: 2) Ct xén vùng:  Ph ươ ng pháp:  Ví d: xét hai nh a giác S và P  Duy t ln lư t (theo chi u kim ng h) các cnh a giác.  Nu nh duy t xu t phát t trong ca s theo a giác i ra ngoài ca s: lưu tr giao ca cnh a giác vi biên ca s.  Nu ư ng i t ngoài vào trong ca s: lưu tr nh a giác và giao im. 11
  12. 4/2/2012 ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 2) Ct xén vùng bng a giác: 3) Ct xén vùng bng a giác:  Thu t toán do Clamer Schutte (H.Delft): cho  Ta có: tr ư c hai nh P và Q không có l hng, không P =  Các bư c:Phân các nh ca hai a giác vào hai Q = ơ aa ơ aa 4.3. Ct xén. 4.3. Ct xén. 3) Ct xén vùng bng a giác: 3) Ct xén vùng bng a giác:  Tìm các cnh ca hai a giác P và Q. P= xen vào ánh du Q= có danh sách mi. 3 6 7 8 4 5 9  La ch n các cnh mi cho a giác kt qu .  Các khúc ca cnh là mt ph n cnh a giác gc, nm hoàn toàn trong hay ngoài a giác kia. ơ aa 4.3. Ct xén. 3) Ct xén vùng bng a giác:  Tách các a giác kt qu :  Tách tng a giác. Bt u t on bt k có du i hay b sau ó tìm trong hai danh sách các on ti p theo có u mút kh p vi im cu i ca cnh tr ư c, lp n khi tr li im ban u.  VD: T (p’ 1,p 3) tìm ti p (p 3,p’ 2), Ti p theo t p’ 2 tìm trong Q th y (p’ 4,p’ 5) -> ư c hình R1. 12