Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng

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

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 1

Trang 1

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 2

Trang 2

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 3

Trang 3

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 4

Trang 4

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 5

Trang 5

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 6

Trang 6

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 7

Trang 7

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 8

Trang 8

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 9

Trang 9

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 27 trang xuanhieu 5920
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Đồ họa hiện thực ảo - Bài 4b: 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 hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng

Bài giảng Đồ họa hiện thực ảo - Bài 4b: Phép biến đổi trong không gian - Lê Tấn Hưng
Bài 4B:
Phép biến đổi trong không gian
 (c) SE/FIT/HUT 2002 1
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
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
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
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
Rotation
 y y y
 x x x
 z z z
 (c) SE/FIT/HUT 2002 6
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
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
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
Phép lấy đốixứng
(reflections-secondary translation)
 (c) SE/FIT/HUT 2002 10
 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
Quay quanh mộttrụcbấtkỳ
 (c) SE/FIT/HUT 2002 12
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
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
 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
 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
 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
„ 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
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
 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
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
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
 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
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
 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
 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
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

File đính kèm:

  • pdfbai_giang_do_hoa_hien_thuc_ao_bai_4b_phep_bien_doi_trong_kho.pdf