1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ họa máy tính chương 4 các phép biến hình

10 601 3

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 266,96 KB

Nội dung

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

Ngày đăng: 04/12/2015, 02:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w