Ôn tập Kỹ thuật đồ họa . Ví dụ chi tiết

17 284 0
Ôn tập Kỹ thuật đồ họa . Ví dụ chi tiết

Đ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 CHIỀU Điểm P(x,y) biểu diễn dạng tọa độ (x,y,1) Biểu diễn phép biến đổi dạng tọa độ 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  với      trx try 0  0  1 Phép biến đổi tỉ lệ  sx   x' y' 1   x y 1. 0  hay Q  P M S  sx , sy  sy 0  0 1 với  sx  M S  sx , sy    0  sy 0  0 1 Phép quay quanh gốc tọa độ  cos   x' y' 1   x y 1.  sin    hay Q  P M R   với sin  cos 0  0 1  cos  M R      sin    sin  cos 0  0 1 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) 2.7.2.1 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 T  trx1 , try1  M T  trx2 , try2  có tọa độ : Q   P M T  trx1 , try1  M T  trx2 , try2   P  M T  trx1 , try1 .M T  trx2 , try2  Ta coù : M T1 tr x1 , try1      trx1  trx2 hay : .M tr T2 try1 x2 , try2  try2    tr  x1   try1 0   0.  1  trx2 try2 0  0  1 0  0  1 M T  trx1 , try1 .M T  trx2 , try2   M T  trx1  trx2 , try1  try2  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 2.7.2.2 Kết hợp phép 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  sx1 , sy1  vaø M S  sx2 , sy2  laø : Q   P M S1  sx1 , sy1  M S  sx2 , sy2   P  M S1  sx1 , sy1 .M S  sx2 , sy2  Ta coù : M S1  sx1 , sy1 .M S  sx2 , sy2   sx1 sx2     hay : sy1 sy2  sx1     sy1 0  sx2  0. 1  0 sy2 0  0 1 0  0 1 M S1  sx1 , sy1 .M S  sx2 , sy2   M S  sx1 sx2 , sy1 sy2  Vaä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ệ 2.7.2.3 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   M R   laø : Q  P M R1   M R    P  M R  .M R   Ta coù : M R1  .M R    cos     sin    sin  cos  cos    sin    0      sin    cos    0  0 1  0  cos  0.  sin  1  sin  cos 0  0 1 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 độ 2.7.2.4 Phép quay có tâm quay điểm Giả sử tâm quay có tọa độ I  xR , yR  , ta 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   xR , yR  để 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  xR , yR  để đưa tâm quay lại vò trí ban đầu y y I(x R y y ,y R ) I(x R ,y R )  x x (a) x (b) (c) x (d) Hình 2.29 – Phép quay quanh tâm điểm Ta có ma trận phép biến đổi : M R  xR , yR ,   M T   xR , yR .M R  .M T  xR , yR      x R   yR 0  cos  0.  sin  1  cos     sin   1  cos  x  sin  y R R  sin  cos 0   0. 1  xR yR 0  0 1 sin  cos  sin  xR  1  cos  yR 0  0 1 2.7.4 Moät số phép biến đổi khác 2.7.4.1 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 Nếu trục đối xứng trục hoành hay trục tung, có biểu diễn phép đối xứng qua trục hoành, trục tung :  0   M Rfx    0  0 1   M Rfy   0     0  0 1   2.7.4.2 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 Hai dạng phép biến dạng thường gặp biến dạng theo phương trục x biến dạng theo phương trục y cách thay đổi tọa độ  x, y điểm ban đầu theo cách sau : Biến dạng theo phương trục x làm thay đổi hoành độ tung độ giữ nguyên M Shx 0      shxy 0  0 1  Biến dạng theo phương trục y làm thay đổi tung độ hoành độ giữ nguyên M Shy shxy  shyx 0    0 0 1  shyx gọi hệ số biến dạng y (1,3) (3,3) (1,1) (3,1) (10,3) (4,1) (12,3) (6,1) x Hình 2.30 – Phép biến dạng theo phương trục x với hệ số biến dạng shxy  2.7.4.3 Phép biến đổi ngược Chúng ta thường dùng phép biến đổi ngược để undo phép biến đổi thực Ta có Q ảnh P qua phép biến đổi T có ma trận biến đổi M : Q  PM , từ 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 thức tính ma trận nghòch đảo M -1 M 1  a b 0   M   c d 0  e f 1   ad  bc  , ta có công :  b 0  d    a 0   c ad  bc    cf  de be af 1 Như ta có ma trận phép biến đổi ngược phép biến đổi sở tònh tiến, tỉ lệ, quay sau : M 1 T tr , tr  x y       trx  sy   0 sx sy  0 M 1 S s , s  M 1 R  cos      sin    x y  try sx  sin  cos 0  0  M T   trx , try   1 0  0 1    sx       sy  0   1  0  M S  ,   sx sy     1   0  0  M R     1 2.7.4.4 Phân rã phép biến đổi Một phép biến đổi phân rã thành tích phép biến đổi sở tònh tiến, quay, tỉ lệ 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 :   0  shxy     shxy 0     0 1      0  0 shxy 0 0 1 0 0  1 0 1 0 1   Phép biến dạng đơn vò phân rã tiếp :  0  cos     1 0   sin   0 1     ñoù  sin  cos 0   0  1  0 cos  0  sin    1 sin  cos 0  0 1    tan     58.280    1 1    tan     31.72    Từ đó, phép biến đổi phân rã thành phép biến đổi sở sau :  a b 0    c d 0  e f 1    0 Q  ac  bd  0  Q2    0    a  0 Q  ad  bc  b   Q Q  1   b  0 Q  0  a  0 0 Q   1 e f 1   Q  a  b2 Với cách lập luận ta nhận thấy : phép biến đổi kết hợp từ phép biến dạng, tỉ lệ, quay, tònh tiến Tuy nhiên, theo kết bước trước, phép biến dạng kết hợp phép quay, tỉ lệ, nên từ suy phép biến đổi kết hợp từ phép tònh tiến, tỉ lệ quay 2.7.5 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 Hình 2.31 – Phép biến đổi hai hệ tọa độ 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ệ với a, b Người ta chứng minh x, y, M Q  PM 1 P v u O' j O i Hình 2.32 – Tọa độ điểm qua phép biến đổi hệ tọa độ Tỉ lệ tâm bất kỳ: Ma trân tỉ lệ * Ma trận tịnh tiến * Ma trận tịnh tiện ngược Đối xứng qua tâm : Tịnh tiến*Đối xứng * Tịnh tiến ngược Đối xứng qua đường thẳng bất kỳ: Tịnh tiến *Quay* Đối xứng * quay ngược * Tịnh tiến ngược ĐỒ HỌA CHIỀU: Phép tònh tiến y (x',y',z') tr =(tr (x,y,z) x ,tr y ,tr z ) x z Hình 3.5 – Phép tònh tiến với vector tònh tiến tr=(tr x, try, trz) Vector tònh tiến tr phép biến đổi ba chiều có tác động trực quan: điểm dòch khoảng tr x, try, trz theo ba trục Ma trận M cho phép tònh tiến có dạng sau: 1 0   tr(trx ,try ,trz )   0   trx try trz  0  0 0  1 (3.1) Phép biến đổi tỉ lệ Phép biến đổi tỉ lệ ba chiều mở rộng phép biến đổi tỉ lệ hai chiều :  sx  0 S(sx ,sy ,sz )    0  sy 0 0 sz 0  0 0  1 (3.2) Trong số theo trục x, y, z sx , sy , sz hệ số tỉ lệ tương ứng y x z Hình 3.6 – Phép biến đổi tỉ lệ Như hình 3.6, đối tượng phóng to gấp đôi, đồng thời với tác động phép biến đổi làm cho đối tượng bò đẩy xa gốc tọa độ Khi hệ số tỉ lệ đồng dạng sx , sy , sz nhau, ta có phép biến đổi Trong phép biến đổi S sx , sy , sz  , gốc tọa độ O có ảnh Ta gọi gốc tọa độ điểm bất động (fixed point) S, hay gọi O tâm phép biến đổi Tổng quát hơn, ta mô tả phép biến đổi tỉ lệ theo tâm  xf , yf , zf  dãy ba phép biến đổi sau: Tònh tiến điểm bất động  x , y , z  gốc tọa độ f f f Thực phép biến đổi tỉ lệ theo công thức (6.2) Tònh tiến ngược điểm bất động từ gốc tọa độ trở vò trí ban đầu Như vậy, kết hợp ba bước biến đổi ta có ma trận biến đổi phép biến đổi tỉ lệ theo tâm  xf , yf , zf  với hệ số tỉ lệ sx , sy , sz laø:  sx   S f (sx ,sy ,sz )     1-sx  xf  sy 1-sy  yf 0 sz 1-sz  zf 0  0 0  1 (3.3) Phép biến dạng Biến dạng theo trục tọa độ bò ảnh hưởng tọa độ ứng với hai trục lại Ma trận phép biến dạng sau:  hyx hzx  hzy h Sh   xy hxz hyz   0  0  0 0  1 (3.4) Ta có mối quan hệ Qx với P : Q x  Px  hxy P y  hxz P z Ở hiểu hxy lượng mà tọa độ y P tác động lên tọa độ x Q y y x z x z Hình 3.7 - Phép biến dạng theo trục x : hxy= hxz = 1, hệ số khác Tương tự trường hợp phép biến đổi tỉ lệ, phép biến dạng Sh (6.4) có điểm bất động gốc tọa độ O Ta xây dựng phép biến dạng với tâm biến dạng điểm  xf , yf , zf  Ma trận biến đổi phép biến dạng với tâm   hxy  Sh   hxz   -yf hxy  z f hxz  h yx hyz -xf hyx  zf hyz hzx hzy -xf hzx  yf hzy 0  0 0  1  x , y , z  là: f f f (3.5) Phép quay Phép quay quanh trục tọa độ Khác với phép quay hai chiều quanh điểm bất kì, ba chiều ta có phép quay quanh trục tọa độ Ở ta sử dụng hệ tọa độ theo quy ước bàn tay phải quy đònh chiều quay dương ngược chiều kim đồng hồ Ta có ma trận biểu diễn phép quay quanh trục x, y, z góc  R(z, ), R(y,), R(x, ): Quay quanh truïc z :  cosθ   - sin θ R  z,θ       sin θ cosθ 0 0 0  0 0  1 (3.6) y x z Hình 3.8 - Phép quay quanh truïc z Quay quanh truïc y : y x z Hình 3.9 - Phép quay quanh trục y  cosθ   R  y,θ    sin θ    - sin θ 0 cosθ 0 0  0 0  1 (3.7) Quay quanh truïc x : 1   cos R  x,    - sin  0  sin cos 0  0 0  1 (3.8) y z x Hình 3.10 - Phép quay quanh trục x Nhận xét giá trò nằm dòng cột tương ứng với trục x ma trận R(x,) có giá trò ngoại trừ giá trò nằm đường chéo Điều đảm bảo cho tọa độ x điểm không bò thay đổi qua phép biến đổi Nhận xét tương tự cho trường hợp ma trận lại Ghi chú: Các đònh nghóa chiều quay dùng chung cho hệ tọa độ theo quy ước bàn tay phải bàn tay trái Cụ thể chiều dương đònh nghóa sau: Quay quanh trục x: từ trục dương y đến trục dương z Quay quanh trục y: từ trục dương z đến trục dương x Quay quanh trục z: từ trục dương x đến trục dương y y x z (a) y x z (b) y x z (c) Hình 3.11- Cách xác đònh chiều quay dương Phép quay quanh trục Phép quay biểu diễn qua kết hợp hàm Hai dụ sau cho thấy rỏ điều Phép quay quanh trục Giả sử trục quay qua hai điểm P0, P1 với phương biểu diễn vector đơn vò k Quay điểm (x, y, z) quanh trục k theo góc  biến thành điểm (x’, y’, z’) (xem hình 3.12) Để thực phép quay quanh k góc , ta thực chuỗi thao tác sau: Tònh tiến trục k gốc tọa độ: tr(-P0) (thành trục k') Hình 3.12 - Phép quay quanh trục k y P P k k' d ky  x k" z Quay quanh trục x góc  để đặt trục k' nằm mặt phẳng Oxz: rot(x,) (thành trục k”) Quay quanh trục y góc  để đưa trục k” trục z: rot(y,-) Thực phép quay quanh trục z góc : rot(z,) Thực chuỗi phép biến đổi ngược lại trình y z  kx k" x Hình 3.13 - Tính góc  Góc quay  xác đònh dựa chiếu k' lên mặt phẳng yz Ta không cần tính  cụ thể Thay vào ta tính sin() cos() cách trực tiếp Từ hình 3.12 ta coù: k P P1 , d  k 2y  k 2z P P1 cos() = kz/d, sin() = ky/d Tương tự, từ hình 3.13 ta có: cos    d /  d, sin    kx /  kx Như vậy, phép quay quanh trục P 0P1 góc , rot(P0P1, ), phân rã thành chuỗi biến đổi sở sau: tr(-P0) rot(x,) rot(y, -) rot(z, ) rot(y, ) rot(x, -) tr(P0) (3.9) Pheùp quay điểm quanh trục tạo điểm khaùc P3 y P1 y P2 P3 P1 x z x z (a) P2 (b) Hình 3.14 phép quay quanh trục minh họa qua điểm Để mô tả cho phép quay đối tượng quang trục không gian 3D xét dụ sau Giả sử ta có điểm P1,P2,P3 với toạ độ điểm tương ứng không gian 3D Trục P1P2 coi trục trục mà P3 quay quanh.Để thực phép quay góc  ta phải qua bước để đạt kết sau: - P1P2 sau chuyển phải nằm trục z theo chiều dương trục - Chiều dài đoạn P1P2 P1P3 không đổi Để đơn giản ta chia trình làm bước nhỏ sau: - Chuyển P1 gốc toạ độ - quay quang trục y cho P1P2 nằm mặt phẳng (y,z) - quay quanh trục x cho P1P2 nằm mặt phẳng trục z Bước 1: chuyển P1 gốc tọa độ 0   T ( x1, yù , z1)    0    x1  y1  z1 0 0 0  1 p dụng biến đổi cho điểm P1,P2,P3 ta được: P’1=p1.T=[0 0 1] P’2=P2.T=[x2-x1 y2-y1 z2-z1 1] P’3=P2.T=[x3-x1 y3-y1 z3-z1 1] Bước 2: quay quanh trục y P’3 y P’2(x’2,y’2,z’2) P’1 L x  z Nhö hình vẽ, sau3.15 Quay chuyển dòch P gốc tọa độ, bước Hình quanh trục y với góc quay saoquay cho -90 P 1P2 nằm mặt phẳng (y,z) góc quay xung quang trục y trường hợp –(90) với : cos(-90+)=sin=z’2/L=(z2-z1)/L sin(-90+)=-cos=x’2/L=(x2-x1)/L L=  z'2  x'2    z2  z1   x2  x1 Bước 3: quay quanh trục x P’’3 y P’’2 N P’’1 x  z cos=z’’2/N Hình 3.16 Quay quanh trục y với góc quay  sin=y’’2/N với [P’’2]=[P’2].T(-90)=[0 y2-y1 L] N=  x2  x1   y2  y1   z2  z1 Vậy phép chiếu điểm P3 quanh trục P1P2 góc  có dạng sau T=T(-x1 -y1 -z1).T(-90) T().T() T-1().T-1(-90)T-1(-x1 -y1 -z1) T=T(-x1 -y1 -z1).T(-90) T().T() T-1().T-1(-90)T(x1 y1 z1) (3.10) ... 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 Hình 2.31 – Phép biến đổi hai hệ tọa... biến đổi tỉ lệ hai chiều :  sx  0 S(sx ,sy ,sz )    0  sy 0 0 sz 0  0 0  1 (3.2) Trong số theo trục x, y, z sx , sy , sz hệ số tỉ lệ tương ứng y x z Hình 3.6 – Phép biến đổi tỉ lệ... tượng bò đẩy xa gốc tọa độ Khi hệ số tỉ lệ đồng dạng sx , sy , sz nhau, ta có phép biến đổi Trong phép biến đổi S sx , sy , sz  , gốc tọa độ O có ảnh Ta gọi gốc tọa độ điểm bất động (fixed

Ngày đăng: 16/01/2018, 14:48

Mục lục

  • Hình 2.30 – Phép biến dạng theo phương trục x với hệ số biến dạng

  • Hình 2.31 – Phép biến đổi giữa hai hệ tọa độ

  • Hình 2.32 – Tọa độ của một điểm qua phép biến đổi hệ tọa độ

  • Hình 3.5 – Phép tònh tiến với vector tònh tiến tr=(trx, try, trz)

  • Hình 3.6 – Phép biến đổi tỉ lệ

  • Hình 3.7 - Phép biến dạng theo trục x : hxy= hxz = 1, các hệ số khác bằng 0

  • Hình 3.8 - Phép quay quanh trục z

  • Hình 3.9 - Phép quay quanh trục y

  • Hình 3.10 - Phép quay quanh trục x

  • Hình 3.11- Cách xác đònh chiều quay dương

  • Hình 3.12 - Phép quay quanh trục k

  • Hình 3.14 phép quay quanh trục được minh họa qua 3 điểm

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

Tài liệu liên quan