Xem mẫu

  1. BÀI GIẢNG ĐỒ HỌA MÁY TÍNH CÁC PHÉP BIẾN ĐỔI HAI CHIỀU NGÔ QUỐC VIỆT 2009
  2. Nội dung • Giới thiệu. • Các phép biến đổi cơ bản • Biểu diễn ma trận • Bài tập • Giải đáp thắc mắc 2
  3. Giới thiệu • Định nghĩa: biến đổi là ánh xạ các điểm (x,y) từ một hệ tọa độ thành (x’, y’) trong hệ tọa độ khác. 3
  4. Một số thuật ngữ 4
  5. Các biến đổi cơ bản 5
  6. Biến đổi tỉ lệ • Scaling: mỗi giá trị tọa độ được nhân với tỉ lệ khác nhau. • Uniform scaling: các giá trị tọa độ được nhân với cùng tỉ lệ.  2 6
  7. Biến đổi tỉ lệ • Non-uniform scaling: different scalars per component: X  2, Y  0.5 • Có thể biểu diễn phép biến đổi bằng ma trận? 7
  8. Biến đổi tỉ lệ • Biến đổi tỉ lệ  x' ax   y '  by      • Dạng ma trận  x' a 0  x   y '  0       b  y  Ma trận tỉ lệ 8
  9. Phép quay (x’, y’) (x, y) x’ = x cos() - y sin()  y’ = x sin() + y cos() 9
  10. Phép quay x = r cos (f) y = r sin (f) x’ = r cos (f + ) y’ = r sin (f + ) (x’, y’) Trig Identity… x’ = r cos(f) cos() – r sin(f) sin() y’ = r sin(f) sin() + r cos(f) cos() (x, y) Substitute…  x’ = x cos() - y sin() f y’ = x sin() + y cos() 10
  11. Phép quay • Biểu diễn bằng ma trận:  x' cos    sin    x   y '   sin   cos     y       • Mặc dù sin() và cos() không là hàm tuyến tính theo , – x’ là kết hợp tuyến tính của x và y. – y’ là kết hợp tuyến tính của x và y. 11
  12. Các biến đổi cơ bản • Tịnh tiến: – x’ = x + tx – y’ = y + ty • Tỉ lệ: – x’ = x * sx – y’ = y * sy • Biến dạng: – x’ = x + hx*y – y’ = y + hy*x Có thể kết hợp các • Quay: biến đổi – x’ = x*cosQ - y*sinQ – y’ = x*sinQ + y*cosQ 12
  13. Các biến đổi cơ bản • Translation: – x’ = x + tx – y’ = y + ty • Scale: – x’ = x * sx – y’ = y * sy • Shear: – x’ = x + hx*y – y’ = y + hy*x • Rotation: – x’ = x*cosQ - y*sinQ – y’ = x*sinQ + y*cosQ 13
  14. Các biến đổi cơ bản • Translation: – x’ = x + tx – y’ = y + ty • Scale: – x’ = x * sx (x,y) – y’ = y * sy (x’,y’) • Shear: – x’ = x + hx*y – y’ = y + hy*x x’ = x*sx • Rotation: y’ = y*sy – x’ = x*cosQ - y*sinQ – y’ = x*sinQ + y*cosQ 14
  15. Các biến đổi cơ bản • Translation: – x’ = x + tx – y’ = y + ty • Scale: – x’ = x * sx – y’ = y * sy • Shear: – x’ = x + hx*y – y’ = y + hy*x (x’,y’) • Rotation: x’ = (x*sx)*cosQ - (y*sy)*sinQ – x’ = x*cosQ - y*sinQ y’ = (x*sx)*sinQ + (y*sy)*cosQ – y’ = x*sinQ + y*cosQ 15
  16. Các biến đổi cơ bản • Translation: – x’ = x + tx – y’ = y + ty • Scale: – x’ = x * sx (x’,y’) – y’ = y * sy • Shear: – x’ = x + hx*y – y’ = y + hy*x x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx • Rotation: y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty – x’ = x*cosQ - y*sinQ – y’ = x*sinQ + y*cosQ 16
  17. Các biến đổi cơ bản • Translation: – x’ = x + tx – y’ = y + ty • Scale: – x’ = x * sx – y’ = y * sy • Shear: – x’ = x + hx*y – y’ = y + hy*x x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx • Rotation: y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty – x’ = x*cosQ - y*sinQ – y’ = x*sinQ + y*cosQ 17
  18. Biểu diễn bằng ma trận • Biểu diển biến đổi hai chiều bằng ma trận a b   c d  • Thực hiện biến đổi bằng cách nhân ma trận cho từng tọa độ điểm.  x'   a b   x  x'  ax  by  y'  c d   y  y '  cx  dy 18
  19. Biểu diễn bằng ma trận • Các biến đổi có thể kết hợp bằng phép nhân ma trận  x'   a b   e f  i j x  y'  c d   g h  k l   y  Matrices are a convenient and efficient way to represent a sequence of transformations! 19
  20. Biểu diễn bằng ma trận • Các phép biến đổi cơ bản như tỉ lệ, quay, đối xứng, biến dạng đều biểu diễn được bằng ma trận 2x2, ngoại trừ phép tịnh tiến.  x '  s x 0  x  x ' cos Q  sin Q  x   y '   0 s y   y   y '   sin Q cos Q   y           x '     1 0  x   x '     1 0  x  y '  0 1  y   y '  0  1  y   x '  1 sh x   x   y '   sh 1   y     y 20
nguon tai.lieu . vn