Thông tin tài liệu:
Bài giảng Đồ họa 2D: Các phép biến đổi có nội dung trình bày khái niệm phép biến đổi, công thức phép biến đổi, định nghĩa biến đổi Affine, hệ tọa độ thuần nhất, công thức xác định ảnh của một điểm, cấu trúc dữ liệu, biến đổi điểm – cài đặt, phép biến đổi tịnh tiến, phép biến đổi quay và các nội dung khác.
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa 2D: Các phép biến đổi - Bùi Tiến Lên ĐỒ HỌA 2DCÁC PHÉP BIẾN ĐỔI Giảng viên Bùi Tiến LênPhé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’ T P’ P Ảnh S’ S Trang 2Công thức phép biến đổi Bieán daïngaùnh ñoåi xaï T :R2 → R2 P P Bieán daïng ñoåi haøm P = T(P ) hay Px = Tx (Px ,Py ) Py = Ty (Px ,Py ) Trang 3Đị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 Trang 4Hệ tọa độ thuần nhất Heä toïa ñoä Ñeà Heä toïa ñoä thuaàn caùc nhaát P(Px, Py) P(Px, Py, 1) P(Px, Py) P(wPx, wPy, w) Trang 5Công thức xác định ảnh của một điểmDaïnghaøm Px = aPx + cPy + e Py = bPx + dPy + fDaïngma traän P = P.M Ma trận biến đổihoaëc a b 0 (P x ) Py 1 = ( Px Py ) 1. c d 0 e f 1 Trang 6Công thức xác định ảnh của một điểmCoâng thöùc bieán daïng ñoåi haøm Tx (x, y) = 2x + 3y – 5 Ty (x, y) = - 2x + 2y + 4Hoaëc daïng traän ma bieán ñoåi 2 −2 0 3 2 0 − 5 4 1 Trang 7Cấu trúc dữ liệu // Lưu thông tin phep bien doi affine struct TAffine2D { double M[3][3]; }; Trang 8Biến đổi điểm – Cài đặt TPoint2D TransformPoint2D(TAffine2D T, TPoint2D P) { TPoint2D Q; Q.x = T.M[0][0]*P.x + T.M[1][0]*P.y + T.M[2][0]; Q.y = T.M[0][1]*P.x + T.M[1][1]*P.y + T.M[2][1]; return Q; } Trang 9Cài đặt đ ọc đ ọc biến đổii biến đổ xén xén chuyển ttọa độ chuyển ọa độ vẽ vẽ void Read_Transform_Convert_Draw_2D(CDC *pDC, char *filename, TAffine2D T) filename { . . . TPoint2D P1, P2; CPoint Q1, Q2; int r, g, b; // Doc doan thang tu tap tin f >> P1.x >> P1.y >> P2.x >> P2.y >> r >> g >> b; // Bien doi doan thang P1 = TransformPoint2D(T, P1); P2 = TransformPoint2D(T, P2); // Chuyen toa do doan thang Q1 = ConvertWorldToScreen2D(P1); Q2 = ConvertWorldToScreen2D(P2); // Ve doan thang pDC->MoveTo(Q1.x, Q1.y); pDC->LineTo(Q2.x, Q2.y); . . . } Trang 10Tí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 11Bảo toàn tính thẳng d laø ñöôøng T GT thaúng d’ = T(d) d’ laø ñöôøng KL thaúng d d’ Trang 12Bả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 13Bảo toàn song song d1 // d2 d1’ T GT d1’ = T(d1) d2’ d2’ = T(d2) KL d1’ // d2’ d1 d2 Trang 14Hệ 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 ...