Bài giảng Đồ họa máy tính - Chương 4: Các phép biến đổi trong đồ họa hai chiều - Trần Thị Minh Hoàn

pdf 26 trang Gia Huy 16/05/2022 3240
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Đồ họa máy tính - Chương 4: Các phép biến đổi trong đồ họa hai chiều - Trần Thị Minh Hoàn", để 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:

  • pdfbai_giang_do_hoa_may_tinh_chuong_4_cac_phep_bien_doi_trong_d.pdf

Nội dung text: Bài giảng Đồ họa máy tính - Chương 4: Các phép biến đổi trong đồ họa hai chiều - Trần Thị Minh Hoàn

  1. Chương IV. Các phép biến đổi trong đồ họa hai chiều  Các phép toán cơ sở với ma trận  Các phép biến đổi 2D cơ sở  Biến đổi 2D gộp 1
  2. I. Các phép toán cơ sở với ma trận  Cộng, trừ ma trận  Chỉ thực hiện cho hai ma trận cùng bậc [A(m, n)] + [B(m, n)] = [C(m, n)] cij  aij  bij   Nhân hai ma trận  Ma trận bậc n1xm1 và ma trận bậc n2xm2 nhân được với nhau nếu m1=n2 [A(m, n)] [B(n, p)]= [C(m, p)] n j=1, ,m và k=1, ,p c jk  a ji bik i 1 2
  3. Ứng dụng biến đổi  Mô hình hóa (modeling)  Định vị và thay đổi kích thước các phần của đối tượng phức tạp  Quan sát (viewing)  Định vị và quan sát camera ảo  Animation  Xác định đối tượng chuyển động và thay đổi theo thời gian như thế nào. 3
  4. Các thí dụ biến đổi 2D 4
  5. Các thí dụ biến đổi 2D 5
  6. Các loại biến đổi  Biến đổi tuyến tính  Các đường thẳng giữ nguyên là đường thẳng  Các thí dụ trên  Biến đổi affine  Các đường song song giữ nguyên song song  Các thí dụ trên là affine.  Biến đổi trực giao  Bảo toàn khoảng cách, dịch chuyển đối tượng như khối rắn  Xoay, dịch chuyển, phản chiếu là affine  Bấy kỳ biến đổi affine nào cũng có thể viết như sau a11 a12 x' y' x y b1 b2  a21 a22 P' P.A 6
  7. II. Các phép biến đổi cơ sở  Tịnh tiến (Translation) x' = x + Tx 100 y' = y + Ty 50 (Tx, Ty) là véc tơ tịnh tiến 50 150 Định nghĩa: P= [x y], P'=[x' y'] và T= [Tx Ty] x' y' x y Tx Ty   Co dãn (Scaling) x' = x.Sx Sx là thừa số co dãn chiều x y‘ = y.Sy Sy là thừa số co sãn chiều y. Sx 0 x' y' x y 0 S y 7
  8. Các phép biến đổi cơ sở  Xoay hình (Rotation) x' r cos(  ) r cos cos r sin sin y' r sin(   ) r sin cos r cos sin  Góc xoay (x', y') x r cos, y r sin  r x' x cos y sin (x, y)  r y' x sin y cos  cos sin x' y' x y sin cos 8
  9. Tọa độ thuần nhất  Các biến đổi cơ sở có cách xử lý khác nhau P' = P + T (tịnh tiến); P' = P. S (co dãn); P' = P.R (xoay)  Thực tế: Nhu cầu tổ hợp các chuyển đổi cơ sở  Cần cách xử lý nhất quán để dễ dàng tổ hợp  Sử dụng hệ thống tọa độ thuần nhất (Homogeneous Coordinates) 9
  10. Tọa độ thuần nhất?  Mục tiêu ban đầu của hệ tọa độ thuần nhất là để biểu diễn khái niệm vô hạn  Không thể biểu diễn giá trị vô hạn trong hệ tọa độ Đề các  Giả sử với hai số thực w và a  Giá trị vô hạn được biểu diễn bởi v=a/w,  Khi w->0 thì a/w tiến tới vô hạn: cặp (a, w) biểu diễn khái niệm vô hạn; cặp (a, 0) biểu diễn giá trị vô hạn.  Áp dụng hệ tọa độ xy trong mặt phẳng f(x, y) =0 f(x/w, y/w)=0 n  Nếu f(x,y)=0 là đa thức bậc n thì nhân nó với w để loại bỏ mẫu 10
  11. Tọa độ thuần nhất  Diễn giải hình học W (x, y, w)  Cho trước tọa độ thuần nhất (x, y, w) của điểm trong mặt phẳng xy. (x,y,w) Y (x/w, y/w, 1) là điểm trong không gian xyw.  Đoạn thẳng nối điểm (x, y, w) với gốc tọa độ trong không gian 3D sẽ cắt mặt X phẳng w=1 tại (x/w, y/w, 1) Từ đồng nhất sang 2D:  Điểm đồng nhất 2D được xem như [x, y, w] -> [x/w, y/w] điểm trong không gian 3D và chiếu Kết quả duy nhất điểm 3D vào mặt phẳng w=1. Từ 2D sang đồng nhất:  Bất kỳ biến đổi tuyến tính nào cũng có [x, y] -> [kx, ky, k] k 0 thể biểu diễn dưới dạng ma trận trong hệ thống tọa độ thuần nhất. 11
  12. Ma trận biến đổi 2D  Biểu diễn tọa độ 2D [x,y] trong z [x, y] hệ tọa độ thuần nhất là bộ ba [x+tx, y+ty] [x, y, 1] z=1 y  Các điểm là véctơ hàng 3 phần tử  Ma trận biến đổi có kích thước 3x3 x  Dịch chuyển Dịch chuyển: x’=x+t =x+t .1 1 0 0 x x x' y' 1 x y 1. 0 1 0 y’=y+ty=y+ty.1 Tx Ty 1 w’=1 1 0 0 T (Tx,Ty) 0 1 0 Tx Ty 1 12
  13. Ma trận biến đổi 2D  Co dãn Sx 0 0 Sx 0 0 x' y' 1 x y 1. 0 Sy 0 S(Sx, Sy) 0 Sy 0 0 0 1 0 0 1  Xoay cos sin 0 cos sin 0 R( ) sin cos 0 x' y' 1 x y 1. sin cos 0 0 0 1 0 0 1  Biến đổi affine tổng quát a d 0 x' ax by c  x' y' 1 x y 1. b e 0 y' dx ey f c f 1 13
  14. III. Chuyển đổi gộp  Giải pháp:  Tính ma trận kết quả của các chuyển đổi thành phần trong chuyển đổi gộp  Dịch chuyển 2 lần 1 0 0 1 0 0 1 0 0 0 1 0 . 0 1 0 0 1 0 Tx1 Ty1 1 Tx2 Ty2 1 Tx1 Tx2 Ty1 Ty2 1 T(Tx , Ty ).T(Tx , Ty )=T(Tx +Tx , Ty +Ty ) 1 1 2 2 1 2 1 2  Co dãn hai lần S(Sx1, Sy1).S(Sx2, Sy2)=S(Sx1.Sx2, Sy1.Sy2)  Xoay hai lần R(1).R(2)=R(1+2) 14
  15. Co dãn đối tượng theo điểm cố định  Vấn đề  Cho trước tam giác ABC, tọa độ chốt (xF, yF) và tỷ lệ co dãn (a)  Thực hiện biến đổi để có kết quả (d)  Các bước thực hiện  Dịch đối tượng sao cho điểm chốt trùng gốc tọa độ  Thực hiện co dãn theo tỷ lệ cho trước  Dịch ngược đối tượng sao cho điểm chốt về vị trí ban đầu xF, yF xF, yF d) a) b) c) 15
  16. Co dãn đối tượng theo điểm cố định  Ma trận chuyển đổi được tính: 1 0 0 S x 0 0 1 0 0 Sx 0 0 0 1 0 . 0 S 0 . 0 1 0 0 Sy 0 y xF yF 1 0 0 1 xF yF 1 1 Sx xF 1 Sy yF 1 xF, yF xF, yF d) a) b) c) 16
  17. Xoay đối tượng quanh điểm cố định  Vấn đề  Cho trước tam giác ABC, tọa độ chốt (xF, yF) và góc xoay (a)  Thực hiện biến đổi để có kết quả (d)  Các bước thực hiện  Dịch đối tượng sao cho điểm chốt trùng gốc tọa độ  Thực hiện xoay theo góc cho trước  Dịch ngược đối tượng sao cho điểm chốt về vị trí ban đầu xF, yF xF, yF d) a) b) c) 17
  18. Xoay đối tượng quanh điểm cố định  Ma trận chuyển đổi được tính: 1 0 0 cos sin 0 1 0 0 0 1 0 . sin cos 0 . 0 1 0 xR yR 1 0 0 1 xR yR 1 cos sin 0 sin cos 0 1 cos xR yR .sin 1 cos yR xR .sin 1 xF, yF xF, yF d) a) b) c) 18
  19. Bài tập 1. Hãy tìm ma trận biến đổi để có đối tượng phản chiếu qua y=x và y=-x. 2. Cho tam giác A(3, 1), B(1, 3), C(3,3): . Hãy xác định tọa độ mới của các đỉnh tam giác sau khi xoay một góc 900 ngược chiều kim đồng hồ xung quanh điểm P(2, 2). . Phóng to tam giác lên hai lần, giữ nguyên vị trí của điểm C. Tính tọa độ các đỉnh tam giác sau khi biến hình. 3. Lấy đối xứng hình thoi ABCD với toạ độ các đỉnh A(-1, 0), B(0,-2), C (1, 0), D(0,2) qua: a, đường nằm ngang y=2. b, đường thẳng đứng x=2. c, đường thẳng y=x+2. 19
  20. Bài 4. Cho ΔABC có các toạ độ đỉnh là A(2,2), B(3,1) và C(4,3). Xác định ma trận biến đổi để biến đổi tam giác này thành A’B’C’ biết ảnh A’(4,3), B’(4,5) và C’(7,3). 20
  21. Bài 5. . Cho 3 tam giác sau: ABC với A(1,1) B(3,1) C(1,4) EFG với E(4,1) F(6,1) G(4,4) MNP với M(10,1) N(10,3) P(7,1) a. Tìm ma trận biến đổi tam giác ABC thành tam giác EFG. b. Tìm ma trận biến đổi tam giác ABC thành tam giác MNP Bài 6. Xây dựng ma trận của phép biến đổi để biến đổi một hình tròn tâm 0 (0, 0), bán kính R thành Elip tâm O, trục chính a=R, trục phụ b=R/2, hai trục lần lượt nằm trên đường y=x và y=-x. 21
  22. IV. Một số biến đổi cơ sở khác  Phép đối xứng 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 1 Phản chiếu Phản chiếu qua Phản chiếu gốc tọa độ qua trục x qua trục y 1 1 1’ 1 3 2 3 2 3’ 2 3 2’ 2’ 2’ 3’ 1’ 3’ 1’ 22
  23. Một số biến đổi cơ sở khác  Phép biến dạng  Phép biến dạng là phép biến đổi làm thay đổi, méo mó hình dạng của các đối tượng  Biến dạng theo phương trục x sẽ làm thay đổi hoành độ còn tung độ vẫn giữ nguyên 1 0 0 Shx 1 0 0 0 1  Biến dạng theo phương trục y sẽ làm thay đổi tung độ còn hoành độ vẫn giữ nguyên 1Shy 0 0 1 0 0 0 1 23
  24. Một số biến đổi cơ sở khác  Phép biến đổi ngược  Ta có Q là ảnh của của P qua phép biến đổi T có ma trận biến đổi M là Q = PM, từ đó phép biến đổi ngược T-1 sẽ có ma trận biến đổi là M-1 với M-1 là ma trận nghịch đảo của M. 1 0 0 M -1(T , T ) = T x y 0 1 0 Tx Ty 1 1 0 0 Sx -1 1 MS (Sx, Sy) = 0 0 Sy 0 0 1 cos sin 0 M -1 () = R sin cos 0 0 0 1 24
  25. Bài tập 6. Xây dựng ma trận của phép biến đổi để biến đổi một hình tròn tâm 0 (0, 0), bán kính R thành Elip tâm O, trục chính a=R, trục phụ b=R/2, hai trục lần lượt nằm trên đường y=x và y=-x. 7. Xây dựng ma trận của phép biến đổi sau 450 8. Xây dựng và cài đặt cấu trúc dữ liệu và các hàm dùng để thực hiện một phép biến đổi affine bất kỳ. 25
  26. Bài tập thực hành Thiết kế phông chữ (10x10) tên SV 26