Đồ họa máy tính - Chương 2 Các phép biến đổi hình trên hệ toạ độ - Bài 4
lượt xem 30
download
Các phép biến đổi trong không gian 2 chiều Chúng ta biết rằng trong không gian hai chiều để biểu diễn các hình ng-ời ta th-ờng chọn hệ toạ độ Decác hoặc hệ toạ độ cực. Để tiện cho việc khảo sát các hình ng-ời ta cần phải thực hiện một số phép biến đổi, d-ới đây ta xem xét một số phép biến đổi cơ bản: tịnh tiến, quay, co giãn trong không gian hai chiều
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Đồ họa máy tính - Chương 2 Các phép biến đổi hình trên hệ toạ độ - Bài 4
- Kü thuËt §å ho¹ m¸y tÝnh Ch−¬ng 2 C¸c phÐp biÕn ®æi h×nh trªn hÖ to¹ ®é $4. C¸c phÐp biÕn ®æi trong kh«ng gian 2 chiÒu Chóng ta biÕt r»ng trong kh«ng gian hai chiÒu ®Ó biÓu diÔn c¸c h×nh ng−êi ta th−êng chän hÖ to¹ ®é Dec¸c hoÆc hÖ to¹ ®é cùc. §Ó tiÖn cho viÖc kh¶o s¸t c¸c h×nh ng−êi ta cÇn ph¶i thùc hiÖn mét sè phÐp biÕn ®æi, d−íi ®©y ta xem xÐt mét sè phÐp biÕn ®æi c¬ b¶n: tÞnh tiÕn, quay, co gi·n trong kh«ng gian hai chiÒu 1. PhÐp tÞnh tiÕn: Gi¶ sö trong hÖ to¹ ®é Decac XOY cho ®iÓm P(x,y) ®Ó dÞch chuyÓn ®iÓm P(x,y) ®Õn ®iÓm P'(x',y') theo vect¬ T=[Tx,Ty] khi ®ã x',y' ®−îc x¸c ®Þnh nh− sau: x ′ = x + Tx ⎫ ⎬ (11) . y ′ = y + Ty ⎭ Y P' T Ty y P Tx x O Mét c¸ch h×nh thøc ®Ó tiÖn cho viÖc ký hiÖu ta cã thÓ biÓu diÔn c«ng thøc 1.1 d−íi d¹ng vect¬ sau: ⎡1 0 0⎤ ( x ′ , y ′,1) = ( x, y,1) × ⎢ 0 1 0 ⎥ (2.11) . ⎢ ⎥ ⎢Tx Ty 1 ⎥ ⎣ ⎦ ⎡1 0 0⎤ ⎢0 1 0 ⎥ gäi lµ ma trËn tÞnh tiÕn ký hiÖu lµ T(Tx,Ty) ma trËn ⎢ ⎥ ⎢Tx Ty 1 ⎥ ⎣ ⎦ 35
- Kü thuËt §å ho¹ m¸y tÝnh 2. PhÐp quay quanh gèc to¹ ®é PhÐp quay quanh gèc to¹ ®é O mét gãc θ Y P' y' r y P r θ ϕ O x' x X Gi¶ sö ®iÓm P(x,y) lµm víi trôc ox mét gãc ϕ, |OP| = r sau khi quay OP ®i mét gãc θ ta ®−îc vect¬ OP' §iÓm P' cã to¹ ®é (x',y') ®−îc x¸c ®Þnh nh− sau: x'=rcos(ϕ+θ)=r cosϕ cosθ - r sinϕ sinθ y'=rsin(ϕ+θ)=r cosϕ sinθ + rsinϕ cosθ x=rcos(ϕ), y=rsin(ϕ) do ta cã: x ′ = x cos θ − y sin θ⎫ (2.1.2 ) ⎬ y ′ = x sin θ + y cos θ⎭ C«ng thøc (2.1.2) cã thÓ viÕt l¹i mét c¸ch h×nh thøc sau: ⎡ cos θ sin θ 0 ⎤ ( x ′, y ′,1) = ( x, y,1) × ⎢− sin θ cos θ 0 ⎥ ⎢ ⎥ ⎢0 1⎥ 0 ⎣ ⎦ Cã thÓ ký hiÖu ma trËn trªn lµ ma trËn quay ⎡ cos θ sin θ 0 ⎤ ⎢− sin θ cos θ 0 ⎥ = R (θ, O ) ⎢ ⎥ ⎢0 1⎥ 0 ⎣ ⎦ R(θ,O) ký hiÖu cho ma trËn quay quanh gèc to¹ ®é O mét gãc θ 3. PhÐp co gi∙n hÖ to¹ ®é Gi¶ sö cã hÖ to¹ ®é OXY ta cÇn ph¶i gi·n trôc OX víi hÖ sè Lx, trôc OY víi hÖ sè Ly khi ®ã ®iÓm P(x,y) sÏ trë thµnh ®iÓm P'(x',y') biÓu diÔn trong hÖ XOY cã d¹ng: x ′ = L x .x⎫ (213) y ′= L y . y ⎬ .. ⎭ Mét c¸ch h×nh thøc ta cã thÓ viÕt c«ng thøc (2.1.3) ë d¹ng: 36
- Kü thuËt §å ho¹ m¸y tÝnh 0 0⎤ ⎡L x ( x ′, y ′,1) = ( x, y,1) × ⎢ 0 0⎥ Ly ⎢ ⎥ ⎢0 1⎥ 0 ⎣ ⎦ ⎡L x 0 0⎤ kÝ hiÖu ma trËn co gi·n L ( L x , L y ) = ⎢ 0 L y 0⎥ ⎢ ⎥ ⎢0 1⎥ 0 ⎣ ⎦ 4. BiÕn ®æi tõ hÖ to¹ ®é thùc sang to¹ ®é mµn h×nh : Tr−íc tiªn ta khai b¸o kiÓu cÊu tróc cña ®iÓm trong kh«ng gian 2 chiÒu nh− sau : Type Point_2D = Record x, y : Real; End; (Tuy r»mg to¹ ®é trªn mµn h×nh lµ kiÓu sè nguyªn nh−ng ta khai b¸o lµ kiÓu sè thùc, v× nÕu khai b¸o lµ kiÓu sè nguyªn c¸c phÐp tÝnh gi÷a sè thùc vµ sè nguyªn hay bÞ trµn sè) a. ChuyÓn tõ to¹ ®é thùc sang cöa sæ nh×n : Gi¶ sö h×nh vÏ cña chóng ta ë hÖ to¹ ®é thùc lµ n»m trong h×nh ch÷ nhËt cã ®Ønh trªn bªn tr¸i lµ (Xmin,Ymin) vµ ®Ønh d−íi bªn ph¶i lµ (Xmax, Ymax) nh− vËy kÝch th−íc cña h×nh vÏ lµ (Xmax-Xmin) x (Ymax-Ymin), nh−ng ta l¹i muèn nh×n h×nh vÏ trong mét cöa sæ cã kÝch th−íc lµ MaxX x MaxY nªn nÕu h×nh vÏ nhá h¬n cña sæ nh×n th× ta ph¶i phãng to lªn, cßn ng−îc l¹i nÕu lín h¬n th× ta ph¶i thu nhá l¹i, nh− vËy ta sÏ thùc hiÖn mét phÐp co d·n theo hÖ sè co d·n lµ : CGx:=MaxX/(Xmax-Xmin); CGy:=MaxY/(Ymax-Ymin); Lóc nµy c¸c to¹ ®é cña c¸c ®iÓm sÏ ®−îc nh©n víi CGx vµ CGy : Xmin:=CGx*Xmin; Xmax:=CGx*Xmax; Ymin:=CGy*Ymin; Ymax:=CGy*Ymax; 37
- Kü thuËt §å ho¹ m¸y tÝnh Vµ ta cã thñ tôc chuyÓn mét ®iÓm tõ to¹ ®é thùc sang cöa sæ nh×n nh− sau : Procedure WTV(p : Point_2D; Var q : Point_2D); Begin q.x:=p.x*CGx; q.y:=p.y*CGy; End; b. ChuyÓn tõ cöa sæ nh×n sang mµn h×nh Nh− ta ®· biÕt to¹ ®é cña mµn h×nh cã gèc lµ ®Ønh trªn bªn tr¸i vµ theo chiÒu d−¬ng nh− trªn h×nh vÏ, mµ ta l¹i ph¶i m« t¶ h×nh vÏ nh− lµ ë thÕ giíi thùc, do ®ã ta ph¶i biÕn ®æi h×nh vÏ tõ cöa sæ nh×n sang mµn h×nh. Nh− ë h×nh trªn gèc to¹ ®é O cña h×nh vÏ thùc sÏ cã to¹ ®é ë trªn mµn h×nh lµ : Xgoc:=0; If Xgoc>Xmin Then Xgoc:=Round(ABS(Xmin)); Ygoc:=0; If Ygoc
- Kü thuËt §å ho¹ m¸y tÝnh Uses Crt, Graph; Type Point_2D = Record x, y : Real; End; Const Xmin: Real=0; Ymin: Real=0; Xmax: Real=639; Ymax: Real=479; MaxX: Integer=600; MaxY: Integer=440; Var m,n : Integer; ch: char; CGx,CGy,x,b,Xgoc,Ygoc : Real; p1,p2 : Point_2D; (*********************) Procedure WTV(p : Point_2D; Var q : Point_2D); Begin q.x:=p.x*CGx; q.y:=p.y*CGy; End; (*********************) Procedure VTS(p : Point_2D; Var q : Point_2D); Begin q.x:=Xgoc+p.x; q.y:=Ygoc-p.y; End; (********************) Procedure He_Truc; Begin Line(Round(Xgoc),0,Round(Xgoc),GetMaxY); Line(0,Round(Ygoc),GetMaxX,Round(Ygoc)); End; (*********************) Function bp(x: Real) : Real; Begin bp:=Sin(x); { bp:=Cos(x); bp:=Sqr(x); } end; (*********************) Begin clrscr; 39
- Kü thuËt §å ho¹ m¸y tÝnh m:=0; InitGraph(m,n,''); DirectVideo:=False; MaxX:=GetMaxX; MaxY:=GetMaxY; b:=2*pi/360; Xmin:=0; Xmax:=2*pi; Ymin:=-1; Ymax:=1; { Xmin:=-PI+b; Xmax:=pi-b; Ymin:=-1; Ymax:=1; Xmin:=-50; Xmax:=50; Ymin:=0; Ymax:=2500;} If Xmin>0 Then Xmin:=0; If Ymin>0 Then Ymin:=0; If Xmax
- Kü thuËt §å ho¹ m¸y tÝnh ë vÝ dô trªn ta cã thÓ vÏ ®å thÞ cña nhiÒu hµm sè kh¸c nhau mµ kh«ng cÇn lËp l¹i ch−¬ng tr×nh, mµ chØ cÇn thay hµm míi g¸n l¹i c¸c gi¸ trÞ cña Xmin, Xmax vµ Ymin, Ymax tøc lµ ®−a bµi to¸n vÒ t×m gi¸ trÞ lín nhÊt vµ nhá nhÊt cña hµm sè ë trªn ®o¹n [Xmin, Xmax] T−¬ng tù nh− vËy ta còng cã thÓ ¸p dông cho ch−¬ng tr×nh m« t¶ c¸c phÐp biÕn h×nh ®Ó h×nh vÏ cã thÓ ®−îc phãng to lªn ®Çy mµn h×nh. Bμi tËp : 1. LËp ch−¬ng tr×nh vÏ ®å thÞ cña c¸c hµm ®· biÕt 2. LËp ch−¬ng tr×nh m« t¶ phÐp biÕn mét ®o¹n th¼ng thµnh mét ®o¹n th¼ng qua c¸c phÐp biÕn h×nh ®· nãi ë trªn. 3. LËp ch−¬ng tr×nh m« t¶ phÐp biÕn mét ®a gi¸c thµnh mét ®a gi¸c qua c¸c phÐp biÕn h×nh ®· nãi ë trªn. 4. LËp ch−¬ng tr×nh m« t¶ phÐp biÕn mét ®−êng trßn thµnh mét ®−êng trßn qua c¸c phÐp biÕn h×nh ®· nãi ë trªn. 5. LËp ch−¬ng tr×nh m« t¶ phÐp biÕn mét ®−êng Elip thµnh mét ®−êng Elip qua c¸c phÐp biÕn h×nh ®· nãi ë trªn. 6. LËp ch−¬ng tr×nh m« t¶ phÐp biÕn mét ®−êng Hypebol thµnh mét ®−êng Hypebol qua c¸c phÐp biÕn h×nh ®· nãi ë trªn. $5. C¸c phÐp biÕn ®æi trong kh«ng gian 3 chiÒu 1. PhÐp tÞnh tiÕn trong kh«ng gian 3 chiÒu Gi¶ sö trong hÖ to¹ ®é OXYZ cã ®iÓm P(x,y,z) cÇn ph¶i tÞnh tiÕn ®iÓm p theo vect¬ T(tx,ty,tz) khi ®ã ta ®−îc ®iÓm P'(x',y',z') ®−îc suy t−¬ng tù nh− trong kh«ng gian 2 chiÒu ta cã: ⎡1 0⎤ 0 0 ⎢0 0⎥ 1 0 ( x ′, y ′, z ′,1) = ( x, y, z,1) × ⎢ ⎥ ⎢0 0⎥ 0 1 ⎢ ⎥ ⎣t x ty tz 1⎦ → = op . T( tx, ty, tz) 2. PhÐp quay trong kh«ng gian ba chiÒu Trùc tiÕp suy tõ tr−êng hîp 2 chiÒu. Gi¶ sö cã vect¬ → =(x,y,z) cÇn ph¶i quay → op op quanh trôc Ox mét gãc ϕ, ta ®−îc vect¬ → ′ =(x',y',z') x¸c ®Þnh theo c«ng thøc: op 41
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình kỹ thuật đồ họa máy tính
159 p | 3376 | 1320
-
Giáo trình đồ họa máy tính
159 p | 1329 | 400
-
Bài giảng Vẽ đồ họa máy tính - Bài 1: Giới thiệu
27 p | 990 | 208
-
Thiết kế đồ họa máy tính
159 p | 575 | 207
-
Một số ứng dụng của đồ họa máy tính
0 p | 647 | 131
-
GIÁO TRÌNH ĐỒ HỌA MÁY TÍNH_TỔNG QUAN VỀ ĐỒ HỌA MÁY TÍNH
14 p | 380 | 127
-
Bài giảng môn Đồ họa máy tính - ĐH Kinh Tế Kỹ Thuật Công Nghiệp
39 p | 306 | 95
-
Câu hỏi về đồ họa máy tính kèm theo lời giải
29 p | 272 | 42
-
Bài giảng Đồ họa máy tính - Ma Thị Châu
22 p | 279 | 28
-
Giáo trình Đồ họa máy tính: Phần 1
41 p | 197 | 26
-
Giáo trình Đồ họa máy tính (98tr)
98 p | 139 | 23
-
Bài giảng Cơ sở đồ họa máy tính: Phần 2 - ĐH CNTT&TT
34 p | 102 | 14
-
Bài giảng Đồ họa máy tính: Phần 1
47 p | 112 | 14
-
Giáo trình Kỹ thuật đồ họa máy tính - ĐH Kinh Tế Kỹ Thuật Công Nghiệp
107 p | 55 | 9
-
Bài giảng Đồ họa máy tính: Phần 2
40 p | 102 | 8
-
Bài giảng Đồ họa máy tính: Các khái niệm đồ họa máy tính - Ma Thị Châu (2017)
31 p | 53 | 8
-
Bài giảng Tổng quan đồ họa máy tính
11 p | 117 | 7
-
Bài giảng Đồ họa máy tính: Giới thiệu về đồ họa máy tính - TS. Đào Nam Anh
50 p | 87 | 7
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn