Bài giảng Đồ họa 2D - Chương 3b: Các phép biến đổi - Bùi Tiến Lên

Phép biến đổi là gì ?

Phép biến đổi là một ánh xạ từ không gian R2 vào R2 :

-Biến một điểm P thành một điểm P’

-Biến một đối tượng S thành đối tượng S’

Định nghĩa biến đổi affine

Phép biến đổi affine là phép biến đổi mà các hàm biến đổi Tx, Ty có dạng tuyến tính.

  Tx(x, y) = ax + cy + e

  Ty(x, y) = bx + dy + f

ppt 46 trang thiennv 09/11/2022 3200
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Đồ họa 2D - Chương 3b: Các phép biến đổi - Bùi Tiến Lên", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pptbai_giang_do_hoa_2d_chuong_3b_cac_phep_bien_doi_bui_tien_len.ppt

Nội dung text: Bài giảng Đồ họa 2D - Chương 3b: Các phép biến đổi - Bùi Tiến Lên

  1. Tính chất phép biến đổi affine Một phép biến đổi affine luôn có 3 tính chất -Bảo toàn tính thẳng -Bảo toàn tỉ lệ -Bảo toàn song song Trang 11
  2. Bảo toàn tính thẳng d laø ñöôøng thaúng T GT d’ = T(d) KL d’ laø ñöôøng thaúng d d’ Trang 12
  3. Bảo toàn tỉ lệ T C’ A, B, C laø 3 ñieåm thaúng haøng C B’ GT A’ = T(A) B B’ = T(B) A A’ C’ = T(C) KL A’:B’:C’ = A:B:C Trang 13
  4. Bảo toàn song song d // d d1’ 1 2 T ’ GT d1 = T(d1) d2’ d2’ = T(d2) ’ ’ KL d1 // d2 d d1 2 Trang 14
  5. Hệ quả -Đoạn thẳng biến thành đoạn thẳng. -Đa giác biến thành đa giác. -Đường cong bezier biến thành đường cong Bezier. T T T Trang 15
  6. Biến đổi đối tượng Trang 16
  7. Biến đổi đối tượng Trang 17
  8. Biến đổi đối tượng Trang 18
  9. Biến đổi đối tượng Trang 19
  10. Biến đổi đối tượng Trang 20
  11. Biến đổi đối tượng Trang 21
  12. Biến đổi đối tượng Trang 22
  13. Công thức xác định ảnh của một điểm A bieán thaønh A' 2 − 2 0 (5 4 1) = (2 2 1) 3 2 0 − 5 4 1 B bieán thaønh B' 2 − 2 0 (3 0 1) = (3 1 1) 3 2 0 − 5 4 1 Trang 23
  14. Các phép biến đổi affine cơ sở Có 3 phép biến đổi cơ sở -Phép tịnh tiến -Phép quay -Phép tỉ lệ Trang 24
  15. Phép tịnh tiến (translation) Dùng để thay đổi vị trí của các đối tượng từ vị trí này sang vị trí khác. Tham số : - Độ dịch chuyển trên trục Ox : tx - Độ dịch chuyển trên trục Oy : ty ty t x Trang 25
  16. Phép tịnh tiến – công thức Daïng haøm ' Px = Px + tx ' Py = Py + ty Daïng ma traän 1 0 0 M = 0 1 0 tx ty 1 Trang 26
  17. Phép tịnh tiến – Cài đặt TAffine2D BuildTranslation2D(double tx, double ty) { TAffine2D T; T.M[0][0]=1; T.M[0][1]=0; T.M[0][2]=0; T.M[1][0]=0; T.M[1][1]=1; T.M[1][2]=0; T.M[2][0]=tx; T.M[2][1]=ty; T.M[2][2]=1; return T; } Trang 27
  18. Phép quay (rotation) Dùng để thay đổi hướng của các đối tượng Tham số : - Tâm quay : O - Góc quay : O Trang 28
  19. Phép quay – công thức Daïng haøm ' Px = cos Px − sin Py ' Py = sin Px + cos Py Daïng ma traän cos sin 0 M = − sin cos 0 0 0 1 Trang 29
  20. Phép quay – cài đặt TAffine2D BuildRotation2D(double alpha) { TAffine2D T; alpha *= PI/180; T.M[0][0]=cos(alpha); T.M[0][1]=sin(alpha); T.M[0][2]=0; T.M[1][0]=-sin(alpha); T.M[1][1]=cos(alpha); T.M[1][2]=0; T.M[2][0]=0; T.M[2][1]=0; T.M[2][2]=1; return T; } Trang 30
  21. Phép tỉ lệ (scaling) Dùng để thay đổi kích thước của các đối tượng Tham số : - Tâm tỉ lệ : O - Hệ số tỉ lệ : sx, sy O Trang 31
  22. Phép tỉ lệ – công thức Daïng haøm ' Px = sxPx ' Py = syPy Daïng ma traän s 0 0 x M = 0 sy 0 0 0 1 Trang 32
  23. Phép tỉ lệ – cài đặt TAffine2D BuildScaling2D(double sx, double sy) { TAffine2D T; T.M[0][0]=sx; T.M[0][1]=0; T.M[0][2]=0; T.M[1][0]=0; T.M[1][1]=sy; T.M[1][2]=0; T.M[2][0]=0; T.M[2][1]=0; T.M[2][2]=1; return T; } Trang 33
  24. Nguyên lý kết hợp các phép biến đổi Nếu T1, T2 là phép biến đổi affine Thì - T = T1 + T2 là phép biến đổi affine - M = M1 x M2 T1, M1 T2, M2 T, M Trang 34
  25. Nguyên lý phân rã phép biến đổi Mọi phép biến đổi affine bất kỳ đều có thể phân rã thành một chuỗi các phép biến đổi cơ bản. T T1 Tn T2 T3 Trang 35
  26. Cài đặt nguyên lý kết hợp TAffine2D operator + (TAffine2D T1, TAffine2D T2) { TAffine2D T; for(int i=0; i<3; i++) for(int j=0; j<3; j++) { T.M[i][j] = T1.M[i][0]*T2.M[0][j] + T1.M[i][1]*T2.M[1][j] + T1.M[i][2]*T2.M[2][j]; } return T; } Trang 36
  27. Phép đồng nhất (Identity) Biến “nó” thành chính “nó” Daïng haøm ' Px = Px ' Py = Py Daïng ma traän 1 0 0 M = 0 1 0 0 0 1 Trang 37
  28. Phép đồng nhất – Cài đặt TAffine2D BuildIdentity2D() { TAffine2D T; T.M[0][0] = 1; T.M[0][1] = 0; T.M[0][2] = 0; T.M[1][0] = 0; T.M[1][1] = 1; T.M[1][2] = 0; T.M[2][0] = 0; T.M[2][1] = 0; T.M[2][2] = 1; return T; } Trang 38
  29. Phép đối xứng (reflection) y Đối xứng qua Oy O x Đối xứng qua Ox Trang 39
  30. Phép đối xứng – công thức Ñoái xöùng qua truïc Ox Ñoái xöùng truïc Oy Daïng haøm Daïng haøm ' ' Px = Px Px = −Px ' ' Py = −Py Py = Py Daïng ma traän Daïng ma traän 1 0 0 − 1 0 0 M = 0 − 1 0 M = 0 1 0 0 0 1 0 0 1 Trang 40
  31. Phép biến dạng (shearing) Dùng để làm nghiêng đối tượng theo một trục nào đó. Tham số : - Trục nghiêng : Ox - Góc nghiêng :   O x O x Trang 41
  32. Phép biến dạng – công thức Daïng haøm ' Px = Px + tgPy ' Py = Py Daïng ma traän 1 0 0 1 0 0 M = tg 1 0 hoaëc M = shx 1 0 0 0 1 0 0 1 Trang 42
  33. Phép nghịch đảo T T-1 Trang 43
  34. Phép nghịch đảo Neáu T coù a b 0 M = c d 0 , vôùi ad - bc 0 e f 1 thì T-1 coù d − b 0 ad − bc ad − bc − c a M-1 = 0 ad − bc ad − bc cf − de be − af 1 ad − bc ad − bc Trang 44
  35. Biến đổi mô hình đối tượng phân cấp Trang 45
  36. Biến đổi mô hình đối tượng phân cấp Tcon = Tcon-cha + Tcha Hệ qui chiếu gốc Trang 46