Các phép biến đổi trong đồ họa hai chiều

16 2.1K 9
Các phép biến đổi trong đồ họa hai chiều

Đ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

Các phép biến đổi trong đồ họa hai chiều

ĐỒ HỌA MÁY TÍNH Các phép biến đổi đồ họa hai chiều Dẫn nhập • Bản chất phép biến đổi hình học thay đổi mô tả tọa độ đối tượng, từ làm đối tượng thay đổi hướng, kích thước, hình dạng • Có hai quan điểm phép biến đổi hình học, là: ♦ Biến đổi đối tượng : thay đổi tọa độ điểm mô tả đối tượng theo qui tắc ♦ Biến đổi hệ tọa độ : tạo hệ tọa độ tất điểm mô tả đối tượng chuyển hệ tọa độ • Các phép biến đổi hình học sở : tịnh tiến, quay, biến đổi tỉ lệ Các phép biến đổi hình học sở • Một phép biến đổi điểm ánh xaï T : T : R2 → R2 P(x, y) a Q(x' , y') • Hay T hàm số T(x, y) theo hai bieán (x, y) :  x' = f (x, y)   y' = g (x, y) Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 1/16 ĐỒ HỌA MÁY TÍNH • Phép biến đổi affine phép biến đổi với f (x, y) g (x, y) hàm tuyến tính Phép biến đổi có dạng :  x' = ax + cy + e   y' = bx + dy + f , a, b, c, d, e, f ∈ R, ad − bc ≠ • Ta khảo sát phép biến đổi affine, nên dùng cụm từ “phép biến đổi” thay cho “phép biến đổi affine” Phép tịnh tiến • Phép tịnh tiến dùng để dịch chuyển đối tượng từ vị trí sang vị trí khác y y Q try (2,3) P (4,3) trx (6,1) (8,1) x x (a) (b) • Nếu gọi trx try độ dời theo trục hoành trục tung tọa độ điểm Q(x' , y') sau tịnh tiến điểm P (x, y) :  x' = x + trx  ,  y' = y + try (tr , tr ) gọi vector tịnh tiến hay vector độ dời x y Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 2/16 ĐỒ HỌA MÁY TÍNH Phép biến đổi tỉ lệ • Phép biến đổi tỉ lệ làm thay đổi kích thước đối tượng Để co hay giãn tọa độ điểm P(x, y) theo trục hoành trục tung s x s y , ta nhân s x s y cho tọa độ P  x' = s x x   y' = s y y , s x s y gọi hệ số tỉ lệ • Khi giá trị s x , s y nhỏ 1, phép biến đổi thu nhỏ đối tượng, ngược lại giá trị lớn 1, phép biến đổi phóng lớn đối tượng • Khi s x , s y nhau, ta gọi phép đồng dạng (uniform scaling), phép đồng dạng phép biến đổi bảo toàn tính cân xứng đối tượng y (2,3) (4,3) (5,1.5) (10,1.5) x • Tâm tỉ lệ điểm không bị thay đổi qua phép biến đổi tỉ lệ • Nhận xét phép biến đổi tỉ lệ thu nhỏ đối tượng, đối tượng dời gần gốc tọa độ hơn, tương tự phóng lớn đối tượng, đối tượng dịch chuyển xa gốc tọa độ Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 3/16 ĐỒ HỌA MÁY TÍNH Phép quay • Phép quay làm thay đổi hướng đố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 quy ước chiều ngược chiều kim đồng hồ Ta có công thức biến đổi phép quay điểm P (x, y) quanh gốc tọa độ góc α :  x' = cos α x − sin α y   y' = sin α x + cos α y y x Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 4/16 ĐỒ HỌA MÁY TÍNH Hệ tọa độ • Tọa độ điểm mặt phẳng biểu diễn ba số tỉ lệ (x h , y h , h) không đồng thời liên hệ với tọa độ (x, y) điểm công thức : x= xh , h y= yh h • Nếu điểm có tọa độ (x, y, z) có tọa độ (h.x, h y, h.z) h số thực khác • Mỗi điểm P (x, y) biểu diễn dạng tọa độ (x, y,1) Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 5/16 ĐỒ HỌA MÁY TÍNH Biểu diễn ma trận phép biến đổi • Phép tịnh tiến ( x' y' 1) = (x   y 1).   trx ( hay Q = P.M T trx , try try 0  0  1   M T (trx , try ) =    trx ) với try 0  0  1 • Phép biến đổi tỉ lệ (x' y' 1) = (x  sx  y 1). 0  hay Q = P.M S (s x , s y ) với sy 0  0   sx  M S (s x , s y ) =  0  sy 0  0  • Phép quay quanh gốc tọa ñoä (x' y' 1) = (x  cos α  y 1). − sin α   hay Q = P.M R (α ) với Dương Anh Đức, Lê Ñình Duy sin α cos α  cos α  M R (α ) =  − sin α   0  0  sin α cos α 0  0  Các phép biến đổi đồ họa chiều 6/16 ĐỒ HỌA MÁY TÍNH Kết hợp phép biến đổi • Quá trình áp dụng phép biến đổi liên tiếp để tạo nên phép biến đổi tổng thể gọi kết hợp phép biến đổi (composing transformation) Kết hợp phép tịnh tiến • Nếu ta thực phép tịnh tiến lên P (x, y) P’ , lại thực tiếp phép tịnh tiến khác lên P’, ta điểm Q( x' , y') Như vậy, Q ảnh phép biến đổi kết hợp hai phép tịnh tiến liên tiếp M T1 (trx1 , try1 ) vaø M T (trx , try2 ) có tọa độ : Q = {P.M T1 (trx1 , try1 )}.M T (trx , try ) = P.{M T1 (trx1 , try1 ).M T (trx , try2 )} • Ta có :   M T1 (trx1 , try1 ).M T (trx , try2 ) =    trx1   =   trx1 + trx try1 + try2 try1 0   .    trx try2 0  0  1 0  0  1 hay : M T1 (trx1 , try1 ).M T (trx , try ) = M T (trx1 + trx , try1 + try ) • Vậy kết hợp hai phép tịnh tiến phép tịnh tiến Từ ta có kết hợp nhiều phép tịnh tiến phép tịnh tiến Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 7/16 ĐỒ HỌA MÁY TÍNH Kết hợp phép biến đổi tỉ lệ • Tương tự phép tịnh tiến, ta có tọa độ điểm Q(x' , y') điểm có sau kết hợp hai phép tỉ lệ M S1 (s x1 , s y1 ) vaø M S (s x , s y ) laø : Q = {P.M S1 (s x1 , s y1 )}.M S (s x , s y ) = P.{M S1 (s x1 , s y1 ).M S (s x , s y )} • Ta có :  s x1  M S1 (s x1 , s y1 ).M S2 (s x , s y2 ) =     s x1 s x  =   s y1 s y 0 s y1 0  s x2  .   0 s y2 0  0  0  0  hay : M S1 (s x1 , s y1 ).M S2 (s x , s y2 ) = M S (s x1 s x , s y1 s y2 ) • Vậy kết hợp hai phép tỉ lệ phép tỉ lệ Dễ dàng mở rộng cho kết : kết hợp nhiều phép tỉ lệ phép tỉ lệ Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 8/16 ĐỒ HỌA MÁY TÍNH Kết hợp phép quay • Tương tự, ta có tọa độ điểm Q(x' , y') điểm phát sinh sau kết hợp hai phép quay quanh gốc tọa độ M R1 (α ) vaø M R (α ) laø : Q = {P.M R1 (α )}.M R2 (α ) = P.{M R1 (α ).M R2 (α )} • Ta có :  cos α  M R1 (α ).M R (α ) =  − sin α   sin α cos α 0   cos α  . − sin α   sin α cos α 0  0   cos(α + α ) sin(α + α )    =  − sin(α + α ) cos(α + α )   0   hay : M R1 (α ).M R (α ) = M R (α + α ) • Vậy kết hợp hai phép quay quanh gốc tọa độ phép quay quanh gốc tọa độ Từ dễ dàng suy kết hợp nhiều phép quay quanh gốc tọa độ phép quay quanh gốc tọa độ Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 9/16 ĐỒ HỌA MÁY TÍNH Phép quay có tâm quay điểm • Giả sử tâm quay có tọa độ I (x R , y R ) , ta coù thể xem phép quay quanh tâm I góc α kết hợp từ phép biến đổi sở sau : ♦ Tịnh tiến theo vector tịnh tiến (− x R ,− y R ) để dịch chuyển tâm quay gốc tọa độ (đưa trường hợp quay quanh gốc tọa độ) ♦ Quay quanh gốc tọa độ góc α ♦ Tịnh tiến theo vector tịnh tiến (x R , y R ) để đưa tâm quay lại vị trí ban đầu y y y y I(xR,yR) I(xR,yR) α x x (a) x (b) x (c) (d) • Ta có ma trận phép biến ñoåi : M R (x R , y R , α ) = M T (− x R ,− y R ).M R (α ).M T (x R , y R )   = − x R  − yR   cos α  . − sin α   cos α   = − sin α  (1 − cos α )x + sin α y R R  Dương Anh Đức, Lê Đình Duy sin α cos α 0   .   x R yR 0  0  sin α cos α − sin α x R + (1 − cos α ) y R 0  0  Các phép biến đổi đồ họa chiều 10/16 ĐỒ HỌA MÁY TÍNH Một số tính chất phép biến đổi affine • Bảo toàn đường thẳng : ảnh đường thẳng qua phép biến đổi affine đường thẳng ♦ Để biến đổi đoạn thẳng qua hai điểm A B, cần thực phép biến đổi cho A B ♦ Để biến đổi đa giác, cần thực phép biến đổi đỉnh đa giác • Bảo toàn tính song song : ảnh hai đường thẳng song song song song ♦ Ảnh hình vuông, hình chữ nhật, hình thoi, hình bình hành sau phép biến đổi hình bình hành • Bảo toàn tính tỉ lệ khoảng cách : Nếu điểm C chia đoạn AB theo tỉ số t ảnh C chia ảnh đoạn AB theo tỉ số t ♦ Trong hình vuông, đường chéo cắt trung điểm đường nên đường chéo hình bình hành cắt trung điểm đường ♦ Trong tam giác đều, giao điểm ba đường trung tuyến chia đường theo tỉ số 1:2 Do ảnh tam giác qua phép biến đổi affine tam giác nên giao điểm đường trung tuyến tam giác chia chúng theo tỉ lệ 1:2 Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 11/16 ĐỒ HỌA MÁY TÍNH Phép đối xứng • Phép đối xứng trục xem phép quay quanh trục đối xứng góc 1800 • Trục đối xứng trục hoành : • Trục đối xứng trục tung : M Rfx M Rfy  0   =  − 0  0 1    − 0   =  0  0 1   Phép biến dạng • Phép biến dạng phép biến đổi làm thay đổi, méo mó hình dạng đối tượng • Biến dạng theo phương trục x làm thay đổi hoành độ tung độ giữ nguyên : M Shx   =  shxy   0  0  • Biến dạng theo phương trục y làm thay đổi tung độ hoành độ giữ nguyeân : M Shy  sh yx  = 0 0  0  0  y (1,3) (3,3) (10,3) (1,1) (3,1) (4,1) (6,1) (12,3) x Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa 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 phép biến đổi thực • Q ảnh P qua phép biến đổi T có ma trận biến đổi M : Q = PM , nên phép biến đổi ngược T-1 có ma trận biến đổi M-1 với M-1 ma trận nghịch đảo ma trận M • Với giả thiết ban đầu ma trận M ad − bc ≠ , ta có công thức tính ma trận nghịch đảo M-1  a b 0 −b  d    M =  c d 0 a M −1 =  −c laø : − ad bc  e f 1  cf − de be − af    0  0  • Ma trận phép biến đổi ngược phép biến đổi sở tịnh tiến, tỉ lệ, quay :   M T−1 (trx , try ) =    − trx − try  sy  M S−1 (s x , s y ) = 0 sx s y  0  cos α  M R−1 (α ) =  sin α   Dương Anh Đức, Lê Đình Duy 0  0  sx − sin α cos α 0   = M T (− trx ,− try )  1    sx  =     sy  0   1   0 = M S  ,   sx s y     1   0   = M R (− α )  Các phép biến đổi đồ họa 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 phân rã thành tích phép biến đổi tỉ lệ phép biến dạng đơn vị, với phép biến đổi tỉ lệ khác theo công thức sau :    shxy   0  0     shxy =      0  0  shxy  1    0    0  0  • Phép biến dạng đơn vị phân rã tiếp :  0   cos α    1   =  sin α  0 1      φ 0  cos β    0  − sin β   φ  0    − sin α cos α sin β cos β 0  0  α = tan −1 (φ ) = 58.28  β = tan −1   = 31.72 φ     • Từ đó, phép biến đổi phân rã thành phép biến đổi sở sau : 0  Q  a b     ac + bd   c d 0 =     e f 1  Q    0   a  0  Q  ad − bc  b  −  Q Q     b  0 Q  0   a    Q    e f    2 Q = a + b • Suy : Bất kì phép biến đổi kết hợp từ phép tịnh tiến, tỉ lệ quay Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 14/16 ĐỒ HỌA MÁY TÍNH Phép biến đổi hệ tọa độ • Để thuận tiện cho việc mô tả đối tượng, thông thường đối tượng mô tả hệ tọa độ cục gắn với chúng Tuy nhiên để hiển thị toàn ảnh bao gồm nhiều đối tượng thành phần, mô tả phải chuyển hệ tọa độ chung • Việc chuyển đổi thường chia làm hai loại : chuyển từ hệ tọa độ hệ tọa độ Descartes hệ tọa độ cực, hệ tọa độ cầu, hệ tọa độ elliptic, … sang hệ tọa độ Descartes, chuyển đổi hai hệ tọa độ Descartes Trong phần khảo sát phép biến đổi hai hệ tọa độ Descartes với Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 15/16 ĐỒ HỌA MÁY TÍNH • Giả sử ta có hệ tọa độ (I) có gốc tọa độ O vector đơn vị i, j Hệ tọa độ (II) ảnh hệ tọa độ (I) qua phép biến đổi T(M), có gốc tọa độ O’ vector đơn vị u, v • Lúc điểm P (x, y) hệ tọa độ (I) biến đổi thành điểm Q(a, b) hệ tọa độ (II) Vấn đề đặt mối liên hệ a, b với x, y, M −1 • Người ta chứng minh raèng Q = PM P v u O' j O i Dương Anh Đức, Lê Đình Duy Các phép biến đổi đồ họa chiều 16/16 ... phép biến đổi đồ họa 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 phép biến đổi thực • Q ảnh P qua phép biến đổi T có ma trận biến đổi M : Q = PM , nên phép. ..  0  Các phép biến đổi đồ họa chiều 6/16 ĐỒ HỌA MÁY TÍNH Kết hợp phép biến đổi • Quá trình áp dụng phép biến đổi liên tiếp để tạo nên phép biến đổi tổng thể gọi kết hợp phép biến đổi (composing...  Các phép biến đổi đồ họa 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 phân rã thành tích phép biến đổi tỉ lệ phép biến dạng đơn vị, với phép biến

Ngày đăng: 27/08/2012, 09:57

Từ khóa liên quan

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

Tài liệu liên quan