Bài giảng về đồ họa - Transf2D

16 398 0
Bài giảng về đồ họa - Transf2D

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 1/16 C C a a ù ù c c p p h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i t t r r o o n n g g đ đ o o à à h h o o ï ï a a h h a a i i c c h h i i e e à à u u D D a a ã ã n n n n h h a a ä ä p p • Bản chất của phép biến đổi hình học là thay đổi các mô tả về tọa độ của đối tượng, từ đó làm đối tượng thay đổi về hướng, kích thước, hình dạng. • Có hai quan điểm về phép biến đổi hình học, đó là: ♦ Biến đổi đối tượng : thay đổi tọa độ của các điểm mô tả đối tượng theo một qui tắc nào đó. ♦ Biến đổi hệ tọa độ : tạo ra một hệ tọa độ mới và tất cả các điểm mô tả đối tượng sẽ được chuyển về hệ tọa độ mới. • Các phép biến đổi hình học cơ sở : tònh tiến, quay, biến đổi tỉ lệ. C C a a ù ù c c p p h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i h h ì ì n n h h h h o o ï ï c c c c ơ ơ s s ơ ơ û û • Một phép biến đổi điểm là một ánh xạ T : ( ) ( ) ',', : 22 yxQyxP RRT a → • Hay T là hàm số ( ) yxT , theo hai biến ( ) yx, : ( ) ( )    = = yxgy yxfx ,' ,' ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 2/16 • Phép biến đổi affine là phép biến đổi với ( ) yxf , và ( ) yxg , là các hàm tuyến tính. Phép biến đổi này có dạng : 0,,,,,,, ' ' ≠−∈    ++= ++= bcadRfedcba fdybxy ecyaxx • Ta chỉ khảo sát các phép biến đổi affine, nên sẽ dùng cụm từ “phép biến đổi” thay cho “phép biến đổi affine” P P h h e e ù ù p p t t ò ò n n h h t t i i e e á á n n • Phép tònh tiến dùng để dòch chuyển đối tượng từ vò trí này sang vò trí khác. • Nếu gọi x tr và y tr lần lượt là độ dời theo trục hoành và trục tung thì tọa độ của điểm mới ( ) ',' yxQ sau khi tònh tiến điểm ( ) yxP , sẽ là :    += += y x tryy trxx ' ' , ( ) yx trtr , được gọi là vector tònh tiến hay vector độ dời. P x y Q tr x tr y (a) y x (2,3) (4,3) (6,1) (8,1) (b) ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 3/16 P P h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i t t ỉ ỉ l l e e ä ä • Phép biến đổi tỉ lệ làm thay đổi kích thước đối tượng. Để co hay giãn tọa độ của một điểm ( ) yxP , theo trục hoành và trục tung lần lượt là x s và y s , ta nhân x s và y s lần lượt cho các tọa độ của P.    = = ysy xsx y x .' .' , x s và y s được gọi là các hệ số tỉ lệ. • Khi các giá trò x s , y s nhỏ hơn 1, phép biến đổi sẽ thu nhỏ đối tượng, ngược lại khi các giá trò này lớn hơn 1, phép biến đổi sẽ phóng lớn đối tượng. • Khi x s , y s bằng nhau, ta gọi đó là phép đồng dạng (uniform scaling), phép đồng dạng là phép biến đổi bảo toàn tính cân xứng của đối tượng. • Tâm tỉ lệ là điểm không bò thay đổi qua phép biến đổi tỉ lệ. • Nhận xét rằng khi phép biến đổi tỉ lệ thu nhỏ đối tượng, đối tượng sẽ được dời về gần gốc tọa độ hơn, tương tự khi phóng lớn đối tượng, đối tượng sẽ được dòch chuyển xa gốc tọa độ hơn. y x (2,3) (4,3) (10,1.5)(5,1.5) ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 4/16 P P h h e e ù ù p p q q u u a a y y • Phép quay làm thay đổi hướng của đối tượng. • Một phép quay đòi hỏi phải có tâm quay, góc quay. Góc quay dương thường được quy ước là chiều ngược chiều kim đồng hồ. Ta có công thức biến đổi của phép quay điểm ( ) yxP , quanh gốc tọa độ một góc α :    += −= yxy yxx .cos.sin' .sin.cos' αα αα y x ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 5/16 H H e e ä ä t t o o ï ï a a đ đ o o ä ä t t h h u u a a à à n n n n h h a a á á t t • Tọa độ thuần nhất của một điểm trên mặt phẳng được biểu diễn bằng bộ ba số tỉ lệ ( ) hyx hh ,, không đồng thời bằng 0 và liên hệ với các tọa độ ( ) yx, của điểm đó bởi công thức : h y y h x x hh == , • Nếu một điểm có tọa độ thuần nhất là ( ) zyx ,, thì nó cũng có tọa độ thuần nhất là ( ) zhyhxh .,.,. trong đó h là số thực khác 0 bất kì. • Mỗi điểm ( ) yxP , sẽ được biểu diễn dưới dạng tọa độ thuần nhất là ( ) 1,, yx . ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 6/16 B B i i e e å å u u d d i i e e ã ã n n m m a a t t r r a a ä ä n n c c u u û û a a c c a a ù ù c c p p h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i • Phép tònh tiến ( ) ( )           = 1 010 001 .11'' yx trtr yxyx hay ( ) yxT trtrMPQ ,.= với ( )           = 1 010 001 , yx yxT trtr trtrM • Phép biến đổi tỉ lệ ( ) ( )           = 100 00 00 .11'' y x s s yxyx hay ( ) yxS ssMPQ ,.= với ( )           = 100 00 00 , y x yxS s s ssM • Phép quay quanh gốc tọa độ ( ) ( )           −= 100 0cossin 0sincos .11'' αα αα yxyx hay ( ) α R MPQ .= với ( )           −= 100 0cossin 0sincos αα αα α R M ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 7/16 K K e e á á t t h h ơ ơ ï ï p p c c a a ù ù c c p p h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i • Quá trình áp dụng các phép biến đổi liên tiếp để tạo nên một phép biến đổi tổng thể được gọi là sự kết hợp các phép biến đổi (composing transformation) K K e e á á t t h h ơ ơ ï ï p p c c a a ù ù c c p p h h e e ù ù p p t t ò ò n n h h t t i i e e á á n n • Nếu ta thực hiện phép tònh tiến lên ( ) yxP , được P’ , rồi lại thực hiện tiếp một phép tònh tiến khác lên P’, ta được điểm ( ) ',' yxQ . Như vậy, Q là ảnh của phép biến đổi kết hợp hai phép tònh tiến liên tiếp ( ) 111 , yxT trtrM và ( ) 222 , yxT trtrM có tọa độ : ( ){ } ( ) ( ) ( ){ } 222111222111 ,.,.,.,. yxTyxTyxTyxT trtrMtrtrMPtrtrMtrtrMPQ == • Ta có : ( ) ( )                     = 1 010 001 . 1 010 001 ,., 2211 222111 yxyx yxTyxT trtrtrtr trtrMtrtrM           ++ = 1 010 001 2121 yyxx trtrtrtr hay : ( ) ( ) ( ) 2121222111 ,,., yyxxTyxTyxT trtrtrtrMtrtrMtrtrM ++= • Vậy kết hợp hai phép tònh tiến là một phép tònh tiến. Từ đó ta có kết hợp của nhiều phép tònh tiến cũng là một phép tònh tiến. ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 8/16 K K e e á á t t h h ơ ơ ï ï p p c c a a ù ù c c p p h h e e ù ù p p b b i i e e á á n n đ đ o o å å i i t t ỉ ỉ l l e e ä ä • Tương tự như phép tònh tiến, ta có tọa độ điểm ( ) ',' yxQ là điểm có được sau khi kết hợp hai phép tỉ lệ ( ) 111 , yxS ssM và ( ) 222 , yxS ssM là : ( ){ } ( ) ( ) ( ){ } 222111222111 ,.,.,.,. yxSyxSyxSyxS ssMssMPssMssMPQ == • Ta có : ( ) ( )                     = 100 00 00 . 100 00 00 ,., 2 2 1 1 222111 y x y x yxSyxS s s s s ssMssM           = 100 0.0 00. 21 21 yy xx ss ss hay : ( ) ( ) ( ) 2121222111 .,.,., yyxxSyxSyxS ssssMssMssM = • Vậy kết hợp hai phép tỉ lệ là một phép tỉ lệ. Dễ dàng mở rộng cho kết quả : kết hợp của nhiều phép tỉ lệ cũng là một phép tỉ lệ. ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 9/16 K K e e á á t t h h ơ ơ ï ï p p c c a a ù ù c c p p h h e e ù ù p p q q u u a a y y • Tương tự, ta có tọa độ điểm ( ) ',' yxQ là điểm phát sinh sau khi kết hợp hai phép quay quanh gốc tọa độ ( ) 11 α R M và ( ) 22 α R M là : ( ){ } ( ) ( ) ( ){ } 22112211 αααα RRRR MMPMMPQ == • Ta có : ( ) ( )           −           −= 100 0cossin 0sincos . 100 0cossin 0sincos . 22 22 11 11 2211 αα αα αα αα αα RR MM ( ) ( ) ( ) ( )           ++− ++ = 100 0cossin 0sincos 2121 2121 αααα αααα hay : ( ) ( ) ( ) 212211 . αααα += RRR MMM • Vậy kết hợp hai phép quay quanh gốc tọa độ là một phép quay quanh gốc tọa độ. Từ đó dễ dàng suy ra kết hợp của nhiều phép quay quanh gốc tọa độ cũng là một phép quay quanh gốc tọa độ. ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 10/16 P P h h e e ù ù p p q q u u a a y y c c o o ù ù t t a a â â m m q q u u a a y y l l a a ø ø đ đ i i e e å å m m b b a a á á t t k k ì ì • Giả sử tâm quay có tọa độ ( ) RR yxI , , ta có thể xem phép quay quanh tâm I một góc α được kết hợp từ các phép biến đổi cơ sở sau : ♦ Tònh tiến theo vector tònh tiến ( ) RR yx −− , để dòch chuyển tâm quay về gốc tọa độ (đưa về trường hợp quay quanh gốc tọa độ). ♦ Quay quanh gốc tọa độ một góc α . ♦ Tònh tiến theo vector tònh tiến ( ) RR yx , để đưa tâm quay về lại vò trí ban đầu. • Ta có ma trận của phép biến đổi : ( ) ( ) ( ) ( ) RRTRRRTRRR yxMMyxMyxM , ,,, αα −−=                     −           −− = 1 010 001 . 100 0cossin 0sincos . 1 010 001 RRRR yxyx αα αα ( ) ( )           −+−+− −= 1cos1.sin.sincos1 0cossin 0sincos RRRR yxyx αααα αα αα x y x y α x y I(x R ,y R ) x y I(x R ,y R ) (a) (b) (c) (d) [...]... trong đồ họa 2 chiều 12/16 ĐỒ HỌA MÁY TÍNH Phép biến đổi ngược • Phép biến đổi ngược dùng để undo một phép biến đổi đã thực hiện • Q là ảnh của P qua phép biến đổi T có ma trận biến đổi M là : Q = PM , nên phép biến đổi ngược T-1 sẽ có ma trận biến đổi là M-1 với M-1 là ma trận nghòch đảo của ma trận M • Với giả thiết ban đầu về ma trận M là ad − bc ≠ 0 , ta có công thức tính ma trận nghòch đảo M-1 của... Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 14/16 ĐỒ HỌA MÁY TÍNH Phép biến đổi giữa các hệ tọa độ • Để thuận tiện cho việc mô tả đối tượng, thông thường đối tượng sẽ được mô tả trong các hệ tọa độ cục bộ gắn với chúng Tuy nhiên để có thể hiển thò toàn bộ một ảnh bao gồm nhiều đối tượng thành phần, các mô tả này phải được chuyển về một hệ tọa độ chung duy nhất • Việc chuyển đổi... cos α 0 0  0  = M T (− trx ,− try )  1  1   sx  = 0   0   0 1 sy 0  0   1 1   0 = M S  ,   sx s y     1   0  0  = M R (− α ) 1  Các phép biến đổi trong đồ họa 2 chiều 13/16 ĐỒ HỌA MÁY TÍNH Phân rã phép biến đổi • Một phép biến dạng theo phương trục x có thể được phân rã thành tích của một phép biến đổi tỉ lệ và một phép biến dạng đơn vò, và với một phép biến đổi... đều qua phép biến đổi affine là một tam giác nên giao điểm của các đường trung tuyến trong một tam giác cũng sẽ chia chúng theo tỉ lệ 1:2 Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 11/16 ĐỒ HỌA MÁY TÍNH Phép đối xứng • Phép đối xứng trục có thể xem là phép quay quanh trục đối xứng một góc 1800 • Trục đối xứng là trục hoành : • Trục đối xứng là trục tung : M Rfx M Rfy  1 0 0... Descartes, và chuyển đổi giữa hai hệ tọa độ Descartes Trong phần này chúng ta sẽ khảo sát phép biến đổi giữa hai hệ tọa độ Descartes với nhau Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 15/16 ĐỒ HỌA MÁY TÍNH • Giả sử ta có hệ tọa độ (I) có gốc tọa độ O và các vector đơn vò lần lượt là i, j Hệ tọa độ (II) là ảnh của hệ tọa độ (I) qua phép biến đổi T(M), có gốc tọa độ là O’ và các vector...ĐỒ HỌA MÁY TÍNH Một số tính chất của phép biến đổi affine • Bảo toàn đường thẳng : ảnh của đường thẳng qua phép biến đổi affine là đường thẳng ♦ Để biến đổi một đoạn thẳng qua hai điểm A và B, chỉ cần thực... b) trong hệ tọa độ (II) Vấn đề đặt ra ở đây là mối liên hệ giữa a, b với x, y, M như thế nào −1 • Người ta chứng minh được rằng Q = PM P v u O' j O i Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 16/16 ... • Bảo toàn tính song song : ảnh của hai đường thẳng song song là song song ♦ Ảnh của các hình vuông, hình chữ nhật, hình thoi, hình bình hành sau phép biến đổi là hình bình hành • Bảo toàn tính tỉ lệ về khoảng cách : Nếu điểm C chia đoạn AB theo tỉ số t thì ảnh của C cũng sẽ chia ảnh của đoạn AB theo tỉ số t ♦ Trong hình vuông, các đường chéo cắt nhau tại trung điểm của mỗi đường nên các đường chéo . ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 1/16 C C a a ù ù c c p p h h. ( )    = = yxgy yxfx ,' ,' ĐỒ HỌA MÁY TÍNH Dương Anh Đức, Lê Đình Duy Các phép biến đổi trong đồ họa 2 chiều 2/16 • Phép biến đổi affine là

Ngày đăng: 16/10/2013, 03:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan