1. Trang chủ
  2. » Công Nghệ Thông Tin

graphics distant6

16 206 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 296,61 KB

Nội dung

CHƯƠNG CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA BA CHIỀU Các phép biến đổi đồ họa ba chiều mở rộng phép biến đổi đồ họa hai chiều cách thêm vào việc xem xét tọa độ thứ ba, tọa độ z Bây giờ, tònh tiến đối tượng thông qua việc mô tả vector tònh tiến ba chiều Vector xác đònh độ dời vật theo ba chiều không gian Tương tự vậy, ta thu phóng đối tượng với tỉ lệ biến đổi theo ba chiều Sự mở rộng phép quay hiển nhiên hai phép biến đổi sở Khi khảo sát phép quay mặt phẳng hai chiều Oxy, ta cần khảo sát phép quay quanh tâm, hay nói cách khác, phép quay quanh trục vuông góc với mặt phẳng Oxy Trong không gian ba chiều, ta chọn trục quay có phương Phần lớn hệ đồ họa xử lí phép quay không gian ba chiều tổ hợp ba phép quay với trục quay trục tọa độ x, y z Như vậy, người dùng dễ dàng xây dựng phép quay cách mô tả trục quay góc quay Cũng trình bày phép biến đổi đồ họa hai chiều, chương này, ta khảo sát phép biến đổi đồ họa ba chiều dạng ma trận Một chuỗi phép biến đổi biểu diễn ma trận tích ma trận tương ứng với phép biến đổi thành phần http://www.ebook.edu.vn CÁC PHÉP BIẾN ĐỔI HÌNH HỌC Hình 6.1 – Một cảnh ba chiều tạo nhờ phép biến đổi Phép tònh tiến, quay, biến đổi tỉ lệ, phép biến dạng ví dụ phép biến đổi hình học Chúng biết tới phép biến đổi affine sở Trong số đó, phép quay nói quan trọng hữu dụng cho phép nhìn đối tượng theo hướng khác nhau, điều cho phép cảm nhận hình vẽ ba chiều trực quan hơn, dễ chòu Ta tạo nhiều phiên đối tượng cách vẽ đối tượng sau áp dụng dãy phép biến đổi hình học lên (xem hình 6.1) 1.1 Một số khái niệm liên quan 1.1.1 Phép biến đổi affine Phép biến đổi affine phép biến đổi tuyến tính, khả nghòch Phép biến đổi bảo toàn tính song song đường thẳng bảo toàn tính tỉ lệ khoảng cách đoạn thẳng Tuy nhiên, phép biến đổi không bảo toàn góc nghiêng chiều dài đoạn thẳng Các phép biến đổi bảo toàn tỉ lệ khoảng cách (xem thêm chương 3) Các hệ trục tọa độ theo quy ước bàn tay phải bàn tay trái y y z z x∧ y = z (a) x y∧x= z x (b) Hình 6.2 – Các hệ tọa độ theo quy ước bàn tay phải (a) http://www.ebook.edu.vn quy ước bàn tay trái (b) Hệ tọa độ Descartes ba chiều đònh nghóa theo quy ước bàn tay trái bàn tay phải (xem hình 6.2) Đònh nghóa • Hệ tọa độ theo quy ước bàn tay phải hệ tọa độ với trục x, y, z thỏa điều kiện: Nếu để bàn tay phải cho ngón hướng chiều với trục z, nắm tay lại, chiều ngón tay chuyển động theo hướng từ trục x đến trục y • Hệ tọa độ theo quy ước bàn tay trái hệ tọa độ với trục x, y, z thỏa điều kiện: Nếu để bàn tay trái cho ngón hướng chiều với trục z, nắm tay lại, chiều ngón tay chuyển động theo hướng từ trục x đến trục y http://www.ebook.edu.vn Hệ tọa độ Trong hệ tọa độ nhất, điểm (x, y, z) không gian Descartes biểu diễn bốn tọa độ không gian chiều thu gọn (hx, hy, hz, h) Để tiện lợi, người ta thường chọn h=1 Như vậy, điểm (x, y, z) hệ tọa độ Descartes biến thành điểm (x, y, z, 1) hệ tọa độ nhất; điểm (x, y, z, w) hệ tọa độ (với w ≠ 0) tương ứng với điểm (x/w, y/w, z/w) hệ tọa độ Descartes (xem hình 6.3) Hình 6.3 – Các điểm hệ tọa độ Descartes projected homogeneous (x/w,y/w,z/w,1) homogeneous (x,y,z,w) w n dạng tỉ lệ, quay, biế w=1 (x' y' z' 1) = (x Descartes (x/w,y/w,z/w) tònh tiến ⎛ a ⎜ ⎜ d y z 1).⎜ g ⎜ ⎜ trx ⎝ b e h try c 0⎞ ⎟ f 0⎟ i x0 ⎟ ⎟ trz ⎟⎠ Dạng ma trận phép biến đổi affine hệ tọa độ Hình 6.4 – Dạng tổng quát phép biến đổi affine ba chiều Phép biến đổi affine ba chiều biến điểm P thành điểm Q có dạng : Q = P.M , Q = (Q x , Q y , Q z ,1) , P = (Px , Py , Pz ,1) M ma trận biến đổi 4x4 hệ tọa độ tr = (trx , try , trz ) vector tònh tiến Một số tính chất phép biến đổi ba chiều : • Tính chất đường thẳng bảo toàn Nghóa là, đường thẳng không gian ba chiều biến đổi thành đường thẳng • Tính song song bảo toàn Nghóa là, hai đường thẳng song song biến đổi thành hai đường thẳng song song • Tính tỉ lệ khoảng cách bảo toàn Nghóa là, ảnh điểm P chia đoạn thẳng AB theo tỉ lệ f, chia đoạn thẳng A’B’ theo tỉ lệ f, với A’B’ ảnh đoạn thẳng AB 1.2 Phép tònh tiến y (x',y',z') (x,y,z) tr =(trx,try,trz) x z http://www.ebook.edu.vn Hình 6.5 – Phép tònh tiến với vector tònh tiến tr=(trx, 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 trx, try, trz theo ba trục Ma trận M cho phép tònh tiến có dạng sau: ⎛1 ⎜ ⎜ tr(trx ,try ,trz ) = ⎜ ⎜ ⎜ trx ⎝ try 0 trz 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.1) 1.3 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(s x ,s y ,s z ) = ⎜ ⎜ ⎜0 ⎝ sy 0 0 sz 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.2) Trong số sx , s y , sz hệ số tỉ lệ tương ứng theo trục x, y, z y x z Hình 6.6 – Phép biến đổi tỉ lệ Như hình 6.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ệ sx , s y , sz nhau, ta có phép biến đổi đồng dạng http://www.ebook.edu.vn Trong phép biến đổi S(sx , s y , 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 (x f , y f , z f ) dãy ba phép biến đổi sau: • Tònh tiến điểm bất động (x f , y f , z f ) gốc tọa độ • 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 (x f , y f , z f ) với hệ số tỉ lệ sx , s y , sz là: ⎛ sx ⎜ ⎜ Sf (s x ,s y ,sz ) = ⎜ ⎜ ⎜ (1-sx )x f ⎝ sy (1-s y )y f 0 sz (1-sz )z f 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.3) 1.4 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: ⎛ ⎜ ⎜h Sh = ⎜ xy h ⎜ xz ⎜ ⎝ hyx hzx hyz 1 hzy 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.4) Ta có mối quan hệ Qx với P : Q x = Px + hxy Py + hxz Pz Ở 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 6.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 (x f , y f , z f ) Ma trận biến đổi phép biến dạng với tâm (x f , y f , z f ) là: http://www.ebook.edu.vn ⎛ ⎜ h ⎜ xy Sh = ⎜ hxz ⎜ ⎜ -y f hxy − z f hxz ⎝ h yx h yz -x f h yx − z f h yz hzx hzy -x f hzx − y f hzy 0⎞ ⎟ 0⎟ (6.5) 0⎟ ⎟ ⎟⎠ 1.5 Phép quay 1.5.1 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, θ): http://www.ebook.edu.vn Quay quanh trục z : ⎛ cos θ ⎜ ⎜ - sin θ R(z,θ ) = ⎜ ⎜ ⎜ ⎝ sin θ cos θ 0 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.6) y x z Hình 6.8 - Phép quay quanh trục z Quay quanh trục y : ⎛ cos θ ⎜ ⎜ R( y,θ ) = ⎜ sin θ ⎜ ⎜ ⎝ - sin θ 0 cos θ 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.7) http://www.ebook.edu.vn y x z Hình 6.9 - Phép quay quanh trục y Quay quanh trục x : ⎛1 ⎜ ⎜ cosθ R(x, θ ) = ⎜ - sinθ ⎜ ⎜0 ⎝ sinθ cosθ 0⎞ ⎟ 0⎟ 0⎟ ⎟ ⎟⎠ (6.8) 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 http://www.ebook.edu.vn y z x Hình 6.10 - Phép quay quanh trục x 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 http://www.ebook.edu.vn Hình 6.11- Cách xác đònh chiều quay dương 1.5.2 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 6.12) y P1 k P0 d k' ky α x k" z http://www.ebook.edu.vn Hình 6.12 - Phép quay quanh trục k Để 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') • 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 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 6.12 ta có: k= P0 P1 , d = k 2y + k 2z P0 P1 cos(α) = kz/d, sin(α) = ky/d Tương tự, từ hình 6.13 ta có: cos(β ) = d / = d, sin(β ) = kx / = kx Như vậy, phép quay quanh trục P0P1 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) y β kx k" x z Hình 6.13 - Tính góc β 1.6 Kết hợp phép biến đổi affine ba chiều Để kết hợp phép biến đổi affine ba chiều, thực tương tự phép biến đổi hai chiều cách dùng hệ tọa độ Bằng cách có kết tương tự trường hợp biến đổi hai chiều Nếu M1 biến đổi P thành Q M2 biến đổi Q thành S M1M2 biến đổi P thành S, ma trận kết hợp nhiều phép biến đổi tính từ việc nhân ma trận phép biến đổi thành phần http://www.ebook.edu.vn PHÉP BIẾN ĐỔI MÔ HÌNH VÀ PHÉP BIẾN ĐỔI HỆ TRỤC TỌA ĐỘ Cho đến thời điểm này, khảo sát phép biến đổi ba chiều thao tác dòch chuyển điểm (một đối tượng) từ vò trí sang vò trí khác hệ trục tọa độ Tuy nhiên, nhiều khi, ta cần xem xét đối tượng hệ tọa độ khác nhau, muốn chuyển từ hệ tọa độ sang hệ tọa độ khác Ví dụ, quy trình hiển thò đối tượng ba chiều, ta cần đặt đối tượng vào hệ tọa độ chung cho tất đối tượng cảnh (hệ tọa độ giới thực), sau đó, xác đònh tia nhìn, ta chuyển đổi từ hệ tọa độ giới thực sang hệ tọa độ quan sát, cuối ta phải chuyển từ hệ tọa độ quan sát sang hệ tọa độ thiết bò, nơi đối tượng hiển thò Khi mô hình hóa đối tượng, ta thường mô tả chúng hệ tọa độ cục bộ, thuận tiện cho việc mô hình hóa Sau đó, phép biến đổi ta đặt chúng vào cảnh cần hiển thò Cách tiếp cận cho phép ta không cần mô hình hóa nhiều đối tượng mà mô hình hóa theo chủng loại đối tượng Ví dụ để tạo cảnh hình 6.1 ta cần mô hình hóa trái banh, ki, bàn, … Sau phát sinh nhiều ki thấy hình vẽ Một ví dụ khác xem hình 6.14 Việc chuyển đổi mô tả đối tượng từ hệ tọa độ sang hệ tọa độ khác thực theo quy trình tương tự đồ họa hai chiều Ta cần xây dựng ma trận biến đổi để khớp trục tọa độ hai hệ Trước tiên, ta cần thực phép tònh tiến để hai gốc tọa độ trùng Sau đó, ta phải thực tiếp dãy phép quay để khớp trục tọa độ tương ứng lên Nếu hệ tọa độ sử dụng tỉ lệ đo lường khác nhau, ta phải thực thêm phép biến đổi tỉ lệ để đồng hệ tọa độ http://www.ebook.edu.vn yt Tractor System yW xt zt xW World zW yfW xfW zfW Front-Wheel System Hình 6.14 - Mô hình hóa phép biến đổi hệ tọa độ Nếu hệ tọa độ thứ hai có gốc tọa độ đặt (x0, y0, z0) vector sở mô tả hình 6.15 (tương ứng hệ tọa độ thứ nhất), trước tiên ta cần thực phép tònh tiến T(-x0,-y0,-z0) Sau ta xây dựng ma trận quay R dựa vector sở Ma trận biến đổi vector đơn vò u’x, u’y, u’z tương ứng thành trục x, y, z ⎛ u' x1 ⎜ ⎜ u' R = ⎜ x2 u' ⎜ x3 ⎜ ⎝ u' y1 u' y2 u' y3 u' z1 u' z2 u' z3 0⎞ ⎟ 0⎟ (6.9) 0⎟ ⎟ ⎟⎠ Ma trận phép biến đổi hệ tọa độ tích T.R Ma trận biến đổi hệ tọa độ Descartes thành hệ tọa độ Descartes khác, cho dù chúng hệ tọa độ theo quy ước bàn tay phải hay bàn tay trái y y' u'y u'x (0,0,0) x (x0,y0,z0) x' u'z z z' Hình 6.15 - Chuyển đổi hệ tọa độ TÓM TẮT Chúng ta vừa khảo sát phép biến đổi affine ba chiều mở rộng phép biến đổi affine hai chiều Cũng phép biến đổi affine hai chiều, trước tiên ta khảo sát phép biến đổi sở: tònh tiến, tỉ lệ, quay; sau khảo sát phép biến đổi phức tạp Đặc biệt, phép quay quanh trục khảo sát chi tiết minh họa cho phân http://www.ebook.edu.vn rã phép biến đổi affine thành tích phép biến đổi affine sở Nhờ khảo sát phép biến đổi affine với biểu diễn dạng ma trận hệ tọa độ nên công việc đơn giản quán Lưu ý điều, phép tònh tiến quay có chung thuộc tính : sau biến đổi, hình dạng kích thước đối tượng không thay đổi mà chúng bò thay đổi vò trí đònh hướng không gian Vì vậy, người ta gọi hai phép biến đổi phép biến đổi rigid-body transformations Phần cuối chương, xem xét phép biến đổi hệ tọa độ Các phép biến đổi quan trọng trình hiển thò đối tượng ba chiều http://www.ebook.edu.vn BÀI TẬP Hãy xác đònh ma trận phép đối xứng gương qua mặt phẳng Oxy, Oxz, Oyz Hãy xác đònh ma trận biến đổi phép đối xứng gương qua mặt phẳng qua điểm P(x,y,z) có vector pháp tuyến n Hãy xác đònh ma trận phép đối xứng qua trục tọa độ x, y, z Hãy xác đònh ma trận phép đối xứng qua trục qua hai điểm P0, P1 Hãy xác đònh ma trận biến đổi phép đối xứng qua gốc tọa độ O Hãy xác đònh ma trận biến đổi phép đối xứng qua điểm P(x,y,z) Cài đặt chương trình cho phép người dùng sử dụng phép biến đổi affine (tònh tiến, tỉ lệ, quay, biến dạng, …) để biến đổi đối tượng, sau phục hồi lại đối tượng gốc Cài đặt chương trình minh họa kết hợp phép biến đổi sở để tạo thành phép quay quanh trục Chứng minh công thức (6.3), (6.5) 10 Xây dựng ma trận biến đổi phép quay quanh trục http://www.ebook.edu.vn

Ngày đăng: 22/12/2016, 12:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN