Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 2: Phép biến đổi trong không gian - Lê Tấn Hùng

pdf 27 trang cucquyet12 3720
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 2: Phép biến đổi trong không gian - Lê Tấn Hùng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_cac_giai_thuat_sinh_cac_thuc_the_co_so_bai_4_phan.pdf

Nội dung text: Bài giảng Các giải thuật sinh các thực thể cơ sở - Bài 4, Phần 2: Phép biến đổi trong không gian - Lê Tấn Hùng

  1. Bài 4B: Phép biến đổi trong không gian (c) SE/FIT/HUT 2002 1
  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 đổihìnhhọc3 chiều „ Biểudiễ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ậnbiế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ụctoạđộ (c) SE/FIT/HUT 2002 5
  6. Rotation y y y x x x z z z (c) SE/FIT/HUT 2002 6
  7. Phép quay 3 chiều „ Quay quanh các trụctoạđộ • Quay quanh trụcx • Quay quanh trụcz (c) SE/FIT/HUT 2002 7
  8. Quay quanh trụcy 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ếndạ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
  10. Phép lấy đốixứng (reflections-secondary translation) (c) SE/FIT/HUT 2002 10
  11. Quay quanh mộttrụcbấtkỳ song song vớicác trụctọa độ  1 0 0 0  1 0 0 0    0 1 0 0  0 cosφ sin φ 0 [Tr ] =   [T (φ)] =    0 0 1 0  0 − sin φ cosφ 0   ,   0 0 0 1 ,  0 y z 1    1 0 0 0 1 0 0 0     0 cosφ sinφ 0 0 1 0 0 [Tth]= [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
  12. Quay quanh mộttrụcbấtkỳ (c) SE/FIT/HUT 2002 12
  13. Solution „ Chuyển P1 về gốctọa độ. „ Quay quanh trục y sao cho P1P2 nằmtrênmặtphẳng (y, z) „ Quay quanh trục x sao cho P1P2 trùng vớitrụcz. „ Quay quanh trục z sao cho P1P3 nằmtrênmặtphẳ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ước1: ChuyểnP1 về gốctọ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ụcy „ cos( - 90 + φ) = sinφ = z'2/L = ( z2 - z1)/L „ sin( - 90 + φ) = - cosφ = x'2/L = ( x2 - x1)/L y 2 2 2 2 L = (z'2 ) (x'2 ) = (z2 −z1) (x2 −x1) P3 „ [ P''2 ] = [ P'2 ][ T(φ-90) ] P'2(x'2,y'2,z'2) „ = [ 0 y2-y1 L ] P'1 L φ z(x'2,0,z'2)x (c) SE/FIT/HUT 2002 15
  16. Bước 3: Quay quanh trục x. „ cos ϕ = z''2/N, sin ϕ = y''2/N y „ Với N = | P''1P''2| là độ dài của đoạn P''1P''2 P''2 N P''1 ''' ϕ „ [P 2] = [P''2][T(ϕ)] = [P'2][T(φ-90)][T(ϕ)] 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ụcz ''' „ [P 3]= [P3 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)] „ Với góc quay dương ψ trên trụcz ''' ''' „ cos ψ = y3 /M; sin ψ = x3 /M; „ Ma trậntổng hợpcủa các phép biến đổi[ T ] có dạng sau đáp ứng toàn bộ quá trình biến đổiquay đốitượng quanh mộttrụcbấtkỳ. y y''' „ [ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)] 3 P'''3 ψ M x'''3 P'''2P'''1 x z (c) SE/FIT/HUT 2002 17
  18. „ Kếtquả sau biến đổicầnphải đưavề 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
  21. Coordinate Transformations y j i φ k z x Transform (x, y, z, 0) coordinate frame to (i, j, k, φ) coordinate frame. Affine transformation matrix: ix jx kx φx  i j k φ   y y y y . iz jz kz φz     0 0 0 1  Maps (i, j, k, φ) coordinates into (x, y, z, 0) coordinates! (c) SE/FIT/HUT 2002 21
  22. Coordinate change (Translation) b y (φx, φy, φz) a (0,0,0) z c x Change from (a,b,c,φ) coordinates to  x    a      (x,y,z,0) coordinates:  y b =   .  z    c        1  0 0 0 1 1 (c) SE/FIT/HUT 2002 22
  23. Coordinate change (Rotation) b y x θ (φx, φy, φz) (0,0,0) a c z Change from (a,b,c,φ) coordinates to  x    a      (x,y,z,0) coordinates:  y b =   .  z    c        1  0 0 0 1 1 (c) SE/FIT/HUT 2002 23
  24. Composition of coordinate change y’’ y’ M2 y φ’’ z’’ M1 x’ φ’ x’ ’ ’ φ z z x M1 changes from coordinate frame (x,y,z,θ) to (x’,y’,z’,θ’). M2 changes from coordinate frame (x’,y’,z’,θ’) to (x’’,y’’,z’’,θ’’). Change from coordinate frame (x,y,z,θ) to (x’’,y’’,z’’,θ’’): ? (c) SE/FIT/HUT 2002 24
  25. Object vs. coordinate transformations Translate and then rotate object: y y y φ φ φ z x z x z x Translate and then rotate coordinate frame: y y y’ y y’’ φ x’’ φ φ’ φ ’’ z x φ z z’ x x’ x z z’’ (c) SE/FIT/HUT 2002 25
  26. Object vs. coordinate transformations (2) Translate and then rotate object: y y y φ φ φ z x z x z x Rotate and then translate coordinate frame: y’’ y y’y y x’’ φ’’ φ x’ φ φ ’’ ’ z z x z φ x z’ z x (c) SE/FIT/HUT 2002 26
  27. Order of transformations Let Mi be the transformation matrix for transformation Ti. Sequence of object (point) transformations, T1, T2, T3. Transformation matrix = M3 x M2 x M1. Sequence of coordinate system transformations, T1, T2, T3. Transformation matrix = M1 x M2 x M3. Note: OpenGL, OpenInventor use coordinate system transformations. (c) SE/FIT/HUT 2002 27