Đồ họa máy tính - Chương 4: Các phép biến hình
lượt xem 10
download
Các phép biến hình Các phép biến đổi hình học cơ sở bao gồm: - tịnh tiến /dời hình (translation) - quay (rotation) - tỷ lệ /vị tự / (scaling) Ví dụ: - một báo cáo viên muốn thu nhỏ các biểu đồ trong báo cáo - một kiến trúc sư muốn nhìn tòa nhà ở những góc nhìn khác nhau - nhà thiết kế muốn quan sát, tách rời và chỉnh sửa từng chi tiết của mẫu thiết kế - ... Có hai quan điểm về phép biến đổi hình học, có liên quan với nhau và đề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 4: Các phép biến hình
- Chương IV. Các phép biến hình Các phép biến đổi hình học cơ sở bao gồm: - tịnh tiến /dời hình (translation) - quay (rotation) - tỷ lệ /vị tự / (scaling) Ví dụ: - một báo cáo viên muốn thu nhỏ các biểu đồ trong báo cáo - một kiến trúc sư muốn nhìn tòa nhà ở những góc nhìn khác nhau - nhà thiết kế muốn quan sát, tách rời và chỉnh sửa từng chi tiết của mẫu thiết kế - ... Có hai quan điểm về phép biến đổi hình học, có liên quan với nhau và đều có những lợi thế riêng: - Biến đổi đối tượng (object transformation): tọa độ của từng điểm trên đối tượng được biến đổi theo công thức của phép biến hình, tạo ra ảnh của đổi tượng qua phép biến hình đó. - Biến đổi hệ tọa độ (coordinate transformation): tạo ra một hệ tọa độ mới, sau đó tất cả các điểm của đối tượng sẽ được chuyển về hệ tọa độ đó. Phép biến hình affin Ánh xạ T: R2 R2 P(x,y) Q(x*,y*) ⎧ x* = f ( x, y ) trong đó: ⎨ ⎩ y* = g ( x, y ) và f() và g() là hai hàm tuyến tính thì được gọi là phép biến hình Affin (affine). Ta chỉ khảo sát các phép biến hình loại này. Phép biến hình affin có những tính chất sau: - Bảo toàn đường thẳng: ảnh của đường thẳng qua phép biến hình affine là đường thẳng. - Bảo toàn tính song song của các đường thẳng: ảnh của các đường thẳng song song qua phép biến hình affine cũng là các đường thẳng song song. - Bảo toàn tỷ lệ về khoảng cách: giả sử C là điểm chia đoạn AB theo tỷ lệ x và A’,B’,C’ lần lượt là ảnh của A,B,C qua một phép biến hình affin. Khi đó C’ cũng chia đoạn A’B’ theo tỷ lệ x. 4.1. Các phép biến hình phẳng 4.1.1 Các phép biến hình trong hệ tọa độ Decac Phép tịnh tiến Ảnh của phép tịnh tiến theo vector (a,b) của điểm P(x,y) là điểm Q(x*,y*) ⎧ x* = x + a ⎨ ⎩ y* = y + b Vector tịnh tiến (a,b) còn gọi là “vector độ dời”. Chúng ta có thể áp dụng quy tắc trên cho mọi điểm của đối tượng để dịch chuyển nó. Đơn giản hơn, để tịnh tiến một đa giác chỉ cần http://www.ebook.edu.vn 1
- tịnh tiến các đỉnh của nó rồi vẽ lại đa giác mới. Tương tự, đối với đường tròn, ellip ta tịnh tiến tâm của chúng tới vị trí mới rồi vẽ lại. Phép tịnh tiến trong mặt phẳng Phép tỷ lệ Làm thay đổi kích thước của đối tượng. ⎧ x* = tx.x ⎨ ⎩ y* = ty. y trong đó ty, tx là hệ số co dãn theo trục tung và trục hoành. Khi tx,ty nhỏ hơn 1, phép biến đổi sẽ thu nhỏ đối tượng. Khi tx,ty lớn hơn 1, phép biến đổi sẽ phóng to đối tượng. Khi tx=ty: ta gọi đó là phép đồng dạng (uniform scaling), nó bảo toàn tỷ lệ về kích thước của vật thể. 6 5 tx=ty=3 4 3 tx=3; ty=1 2 1 1 2 3456 Phép tỷ lệ http://www.ebook.edu.vn 2
- Phép quay Phép quay làm thay đổi hướng của đối tượng. Để xác định phép quay, ta cần biết tâm quay và góc quay. Phép quay điểm P(x,y) quanh gốc tọa độ một góc α tạo thành điểm ảnh Q(x*,y*) có công thức như sau: ⎧ x* = x. cos α − y. sin α ⎨ ⎩ y* = x. sin α + y. cos α 1800 Phép quay quanh một điểm 4.1.2 Ma trận của phép biến hình. Nếu ta biểu diễn điểm P,Q dưới dạng vector dòng (x,y) (x*,y*) như trên thì ma trận của các phép biến hình như sau: Phép tịnh tiến: (x*,y*) = (x,y) + (a,b) Q = P + T trong đó T = (a,b) Phép tỷ lệ: (x*, y *) = (x, y )⎛ tx 0 ⎞ ⎜ ⎟ ⎜ ⎟ ⎝ 0 ty ⎠ ⎛ tx 0 ⎞ Q = P×S trong đó S = ⎜ ⎜ 0 ty ⎟ là ma trận của phép đồng dạng ⎟ ⎝ ⎠ Phép quay quanh gốc tọa độ: cos α sin α ⎞ (x*, y *) = (x, y )⎛ ⎜ ⎜ − sin α cos α ⎟ ⎟ ⎝ ⎠ http://www.ebook.edu.vn 3
- ⎛ cos α sin α ⎞ hay Q=P×R trong đó R = ⎜ ⎜ − sin α cos α ⎟ là ma trận của phép quay ⎟ ⎝ ⎠ Tuy nhiên, cách biểu diễn trên sẽ gặp khó khăn khi kết hợp các phép biến đổi lại với nhau vì biểu diễn của phép tịnh tiến (cộng ma trận) khác với hai phép biến hình còn lại (nhân ma trận). Chẳng hạn, khi thiết kế một động cơ, ta muốn tháo riêng một chi tiết ra ngoài (tịnh tiến), xoay 1 góc (quay) rồi lắp vào chỗ cũ (tịnh tiến). Khi đó ta phải thực hiện 3 phép tính trên ma trận (+ × + ). Người ta đã tìm ra cách biểu diễn trong hệ tọa độ thuần nhất, nhờ đó rút gọn chuỗi biến đổi trên về chỉ một phép tính. 4.1.3 Hệ tọa độ thuần nhất (homogeneous coordinates) Tọa độ thuần nhất (đôi khi còn gọi là “đồng nhất”) của điểm (x,y) trên mặt phẳng được biểu diễn bằng bộ ba (xh,yh,h) liên hệ với tọa độ (x,y) bởi công thức xh yh x= y= , h h Nếu một điểm có tọa độ thuần nhất là (x,y,z) trong không gian Decac thì nó cũng có tọa độ thuần nhất là (x.h,y.h,z.h) trong đó h là số thực khác không bất kỳ. Ngược lại điểm (x,y,z) trong hệ tọa độ thuần nhất sẽ có tương ứng với điểm (x/z,y/z) trong hệ tọa độ Decac. Tọa độ thuần nhất của một điểm trong không gian 3 chiều hay nhiều chiều cũng được xác định theo cách tương tự. Để đơn giản hóa, người ta thường chọn h=1, lúc này điểm P(x,y) sẽ được biểu diễn dưới dạng tọa độ thuần nhất là (x,y,1) 4.1.4 Ma trận của các phép biến hình trong hệ tọa độ thuần nhất Phép tịnh tiến: ⎛ 1 0 0⎞ ⎜ ⎟ (x*, y*,1) = (x, y,1) × ⎜ 0 1 0 ⎟ ⎜ a b 1⎟ ⎝ ⎠ ⎛ 1 0 0⎞ ⎜ ⎟ Hay Q = P × T trong đó T là ma trận của phép tịnh tiến T = ⎜ 0 1 0 ⎟ ⎜ a b 1⎟ ⎝ ⎠ Phép tỷ lệ: ⎛ tx 0 0 ⎞ ⎜ ⎟ (x*, y*,1) = (x, y,1) × ⎜ 0 ty 0 ⎟ ⎜ 0 0 1⎟ ⎝ ⎠ ⎛ tx 0 0 ⎞ ⎜ ⎟ Hay Q = P × S trong đó S là ma trận của phép tỷ lệ S = ⎜ 0 ty 0 ⎟ ⎜ 0 0 1⎟ ⎝ ⎠ Phép quay quanh gốc tọa độ: http://www.ebook.edu.vn 4
- ⎛ cos α sin α 0⎞ ⎜ ⎟ (x*, y*,1) = (x, y,1) × ⎜ − sin α cos α 0⎟ ⎜0 1⎟ 0 ⎝ ⎠ ⎛ cos α sin α 0⎞ ⎜ ⎟ Hay Q = P × R trong đó R là ma trận của phép quay R = ⎜ − sin α cos α 0⎟ ⎜0 1⎟ 0 ⎝ ⎠ 4.1.5 Kết hợp các phép biến hình Bất kỳ phép biến hình nào cũng được kết hợp từ phép tịnh tiến, tỷ lệ và quay. Khi áp dụng liên tiếp các phép biến hình trên đối tượng, ta phải thực hiện nhiều phép nhân với các ma trận tương ứng. Thay vào đó, ta sẽ chuẩn bị sẵn ma trận tích và sử dụng như ma trận của phép biến hình tổng thể. Kết hợp các phép tịnh tiến Ta thực hiện phép tịnh tiến T1 với vector tịnh tiến (a,b) lên điểm P(x,y) và thu được ảnh Q’, sau đó thực hiện tiếp phép tịnh tiến T2(c,d) đối với Q’ và thu được Q(x*,y*) P ( x, y ) ⎯T1 ( a⎯→ Q ' ( x' , y ' ) ⎯T2 ( c⎯→ Q ( x*, y*) ⎯ ,b ) ⎯ ,d ) Kết hợp của 2 hay nhiều phép tịnh tiến cho kết quả là phép tịnh tiến có ma trận là tổng các ma trận hành phần: T1 (a, b).T2 (c, d ) = T (a + c, b + d ) ⎛ 1 0 0⎞ ⎛1 0 0⎞ ⎛ 1 0⎞ 0 ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ 0 1 0⎟ × ⎜ 0 1 0⎟ = ⎜ 0 1 0⎟ ⎜ a b 1⎟ ⎜ c d 1⎟ ⎜ a + c b + d 1⎟ ⎝ ⎠⎝ ⎠⎝ ⎠ Kết hợp các phép tỷ lệ Tương tự như phép tịnh tiến, kết hợp của nhiều phép tỷ lệ là một phép tỷ lệ. Giả sử ta kết hợp hai phép tỷ lệ sau: S = S1. S2 Ma trận kết hợp sẽ là ⎛ tx1 0 0 ⎞ ⎛ tx 2 0 ⎞ ⎛ tx1tx 2 0⎞ 0 0 ⎜ ⎟⎜ ⎟⎜ ⎟ 0⎟ × ⎜ 0 0⎟ = ⎜ 0 ⎜ 0 ty1 ty1 ty1ty 2 0⎟ ⎜0 0 1⎟ ⎜ 0 1⎟ ⎜ 0 1⎟ 0 0 ⎝ ⎠⎝ ⎠⎝ ⎠ Kết hợp các phép quay http://www.ebook.edu.vn 5
- Tương tự như phép tịnh tiến, kết hợp của nhiều phép quay quanh gốc tọa độ cũng là một phép quay quanh gốc tọa độ. Giả sử phép quay R1có góc quay là α1, phép quay R2 có góc quay α2, ma trận kết hợp của hai phép quay R1. R2 là ⎛ cos α 1 sin α 1 0 ⎞ ⎛ cos α 2 sin α 2 0 ⎞ ⎛ cos(α 1 + α 2 ) sin (α 1 + α 2 ) 0 ⎞ ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ − sin α 1 cos α 1 0 ⎟ × ⎜ − sin α 2 cos α 2 0 ⎟ = ⎜ − sin (α 1 + α 2 ) cos(α 1 + α 2 ) 0 ⎟ ⎜0 1⎟ ⎜ 0 1⎟ ⎜ 1⎟ 0 0 0 0 ⎝ ⎠⎝ ⎠⎝ ⎠ Phép quay với tâm quay bất kỳ Phép quay quanh tâm quay A(x,y) góc quay α có thể phân tích thành các phép biến hình cơ sở sau: - Tịnh tiến theo vector (-x,-y) để đưa tâm quay về gốc tọa độ - Quay quanh gốc tọa độ một góc α - Tịnh tiến theo vector (x,y) để đưa đối tượng về chỗ cũ 0 0 ⎞ ⎛ cos α sin α 0 ⎞ ⎛ 1 0 0 ⎞ ⎛1 ⎜ ⎟⎜ ⎟⎜ ⎟ 1 0 ⎟ × ⎜ − sin α cos α 0 ⎟ × ⎜ 0 1 0 ⎟ = ⎜0 ⎜ − x − y 1⎟ ⎜ 0 1⎟ ⎜ x y 1⎟ 0 ⎝ ⎠⎝ ⎠⎝ ⎠ cos α sin α ⎛ 0⎞ ⎜ ⎟ − sin α cos α =⎜ 0⎟ ⎜ x(1 − cos α ) + y. sin α − sin α .x + (1 − cos α ) y 1 ⎟ ⎝ ⎠ Phép đối xứng Phép đối xứng trục có thể xem là phép quay 1800 quanh trục đối xứng. Phép đối xứng qua trục hoành và trục tung có ma trận lần lượt là ⎛ −1 0 0⎞ ⎛1 0 0⎞ ⎜ ⎟ ⎜ ⎟ M Ox = ⎜ 0 − 1 0 ⎟ , M Oy = ⎜ 0 1 0 ⎟ ⎜0 0 1⎟ ⎜ 0 0 1⎟ ⎝ ⎠ ⎝ ⎠ Phép biến dạng Là phép biến hình làm thay đổi tỷ lệ về kích thước, nói cách khác là làm méo mó đối tượng. Hai phép biến dạng là: - Phép biến dạng theo trục hoành làm thay đổi hoành độ còn tung độ giữ nguyên - Phép biến dạng theo trục tung làm thay đổi tung độ còn hoành độ giữ nguyên ⎛1 0 0⎞ ⎛1 t 0⎞ ⎜ ⎟ ⎜ ⎟ = ⎜ t 1 0 ⎟ , M Oy = ⎜ 0 1 0 ⎟ M Ox ⎜0 0 1⎟ ⎜0 0 1⎟ ⎝ ⎠ ⎝ ⎠ http://www.ebook.edu.vn 6
- (1,3) (3,3) (10,3) (12,3) (1,1) (3,1) (4,1) (6,1) Phép biến dạng theo trục Ox, hệ số biến dạng t =3 Phép biến đổi ngược Một ví dụ cho phép biến đổi ngược chính là thao tác Undo mà các phần mềm vẽ thiết kế luôn có. Giả sử phép biến hình M có ma trận như sau: ⎛a 0⎞ b ⎜ ⎟ M = ⎜c d 0⎟ ⎜e 1⎟ f ⎝ ⎠ giả thiết ad-bc ≠ 0. Khi đó phép biến đổi ngược của M, ký hiệu là M-1, được biểu diễn như sau: −b ⎛d 0⎞ 1⎜ ⎟ −1 = ⎜ −c M a 0⎟ ad − bc ⎜ 1⎟ ⎝ cf − de be − af ⎠ Gọi S (tx,ty) là phép đồng dạng, S-1 được biểu diễn như sau: ⎛1 ⎞ ⎜ 0⎟ 0 ⎜ tx ⎟ 1 S −1 (tx, ty ) = ⎜ 0 0⎟ ⎜ ⎟ ty ⎜0 1⎟ 0 ⎜ ⎟ ⎝ ⎠ Phép quay quanh gốc tọa độ R(α) có biến đổi ngược như sau: ⎛ cos α − sin α 0⎞ ⎜ ⎟ R −1 (α ) = ⎜ sin α cos α 0 ⎟ = R(−α ) ⎜0 1⎟ 0 ⎝ ⎠ 4.2. Các phép biến hình trong không gian 3 chiều Hoàn toàn tương tự như trong mặt phẳng, ta cũng sử dụng các ma trận trong hệ tọa độ thuần nhất để biểu diễn các phép biến hình: tịnh tiến, quay và đồng dạng. Phép tịnh tiến Ma trận của phép tịnh tiến T(a,b,c) là http://www.ebook.edu.vn 7
- ⎛1 0 0 0⎞ ⎜ ⎟ ⎜0 1 0 0⎟ T (a, b, c) = ⎜ 0 1 0⎟ 0 ⎜ ⎟ ⎜a b c 1⎟ ⎝ ⎠ Phép tỷ lệ Ma trận của phép tỷ lệ S(a,b,c) là ⎛ a 0 0 0⎞ ⎜ ⎟ ⎜ 0 b 0 0⎟ S (a, b, c) = ⎜ 0 0 c 0⎟ ⎜ ⎟ ⎜ 0 0 0 1⎟ ⎝ ⎠ trong đó a,b,c là hệ số tỷ lệ tương ứng theo các trục tọa độ Ox,Oy,Oz y y x x z z Phép tỷ lệ Phép tịnh tiến Phép quay Nếu trong mặt phẳng ta có phép quay quanh một tâm quay thì trong không gian 3 chiều ta có phép quay quanh một trục. Ký hiệu ma trận của các phép quay quanh 3 trục Ox, Oy, Oz lần lượt là R(x,α), R(y,α), R(z,α) với α là góc quay. Ta có http://www.ebook.edu.vn 8
- ⎛ cos α sin α 0 0 ⎞ ⎜ ⎟ ⎜ − sin α cos α 0 0 ⎟ R( z, α ) = ⎜ 1 0⎟ 0 0 ⎜ ⎟ ⎜0 0 1⎟ 0 ⎝ ⎠ ⎛ cos α 0 − sin α 0⎞ ⎛1 0⎞ 0 0 ⎜ ⎟ ⎜ ⎟ ⎜ 0 cos α sin α ⎜0 1 0 0⎟ 0⎟ R( y, α ) = ⎜ R ( x, α ) = ⎜ 0⎟ 0⎟ sin α 0 cos α 0 − sin α cos α ⎜ ⎟ ⎜ ⎟ ⎜0 1⎟ ⎜0 1⎟ 0 0 0 0 ⎝ ⎠ ⎝ ⎠ y y x z x z Phép quay quanh trục Oy Phép quay quanh trục Ox y x z Phép quay quanh trục Oz Chú ý: vẫn như trước, góc quay α có giá trị đại số. Chiều quay dương được xác định theo quy tắc như sau: http://www.ebook.edu.vn 9
- - Quay quanh trục Ox: chiều quay dương là chiều quay từ trục y đến trục z - Quay quanh trục Oy: chiều quay dương là chiều quay từ trục z đến trục x - Quay quanh trục Oz: chiều quay dương là chiều quay từ trục x đến trục y Nói cách khác, nếu đặt mắt nhìn thẳng vào trục tọa độ đi tới thì chiều quay dương là ngược chiều kim đồng hồ. Hoặc có thể dùng quy tắc bàn tay phải: ngón cái chỉ chiều đi tới (vector pháp tuyến), bốn ngón khum lại chỉ chiều quay dương. y y + + x z x Xác định chiều quay dương z http://www.ebook.edu.vn 10
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 | 1330 | 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 | 576 | 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