Đồ họa hiện thực ảo - Bài 4B (HUST) GV. Lê Tấn Hùng

LI
lienhejb
0 次下载
27
0

资料内容

第 2 页

Ma trận biến đổi 3 chiều 3D Matrix Transformations „ Các phép biến đổi chuyển vị - translation, tỉ lệ-scaling và quay-rotation sử dụng trong không gian 2D đều co thể mở rộng trong không gian 3D „ Again, using homogeneous coordinates it is possible to represent each type of transformation in a matrix form „ In 3D, each transformation is represented by a 4x4 matrix (c) SE/FIT/HUT 2002 2

第 3 页

Các phép biến đổi hình học 3 chiều „ Biểu diễn điểm trong không gian 3 chiều • [ x* y* z* h ] = [ x y z 1 ]. [ T ] • [x' y' z' 1 ]= [ x*/h y*/h z*/h 1 ][ T ] „ Ma trận biến đổi a b c p d e f q [T] =   g i j r l m n s   (c) SE/FIT/HUT 2002 3

第 4 页

Phép tịnh tiến „ [X'] = [ X ] . [ T(dx,dy,dz) ] „ [ x' y' z' 1 ] = „ [ x y z 1 ].[ T(dx,dy,dz) ] „ = [ x+dx y+dy z+dz 1 ] (c) SE/FIT/HUT 2002 4

第 5 页

Phép tỉ lệ =[x.s1 y.s2 z.s3 1] • s1, s2, s3 là các hệ số tỉ lệ tương ứng trên các trục toạ độ (c) SE/FIT/HUT 2002 5

第 7 页

Phép quay 3 chiều „ Quay quanh các trục toạ độ • Quay quanh trục x • Quay quanh trục z (c) SE/FIT/HUT 2002 7

第 8 页

Quay quanh trục y cosθ 0 − sinθ 0  0 1 0 0 [Ty]=   sinθ 0 cosθ 0  0 0 0 1   (c) SE/FIT/HUT 2002 8

第 9 页

Phép biến dạng (secondary translation) 1 b c 0 d 1 f 0 [x' y' z' 1] =[x y z 1]   g i 1 0   0 0 0 1 (c) SE/FIT/HUT 2002 9

第 11 页

Quay quanh một trục bất kỳ song song với các trục tọa độ 1 0 0 0  1 0 0 0   0 cosφ sinφ 0 0 1 0 0  [T(φ)] =   [Tr ] = 0 −sinφ cosφ 0 0 0 1 0      , 0 y z 1  0 0 0 1 , 1 0 0 0 1 0 0 0 0 cosφ sinφ 0   [Tth]=  0 1 0 0 [Tr]−1 = 0 −sinφ cosφ 0 0 0 1 0     0 y(1−cosφ)+zsinφ z(1−cosφ)−ysinφ 1 0 − y − z 1   (c) SE/FIT/HUT 2002 11

第 13 页

Solution „ Chuyển P1 về gốc tọa độ. „ Quay quanh trục y sao cho P1P2 nằm trên mặt phẳng (y, z) „ Quay quanh trục x sao cho P1P2 trùng với trục z. „ Quay quanh trục z sao cho P1P3 nằm trên mặt phẳng (y, z) Euler’s Theorem: Every rotation around the origin can be decomposed into a rotation around the x-axis followed by a rotation around the y-axis followed by a rotation around the z-axis. (c) SE/FIT/HUT 2002 13

第 14 页

Bước 1: Chuyển P1 về gốc tọa độ  1 0 0 0  0 1 0 0 [T(−x1,−y1,−z1)] =    0 0 1 0   − x1 − y1 − z1 1 y y P3 P3 P2 P1 P2 p P1 z z x x (c) SE/FIT/HUT 2002 14

第 15 页

Bước 2: Quay quanh trục y „ cos( - 90 + φ) = sinφ = z'2/L = ( z2 - z1)/L „ sin( - 90 + φ) = - cosφ = x'2/L = ( x2 - x1)/L y L= (z' )2 (x' )2 = (z −z )2 (x −x )2 2 2 2 1 2 1 P 3 „ [ P''2 ] = [ P'2 ][ T(φ-90) ] P' (x' ,y' ,z' ) „ = [ 0 y2-y1 L ] 2 2 2 2 P' 1 L φ z(x' ,0,z' )x 2 2 (c) SE/FIT/HUT 2002 15

第 16 页

Bước 3: Quay quanh trục x. „ cos ϕ = z''2/N, sin ϕ = y''2/N „ Với N = | P''1P''2| là độ dài của đoạn P''1P''2 y P''2 N P''1 „ [P''' ] = [P''2][T(ϕ)] = [P'2][T(φ-90)][T(ϕ)] ϕ 2 x „ = [P2 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] z „ = [ 0 0 |P1P2| 1 ] (c) SE/FIT/HUT 2002 16

第 17 页

Bước 4: Quay quanh trục z „ [P''' ]= [P ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] 3 3 „ Với góc quay dương ψ trên trục z „ cos ψ = y '''/M; sin ψ = x '''/M; 3 3 „ Ma trận tổng hợp của các phép biến đổi [ T ] có dạng sau đáp ứng toàn bộ quá trình biến đổi quay đối tượng quanh một trục bất kỳ. y „ [ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)] y'''3 P'''3 ψ M x'''3 P'''2P'''1 x z (c) SE/FIT/HUT 2002 17

第 18 页

„ Kết quả sau biến đổi cần phải đưa về vị trí ban đầu qua các phép biến đổi ngược. „ [Tth]= [T(-x1,-y1,-z1)]x[T(φ-0)]x[T(ϕ)]x [T(ψ)]x[T(ψ)]x[T(ϕ)]x „ [T(φ-90)]x[T(-x1,-y1,-z1)] (c) SE/FIT/HUT 2002 18

第 19 页

Hệ toạ độ Coordinate Frame y j φ i k z x „ Coordinate frame is given by origin φ and three mutually orthogonal unit vectors, i, j, k. „ Mutually orthogonal (dot products): i•j = ?; i•k = ?; j•k = ?. „ Unit vectors (dot products): i•i = ?; j•j = ?; k•k = ?. (c) SE/FIT/HUT 2002 19

第 20 页

Orientation Right handed coordinate system: Left handed coordinate system: k y y j j φ i i φ k z x z x Cross product: i x j = ? Cross product: i x j = ? (c) SE/FIT/HUT 2002 20

显示前 20 页。下载资料查看完整内容。

评论 (0)

登录 以加入讨论

暂无评论。快来抢沙发吧!