Bài giảng Đồ họa máy tính: Hình khối và các phép biến đổi

Một số đối tượng hình học cơ bản – Đại lượng vô hướng s – Vec-tơ v – Điểm p’= p+ s* v •Các phép biến đổi –Các loại biến đổi: quay, tịnh tiến, co dãn. –Biểu diễn ma trận –Thứ tự • Mô hình hóa hình học – Mô hình hóa phân cấp –Các bề mặt đa diện.

pdf31 trang | Chia sẻ: haohao89 | Lượt xem: 1943 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng Đồ họa máy tính: Hình khối và các phép biến đổi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
10/22/2007Bùi Thế Duy - Bộ môn KHMT 1 Đồ họa máy tính Hình khối và Các phép biến đổi 10/22/2007Bùi Thế Duy - Bộ môn KHMT 2 Một số khái niệm cơ bản • Một số đối tượng hình học cơ bản – Đại lượng vô hướng s – Vec-tơ v – Điểm p’ = p + s * v • Các phép biến đổi – Các loại biến đổi: quay, tịnh tiến, co dãn. – Biểu diễn ma trận – Thứ tự • Mô hình hóa hình học – Mô hình hóa phân cấp – Các bề mặt đa diện. 10/22/2007Bùi Thế Duy - Bộ môn KHMT 3 Các phép biến đổi Thế nào là một phép biến đổi? z P′=T(P) Tại sao phải sử dụng các phép biến đổi? z Mô hình hóa - Tạo ra các đối tượng với các tọa độ tự nhiên/ tiện lợi - Nhiều phiên bản khác nhau của cùng một mẫu hình - Các mối nối/khung xương – tạo hoạt ảnh robot z Tầm nhìn – Cửa sổ và thiết bị độc lập với nhau – Camera ảo: Các phép chiếu song song và chiếu phối cảnh (perspective) 10/22/2007Bùi Thế Duy - Bộ môn KHMT 4 Các loại phép biến đổi Liên tục (Bảo tồn lân cận) Một – một, có nghịch đảo Phân chia theo các tính chất bất biến và tính chất đối xứng Isometry (bảo tồn khoảng cách) – Phản xạ (Reflections) – đảo hai bên trái và phải – Quay + Tịnh tiến Similarity (bảo tồn góc) – Co dãn đồng nhất (Uniform scale) Affine (bảo tồn các đường thẳng song song) – Co dãn không đồng nhất (Non-uniform scales), shears or skews Collineation (đường thẳng giữ là đường thẳng) – Chiếu phối cảnh (Perspective) Non-linear (đường thẳng trở thành đường cong) – Vặn (Twists), biến hình, ... 10/22/2007Bùi Thế Duy - Bộ môn KHMT 5 Tịnh tiến 2D ⎥⎦ ⎤⎢⎣ ⎡=⎥⎦ ⎤⎢⎣ ⎡ ′ ′=′⎥⎦ ⎤⎢⎣ ⎡= y x,, d d T y x P y x P P P’ Xét điểm P là P(x,y), Tịnh tiến điểm P’(x’,y’) một khoảng cách dx theo trục x, dy theo trục y: x’ = x + dx y’ = y + dy Viết theo dạng véc-tơ Như vậy P’ = P + T 10/22/2007Bùi Thế Duy - Bộ môn KHMT 6 Co dãn 2D theo gốc tọa độ P Xét điểm P là P(x,y), Co dãn điểm P’(x’,y’) với tỉ lệ sx theo trục x, sy theo trục y: x’ = x * sx y’ = y * sy Đặt ⎥⎦ ⎤⎢⎣ ⎡⎥⎦ ⎤⎢⎣ ⎡=⎥⎦ ⎤⎢⎣ ⎡ ′ ′⋅=′ ⎥⎦ ⎤⎢⎣ ⎡= y x . 0 0 y x hay đó Do 0 0 y x y x s s PSP s s S P’ 10/22/2007Bùi Thế Duy - Bộ môn KHMT 7 Quay 2D quanh tâm y x r r P’(x’,y’) P(x,y) θ 10/22/2007Bùi Thế Duy - Bộ môn KHMT 8 Quay 2D quanh tâm y r r P’(x’,y’) θ φ P(x,y) φ φ sin. cos. ry rx = = y x x 10/22/2007Bùi Thế Duy - Bộ môn KHMT 9 Quay 2D quanh tâm θφθφφθ θφθφφθ cos.sin.sin.cos.)sin(. sin.sin.cos.cos.)cos(. rrry rrrx +=+=′ −=+=′ y r r P’(x’,y’) θ φ P(x,y) φ φ sin. cos. ry rx = = y x x 10/22/2007Bùi Thế Duy - Bộ môn KHMT 10 Quay 2D quanh tâm θφθφφθ θφθφφθ cos.sin.sin.cos.)sin(. sin.sin.cos.cos.)cos(. rrry rrrx +=+=′ −=+=′ Thay : φ φ sin. cos. ry rx = = Cho ta : θθ θθ cos.sin. sin.cos. yxy yxx +=′ −=′ 10/22/2007Bùi Thế Duy - Bộ môn KHMT 11 Quay 2D quanh tâm θθ θθ cos.sin. sin.cos. yxy yxx +=′ −=′ Viết lại dưới dạng ma trận : ⎥⎦ ⎤⎢⎣ ⎡⎥⎦ ⎤⎢⎣ ⎡ −=⎥⎦ ⎤⎢⎣ ⎡ ′ ′ y x y x . cossin sincos θθ θθ PRPR ⋅=′⎥⎦ ⎤⎢⎣ ⎡ −= , cossin sincos θθ θθ 10/22/2007Bùi Thế Duy - Bộ môn KHMT 12 Nhiều phép biến đổi cùng lúc z Tịnh tiến – P′=T + P z Co dãn – P′=S ⋅ P z Quay – P′=R ⋅ P z Chúng ta muốn các phép biến đổi thể hiện bằng phép nhân để có thể ghép với nhau được⇒ thể hiện điểm bằng tọa độ đồng nhất. 10/22/2007Bùi Thế Duy - Bộ môn KHMT 13 Tọa độ đồng nhất z Thêm một thành phần tọa độ nữa, W, cho một điểm. – P(x,y,W). z Hai tọa độ đồng nhất cùng thể hiện một điểm nếu chúng là tích của nhau với một hằng số – (2,5,3) và (4,10,6) thể hiện một điểm. z Phải có ít nhất một thành phần khác không⇒ (0,0,0) không xác định. z Nếu W≠ 0 , chia các tọa độ còn lại cho nó để có tọa độ Đề-Cát (x/W,y/W,1). z Nếu W=0, điểm đó coi như ở vô cùng. 10/22/2007Bùi Thế Duy - Bộ môn KHMT 14 Tọa độ đồng nhất (…) z Nếu ta thể hiện (x,y,W) trong không gian 3 chiều, tất cả các tọa độ đồng nhất thể hiện một điểm 2D tạo thành một đường thẳng đi qua gốc tọa độ. z Nếu ta đồng nhất hóa một điểm, ta thu được điểm có dạng (x,y,1) – Các điểm đồng nhất tạo thành mặt phẳng W=1. P X Y W W=1 plane 10/22/2007Bùi Thế Duy - Bộ môn KHMT 15 Các phép biến đổi với tọa độ đồng nhất z Ma trận cho phép tịnh tiến 2D. ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ′ ′ 1 . 100 10 01 1 y x d d y x y x 11 = +=′ +=′ y x dyy dxx 10/22/2007Bùi Thế Duy - Bộ môn KHMT 16 Kết hợp các phép biến đổi (Concatenation) z Nếu ta thực hiện 2 phép tịnh tiến trên với cùng một điểm: ),(),(),( :đó Do ),(),(),( ),( ),( 21212211 21212211 22 11 yyxxyxyx yyxxyxyx yx yx ddddTddTddT ddddTPddTddTPP ddTPP ddTPP ++=⋅ ++⋅=⋅⋅=′′ ⋅′=′′ ⋅=′ 10/22/2007Bùi Thế Duy - Bộ môn KHMT 17 Kết hợp các phép biến đổi (…) ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ + + = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⋅ 100 10 01 100 10 01 . 100 10 01 : là ),(),( 21 21 2 2 1 1 2211 yy xx y x y x yxyx dd dd d d d d ddTddT 10/22/2007Bùi Thế Duy - Bộ môn KHMT 18 Tính chất của các phép tịnh tiến ),(),(T 4. ),(),(),(),( 3. ),(),(),( 2. )0,0( 1. 1- yxyx yxyxyxyx yyxxyxyx ssTss ssTttTttTssT tstsTttTssT IT −−= ⋅=⋅ ++=⋅ = 10/22/2007Bùi Thế Duy - Bộ môn KHMT 19 Dạng đồng nhất của phép co dãn ⎥⎦ ⎤⎢⎣ ⎡= y x yx s s ssS 0 0 ),( Ma trận phép co dãn : Trong tọa độ đồng nhất : ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ = 100 00 00 ),( y x yx s s ssS 10/22/2007Bùi Thế Duy - Bộ môn KHMT 20 Kết hợp các phép co dãn ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⋅ ⋅ = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⋅ 100 0ss0 00ss 100 0s0 00s . 100 0s0 00s : ),(),( y2y1 x2x1 y2 x2 y1 x1 2211 yxyx ssSssS 10/22/2007Bùi Thế Duy - Bộ môn KHMT 21 Dạng đồng nhất của phép quay ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ − = ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ ′ ′ 1 . 100 0cossin 0sincos 1 y x y x θθ θθ )()( ).()( 1 1 θθ θθ TRR RR = −= − − 10/22/2007Bùi Thế Duy - Bộ môn KHMT 22 Dạng đồng nhất của phép quay (…) ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −= ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ − = 100 0cossin 0sincos )( , 100 0cossin 0sincos )( θθ θθ θθθ θθ θ TRR ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −= ⎥⎥ ⎥ ⎦ ⎤ ⎢⎢ ⎢ ⎣ ⎡ −− −−− =− 100 0cossin 0sincos 100 0cossin 0sincos )( θθ θθ θθ θθ θR 10/22/2007Bùi Thế Duy - Bộ môn KHMT 23 Các tính chất khác của phép quay )()()()( và )()()( )0( θφφθ φθφθ RRRR RRR IR ⋅=⋅ +=⋅ = 10/22/2007Bùi Thế Duy - Bộ môn KHMT 24 Kết hợp các loại phép biến đổi z Quay và tịnh tiến – Góc và khoảng cách được giữ nguyên z Quay, tịnh tiến và co dãn – Góc và khoảng cách không được giữ nguyên – Đường thẳng song song vẫn song song – Gọi là các phép biến đổi Affine 10/22/2007Bùi Thế Duy - Bộ môn KHMT 25 Biến đổi 3D z Sử dụng tọa độ đồng nhất, giống như trong 2D z Các ma trận biến đổi có kích thước 4x4 z Sử dụng hệ tọa độ thuận ( z hướng ra ngoài) z (hướng ra ngoài) y x 10/22/2007Bùi Thế Duy - Bộ môn KHMT 26 Tịnh tiến 3D. Giống như trong 2D: ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 100 010 001 ),,( z y x zyx d d d dddT 10/22/2007Bùi Thế Duy - Bộ môn KHMT 27 Co giãn 3D. Giống như trong 2D: ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ = 1000 000 000 000 ),,( z y x zyx s s s sssS 10/22/2007Bùi Thế Duy - Bộ môn KHMT 28 Quay 3D z Cần xác định trục quay. z Quay quanh trục z tương tự như 2D ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ − = 1000 0100 00cossin 00sincos )( θθ θθ θzR 10/22/2007Bùi Thế Duy - Bộ môn KHMT 29 Quay 3D z Quay quanh trục x và y: ⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −=⎥⎥ ⎥⎥ ⎦ ⎤ ⎢⎢ ⎢⎢ ⎣ ⎡ −= 1000 0cos0sin 0010 0sin0cos )( , 1000 0cossin0 0sincos0 0001 )( θθ θθ θθθ θθθ yx RR 10/22/2007Bùi Thế Duy - Bộ môn KHMT 30 Quay quanh một trục bất kỳ? z Khó! z Tuy nhiên, chúng ta đã biết cách quay quanh trục chính. z Biến thành phép quay quanh trục chính. z Cần tịnh tiến một trục quay a bất kỳ để đi qua gốc tọa độ, quay nó để trùng với một trục chính, thực hiện phép quay cần thực hiện, và quay và tịnh tiến lại vị trí ban đầu. 10/22/2007Bùi Thế Duy - Bộ môn KHMT 31 Tổng kết z Phép tịnh tiến, quay và co dãn 2D, 3D z Tọa độ đồng nhất z Kết hợp các phép biến đổi
Tài liệu liên quan