Chương 3: Các phép biến đổi ba chiều (Kỹ thuật đồ hoạ)

Chia sẻ: Hoang Anh | Ngày: | Loại File: PPT | Số trang:23

0
271
lượt xem
92
download

Chương 3: Các phép biến đổi ba chiều (Kỹ thuật đồ hoạ)

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong 2D, phép quay theo chiều ngược chiều kim đồng hồ trong mặt phẳng Oxy. Trong 3D, chúng ta có thể quay trên nhiều mặt phẳng: Oxy, Oxz, Oyz, Mặt phẳng bất kì. Chúng ta có thể xác định mặt phẳng quay bằng vetơ vuông góc với nó. Trục z, Trục y, Trục x, Trục bất kì.

Chủ đề:
Lưu

Nội dung Text: Chương 3: Các phép biến đổi ba chiều (Kỹ thuật đồ hoạ)

  1. 3D Transformations Các phép biến đổi 3 chiều 1
  2. Biểu diễn điểm trong không gian 3D • Ma trận tổng quát trong không gian 3D được biểu diễn : • Biểu diễn dưới dạng ma trận thuần nhất a d g 1 a d g tx  b  b e i m e i ty  [T ] =   [T ] =   c f j n c f h tz      p q r s 0 0 0 1 2
  3. Translation - Tịnh tiến x' = x + t x y' = y + ty (x’,y’,z’) T=(tx,ty,tz) z' = z + tz (x,y,z) 3
  4. Translation - Tịnh tiến dạng ma trận thuần nhất  x' 1 0 0 tx   x  y ' 0 1   y 0 ty     = ⋅  z '  0 0 1 tz   z         1  0 0 0 1  1  4
  5. Scaling – Biến đổi tỉ lệ  x' = x.s x   y' = y.s y  z' = z.s z   x'  s x 0 0 0  x   y '  0 sy 0 0  y   = ⋅   z'  0 0 sz 0  z        1  0 0 0 1  1  5
  6. Shearing – phép biến dạng - Tất cả các phần tử nằm trên đường chéo chính bằng 1 - Các phần tử chiếu và tịnh tiến bằng 0  x'  1 d g 0  x   x' = x + yd + gz  y '  b  1 i 0  y   y ' = bx + y + iz  = ×   z ' = cx + fy + z  z '  c f 1 0  z          1  0 0 0 1  1  6
  7. Phép lấy đối xứng 7
  8. Rotation - Quay Trong 2D, phép quay theo chiều ngược chiều kim đồng hồ trong mặt phẳng Oxy. Trong 3D, chúng ta có thể quay trên nhiều mặt phẳng: Oxy, Oxz, Oyz, Mặt phẳng bất kì. Chúng ta có thể xác định mặt phẳng quay bằng vetơ vuông góc với nó. Trục z, Trục y, Trục x, Trục bất kì. 8
  9. Quay quanh trục tọa độ z  x'  cosθ − sin θ 0 0  x   y '  sin θ cosθ 0 0  y   = ⋅  θ P’(x’,y’,z’)  z'  0 0 1 0  z        1  0 0 0 1  1  P(x,y,z) y O θ P1’(x’,y’,0) x P1 (x,y,0) Quay quanh trục oz 9
  10. Quay quanh trục tọa độ y  x'  cosθ 0 sin θ 0  x   y '  0 1 0 0  y   = ⋅  P’(x’,y’,z’)  z '  − sin θ 0 cosθ 0  z  θ       1  0 0 0 1  1  P(x,y,z) x O θ P1’(x’,0, z’) z P1 (x,0,z) Quay quanh trục oy 10
  11. Quay quanh trục tọa độ x  x'  1 0 0 0  x   y '  0 cosθ − sin θ   y 0    = ⋅ θ P’(x’,y’,z’)  z '   0 sin θ cosθ 0  z         1  0 0 0 1  1  P(x,y,z) z O θ P1’(0,y’, z’) y P1 (0,y,z) Quay quanh trục ox 11
  12. Quay quanh trục bất kì 12
  13. Các bước thực hiện phép quay B1. Tịnh tiến trục quay sao cho trục quay đi qua gốc tọa độ B2. Quay trục quay để nó nằm trên một trục tọa độ (Oz). B3. Áp dụng phép quay góc θ theo trục tọa độ. B4. Áp dụng phép quay ngược để trở về trục ban đầu. B5. Tịnh tiến ngược trục quay về vị trí ban đầu 13
  14. Phân tích - Xác định Vector trục quay V = B-A = (xb-xa, yb-ya, zb-za) - Xác định Vector đơn vị u dọc theo trục quay như sau: V u= = (a, b, c) V Với a, b, c là hướng Cosine của các trục quay a= (x b − xa ) b= (y b − ya ) c= (z b − za ) V V V 14
  15. Bước 1. Tịnh tiến trục quay sao cho đi qua gốc tọa độ Ta tiến hành tịnh tiến trục quay AB (A(xa, ya, za ), B(xb, yb, zb )) sao cho A trùng với gốc tọa độ. Ma trận tịnh tiến được xác định như sau:  x' 1 0 0 − xa   x   x  y ' 0 1 0 − ya   y   y  =  ⋅   = T .   z '  0 0 1 − za   z  z          1  0 0 0 1  1  1  15
  16. Bước 2 Quay trục quay u=AB sao cho trục AB nằm trên một trục tọa độ nào đó (Oz). - Quay trục quay quanh trục x sao cho vector u nằm trên mặt phẳng xz - Quay trục u quanh y sao cho nó trùng với trục z  Xác định hướng hợp lý cho u - Chiếu u lên mặt phẳng yz ta được u’=(0, b, c), khi đó cosine của góc quay α được xác định theo tích của u’ và vector đoen vị k dọc theo trục z y y u α x β x u' u’’ u’ z z 16
  17. Bước 2 Khi đó: u '.k c cos α = = u'. k d Với d là chiều dài của vector u’ d = b2 + c2 Tương tự ta tính được sin α b sin α = d Khi đó ma trận phép quay như sau: 1 0 0 0 0 c / d −b/d 0 Quay u quanh trục x sao Rx (α ) =   cho nó nằm trong mặt 0 b / d c/d 0   phẳng xz 0 0 0 1 17
  18. Bước 2 Tiếp theo xác định ma trận chuyển đổi của vector đơn vị ngược chiều kim đồng hồ quanh trục y trong mặt phẳng xz để nó trùng với chiều dương của trục oz: u ' '.k cos β = =d u' '. k Tương tự ta tính được sin β sin β = −a Khi đó ma trận phép quay như sau: d 0 −a 0 0 1 0 0 Quay u’ quanh trục y sao Ry ( β ) =   cho nó nằm trùng với chiều a 0 d 0   dương của oz 0 0 0 1 18
  19. Bước 3. Quay quanh trục z một góc θ z  x'  cosθ − sin θ 0 0  x   y '  sin θ cosθ 0 0  y   = ⋅  θ P’(x’,y’,z’)  z'  0 0 1 0  z        1  0 0 0 1  1  P(x,y,z) y O θ P1’(x’,y’,0) x P1 (x,y,0) Quay quanh trục oz 19
  20. Bước 4. Quay ngược trở về trục ban đầu Áp dụng phép quay ngược trở lại vị trí ban đầu ta được Rx-1(α) và Ry-1(β ) 1 0 0 0 d 0 a 0 0 c / d 0 0 Rx−1 (α ) =  b/d  1 0 0 0 − b / d c/d 0 Ry−1 ( β ) =   − a 0 d 0     0 0 0 1 0 0 0 1 20

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản