Giáo trình Đồ họa - Bài 5: Các phép biến đổi mô hình
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Đồ họa - Bài 5: Các phép biến đổi mô hình", để 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:
- giao_trinh_do_hoa_bai_5_cac_phep_bien_doi_mo_hinh.pdf
Nội dung text: Giáo trình Đồ họa - Bài 5: Các phép biến đổi mô hình
- Bài 5 CÁC PHÉP BIẾN ĐỔI MÔ HÌNH © Copyright Copyright © Showeet.com Trịnh Thành Trung trungtt@soict.hust.edu.vn 1
- NỘI DUNG 1. Tổng quan 2. Các phép biến đổi hình học hai chiều 3. Ma trận đồng nhất 4. Các phép biến đổi hình học ba chiều Copyright © Showeet.com - 2
- 1 © Copyright Copyright © Showeet.com TỔNG QUAN -
- Tổng quan TỌA ĐỘ BIẾN ĐỔI TỌA ĐỘ TỌA ĐỘ MÔ BIẾN ĐỔI THỰC HIỂN HÌNH MÔ HÌNH GÓC NHÌN THỊ BIẾN ĐỔI TỌA ĐỘ HÌNH HÌNH CHIẾU CHIẾU © Copyright Copyright © Showeet.com 4
- Tổng quan • Biến đổi mô hình (Modeling Transformation) © Copyright Copyright © Showeet.com 5
- Tổng quan • Biến đổi góc nhìn (Viewing Transformation) © Copyright Copyright © Showeet.com 6
- Tổng quan • Biến đổi hình chiếu (Projection Transformation) © Copyright Copyright © Showeet.com 7
- Định nghĩa • Các phép biến đổi (Transformation) Là các phép ánh xạ tọa độ điểm hay vector thành tọa độ hay vector khác © Copyright Copyright © Showeet.com 8
- Phép biến đổi Affine • Phép biến đổi Affine là phép biến đổi tọa độ điểm đặc trưng của đối tượng thành tập tương ứng các điểm mới để tạo ra các hiệu ứng cho toàn đối tượng. – Ví dụ: phép biến đổi tọa độ với chỉ 2 điểm đầu cuối của đoạn thẳng tạo thành 2 điểm mới mà khi nối chúng với nhau tạo thành đoạn thẳng mới. – Các điểm nằm trên đoạn thẳng sẽ có kết quả là điểm nằm trên đoạn thẳng mới với cùng phép biến đổi thông qua phép nội suy. © Copyright Copyright © Showeet.com 9
- Phép biến đổi Affine Các thuộc tính • Bảo toàn đoạn thẳng – Các đoạn thẳng được bảo toàn, do đó ánh xạ của một đoạn thẳng vẫn là một đoạn thẳng – Đơn giản hóa quá trình vẽ đoạn thẳng. Chúng ta chỉ cần xác định ánh xạ của hai điểm đầu cuối của đoạn thẳng và vẽ một đường thẳng nối hai điểm đó lại Copyright © Showeet.com – Bảo đảm sự thẳng hàng, do đó các đa giác sẽ biến đổi thành các đa giác 10
- Phép biến đổi Affine • Bảo toàn tính song song – Các đoạn thẳng song song sẽ biến đổi thành các đoạn thẳng song song – Ví dụ: Hình bình hành sẽ biến đổi thành hình bình hành • Bảo toàn các khoảng cách tỉ lệ – Các tỉ lệ sẽ được bảo toàn. Ví dụ: Trung điểm © Copyright Copyright © Showeet.com của đoạn thẳng sau khi biến đổi sẽ là trung điểm của đoạn thẳng mới 11
- Phép biến đổi Affine • Mọi phép biến đổi phức tạp đều có thể tạo thành từ các phép biến đổi cơ sở như: – Dịch chuyển (Translation) – Tỉ lệ (Scaling) – Quay (Rotation) – Biến dạng (Shearing) © Copyright Copyright © Showeet.com 12
- VÍ DỤ © Copyright Copyright © Showeet.com 13
- 2 © Copyright Copyright © Showeet.com CÁC PHÉP BIẾN ĐỔI 2 CHIỀU -
- Biểu diễn ma trận • Việc biến đổi các đối tượng làm thay đổi các điểm P thành các điểm Q theo thuật toán • Việc biến đổi P sử dụng tọa độ của P (Px,Py) ánh xạ thành các tọa độ mới Q (Qx,Qy) • Việc biến đổi có thể biểu diễn thông qua hàm T, hàm ánh xạ của điểm: T(Px,Py) = (Qx,Qy) hoặc Copyright © Showeet.com T(P) = Q 15
- Biểu diễn ma trận • Phép biến đổi đồ họa Afin (Affine transformation) T ánh xạ tập P sang tập Q: Qx aPx bPx tx Q cP dP t y y y y – với a, b, c, d, tx and ty là các hệ số • Biểu diễn ma trận: Qx a b Px tx Copyright © Showeet.com Qy c d Py t y hay Q = MP + Tr 16
- Biểu diễn ma trận • Phương pháp biểu diễn đối tượng P = [ x y ] • Phép biến đổi vị trí điểm a b T c d • Thực thi phép biến đổi đúng trên 1 điểm ảnh sẽ đúng trên toàn bộ đối tượng a b ' ' P*T x y* ax cy bx dy x y c d y © Copyright Copyright © Showeet.com pW pM x z
- PHÉP BẤT BIẾN • Phép bất biến x’ = x y’ = y • Ma trận biến đổi của phép bất biến 1 0 T 0 1 © Copyright Copyright © Showeet.com 1 0 ' ' P*T x y* 1x 0y 0x 1y x y 0 1 -
- PHÉP TỊNH TIẾN • Phép tịnh tiến (Translate) x’ = x + a y’ = y + b • Ma trận dịch chuyển Tr a b © Copyright Copyright © Showeet.com P Tr x y a b x' y' -
- PHÉP TỈ LỆ • Phép tỉ lệ (Scale) x’ = a*x y’ = b*y • Ma trận biến đổi của phép tỉ lệ a 0 T 0 b © Copyright Copyright © Showeet.com a 0 ' ' P*T x y* ax 0y 0x by x y 0 b -
- PHÉP BIẾN DẠNG • Phép biến dạng (Shear) Theo chiều x Theo chiều y x’ = x + ay x’ = x y’ = y y’ = y + bx • Ma trận biến dạng 1 0 1 b Trục x: T Trục y: T a 1 0 1 © Copyright Copyright © Showeet.com 1 b ' ' P*T x y* 1x 0y bx 1y x y 0 1 -
- PHÉP XOAY x = r cos , y = r sin x’ = r cos ( + ), y’ = r sin ( + ) x’ = r ( cos cos - sin sin ) = x cos - y sin y’ = r ( sin cos + cos sin ) = x sin + y cos [x' y']= [xcos - ysin xsin + ycos] • Phép xoay (Rotate) x’ = xcos - ysin Copyright © Showeet.com y’ = xsin + ycos -
- PHÉP XOAY • Ma trận biến đổi của phép bất biến cos sin [T ] sin cos cos sin Copyright © Showeet.com P*T x y* sin cos x.cos y.sin x.sin y.cos x' y' -
- Phép biến đổi tổng hợp • Thông thường chúng ta cần phải thực hiện một phép biến đổi phức tạp từ nhiều phép biến đổi cơ bản – Ví dụ: Đồng thời tịnh tiến một đối tượng, xoay và thay đổi tỉ lệ • Phép biến đổi này gọi là phép biến đổi tổ hợp • Tổ hợp của 2 hay nhiều các phép biến đổi affine © Copyright Copyright © Showeet.com cũng là một phép biến đổi affine
- Phép biến đổi tổng hợp • Phép xoay quanh một điểm gốc (pivotal point) • Thực hiện phép tịnh tiến tất cả các điểm theo vector (-xc,-yc) • Xoay quanh gốc trục tọa độ • Thực hiện phép tịnh tiến tất cả các điểm về vị trí ban đầu theo vector (xc,yc) © Copyright Copyright © Showeet.com (xc,yc)
- Phép biến đổi tổng hợp • Vấn đề gặp phải – Các biến đổi affine được thực hiện bằng các phép biến đổi tuyến tính, sau đó là phép tịnh tiến – Tuy nhiên, phép tịnh tiến được thực hiện bằng một phép cộng thay vì một phép nhân ma trận – Cần tìm cách thực hiện các phép biến đổi bằng cách chỉ cần nhân các ma trận lại với nhau © Copyright Copyright © Showeet.com
- 3 © Copyright Copyright © Showeet.com HỆ TỌA ĐỘ ĐỒNG NHẤT -
- TỌA ĐỘ ĐỒNG NHẤT Tọa độ đồng nhất (Homogeneous Transform) • Phương pháp biểu diễn mở rộng thông qua tọa độ đồng nhất của các vector vị trí • Với ứng dụng của phép chiếu hình học mà ở đó tọa độ điểm được mô tả dưới ma trận [ x* y* h] © Copyright Copyright © Showeet.com – với x = x*/h, y = y*/h, z = z*/h và h là một số thực tuỳ ý -
- TỌA ĐỘ ĐỒNG NHẤT • Ðưa ra cái nhìn hợp nhất của các phép biến đổi dưới phép nhân ma trận, hỗ trợ cho việc xử lý bằng cả phần cứng và phần mềm • Cho phép kết hợp với cả các phép biến đổi đặc biệt không tuyến tính khác (non-affine) như: – Phép chiếu phối cảnh (Perspective projections) Copyright © Showeet.com – Uốn (bends), vuốt (tapers) -
- Tọa độ đồng nhất • Kết hợp các các phép biến đổi tạo thành ma trận tích đơn giản duy nhất. Tránh nhầm lẫn về thứ tự của các phép nhân khi sử dụng. – Chú ý khi nhân ma trận: AB cho kết quả khác BA – Ví dụ: 1. Scale → Translate 2. Translate → Scale Copyright © Showeet.com
- Ma trận đồng nhất • Ma trận biến đổi đồng nhất a b 0 [T ] c d 0 m n 1 © Copyright Copyright © Showeet.com
- PHÉP TỊNH TIẾN • Ma trận đồng nhất 1 0 0 [T ] 0 1 0 m n 1 1 0 0 Copyright © Showeet.com [x' y' 1] [x y 1] 0 1 0 [x m y n 1] m n 1 -
- PHÉP TỈ LỆ • Ma trận đồng nhất S1 0 0 [T ] 0 S2 0 0 0 1 S1 0 0 Copyright © Showeet.com [x' y' 1] [x y 1] 0 S2 0 [x.S1 y.S2 1] 0 0 1 -
- PHÉP XOAY • Ma trận đồng nhất cos sin 0 [T ] sin cos 0 0 0 1 cos sin 0 [x' y' 1] [x y 1] sin cos 0 Copyright © Showeet.com 0 0 1 [x.cos y.sin x.sin y.cos 1] -
- 4 © Copyright Copyright © Showeet.com CÁC PHÉP BIẾN ĐỔI 3 CHIỀU -
- BIẾN ĐỔI TRONG KHÔNG GIAN BA CHIỀU • Biểu diễn điểm trong không gian 3 chiều – [ x* y* z* h ] = [ x y z 1 ]. [ T ] – [x' y' z' 1 ]= [ x*/h y*/h z*/h 1 ][ T ] • Ma trận biến đổi a b c p d e f q [T ] Copyright © Showeet.com g i j r l m n s -
- PHÉP TỊNH TIẾN • Ma trận đồng nhất 1 0 0 0 0 1 0 0 [T ] 0 0 1 0 dx dy dz 1 © Copyright Copyright © Showeet.com -
- PHÉP TỈ LỆ • Ma trận đồng nhất Sx 0 0 0 0 S 0 0 [T ] y 0 0 Sz 0 0 0 0 1 © Copyright Copyright © Showeet.com -
- PHÉP BIẾN DẠNG • Ma trận đồng nhất 1 b c 0 d 1 f 0 [T ] g i 1 0 0 0 0 1 © Copyright Copyright © Showeet.com [x' y' z' 1] [x yd gz bx y iz cx fy z 1] -
- Phép xoay • Trong 2D, phép xoay chỉ được thực hiện xung quanh gốc tọa độ • Trong 3D, một đối tượng có thể xoay theo 3 trục: trục x, trục y, trục z • Xoay theo chiều dương là ngược chiều kim đồng hồ và xoay theo chiều âm là theo chiều kim đồng hồ y y y x x x Copyright © Showeet.com z z z «Mọi phép xoay xung quanh gốc tọa độ đều có thể chia thành phép quay quanh trục x, sau đó quay quanh trục y và sau đó quay quanh trục z» – Định lý Euler
- PHÉP XOAY • Ma trận đồng nhất – Theo trục x 1 0 0 0 0 cos sin 0 [Tx] 0 sin cos 0 0 0 0 1 © Copyright Copyright © Showeet.com -
- PHÉP XOAY – Theo trục y cos 0 sin 0 0 1 0 0 [Ty] sin 0 cos 0 0 0 0 1 – Theo trục z cos sin 0 0 sin cos 0 0 [Tz] Copyright © Showeet.com 0 0 1 0 0 0 0 1 -
- Phép xoay – Theo trục (ux, uy, uz) bất kỳ với • c = cos θ • s = sin θ © Copyright Copyright © Showeet.com