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
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:
- bai_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
- 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
- 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
- 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
- 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
- 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
- Biến đổi đối tượng Trang 16
- Biến đổi đối tượng Trang 17
- Biến đổi đối tượng Trang 18
- Biến đổi đối tượng Trang 19
- Biến đổi đối tượng Trang 20
- Biến đổi đối tượng Trang 21
- Biến đổi đối tượng Trang 22
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- Phép đối xứng (reflection) y Đối xứng qua Oy O x Đối xứng qua Ox Trang 39
- 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
- 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
- Phép biến dạng – công thức Daïng haøm ' Px = Px + tgPy ' 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
- Phép nghịch đảo T T-1 Trang 43
- 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
- Biến đổi mô hình đối tượng phân cấp Trang 45
- 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