Tải bản đầy đủ (.ppt) (13 trang)

Bài giảng Đồ họa máy tính: Các phép biến đổi 3 chiều

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (94.86 KB, 13 trang )

3D Transformations
Các phép biến đổi 3 chiều

1


Translation - Tịnh tiến
 x '  1
 y ' 0
  
 z '  0
  
 1  0

0 0 tx   x
1 0 t y   y 

0 1 tz   z 
  
0 0 1  1
(x’,y’,z’)
(x,y,z)

T=(tx,ty,tz)

2


Scaling – Biến đổi tỉ lệ
 x'  s x
 y '  0


  
 z'  0
  
1  0

0

0

sy

0

0

sz

0

0

0  x 
0  y 

0  z 
  
1  1 

3



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ơ vng
góc với nó.
Trục z,
Trục y,
Trục x,
Trục bất kì.
4


Quay quanh trục tọa độ
 x' cos
 y '  sin 
  
 z'  0
  
1  0

 sin 
cos
0

0

 x'  cos
 y '  0
  
 z '    sin 
  
1  0
0
 x' 1
 y ' 0 cos
  
 z '  0 sin 
  
0
 1  0

0
0
1
0

0  x 
0  y 

0  z 
  
1  1 

0 sin 

1
0
0 cos
0
0

0  x 
0  y 

0  z 
  
1  1 

0
 sin 
cos
0

0  x 
0  y 

0  z 
  
1  1 
5


Quay quanh trục bất kì
Kí hiệu : R(rx, ry, rz,  )
Phép quay xác định bằng một vetơ và góc quay:

Trục quay đi qua gốc tọa độ và một điểm r
Phép quay ngược chiều kim đồng hồ theo trục quay

6


Các bước thực hiện phép quay
B1. Quay trục quay để nó nằm trên một trục tọa độ (Oz).
B2. Áp dụng phép quay góc  theo trục tọa độ.
B3. Áp dụng phép quay ngược để trở về trục ban đầu.

7


Phân tích
Đầu tiên, xác định vectơ đơn vị cùng hướng với trục quay.

u

rx , ry , rz
rx , ry , rz

Bây giờ ta thực hiện phép quay quanh vectơ đơn vị.

8


Bước 1
Quay trục quay u để nó nằm trên một trục tọa độ Oz.


u’ =<0,b,c>

u=<a,b,c>

u =<a,b,c>


uz=<0,0,1>

uz=<0,0,1>
u”=<a,0,d>


u”=<a,0,d>

9


Phân tích Bước 1
1. Quay u trở thành u” nằm trên mặt phẳng Oxz : Quay u theo
trục Ox.
Ta có thể bỏ thành phần x của u mà không mất tính tổng quát:

u  a, b, c
u   0, b, c
u d  b 2  c 2

u u z c
cos  


u u z d

b
sin  
d

1 0
0 c

d
0 b
d

0 0

0
 b
d
c
d
0

0
0
0

1

2. Quay u” trở thành uz nằm trên trục Oz : Quay u’’ theo trục
Oy.

 d 0  a 0

u  a,0, d
u  1

u u z
cos  
d
u  u z

sin   a

0 1

a 0

0 0

0
d
0

0
0

1

10



Bước 2
Quay theo trục Oz góc 

cos
 sin 

 0

 0

 sin 
cos 
0
0

0 0
0 0
1 0

0 1

11


Tổng hợp
Kết quả của phép quay quanh trục bất kì
P’ = R(ux,– ) · R(uy,– ) · R(uz, ) · R(uy, ) · R(ux, ) · P

12



Quay quanh trục bất kì
Khi trục quay khơng đi qua gốc tọa độ : trục quay được xác
định bởi 2 điểm.
Tịnh tiến về gốc tọa độ
Quay quanh trục qua gốc tọa độ
Tịnh tiến ngược lại vị trí ban đầu

13



×