Tải bản đầy đủ (.pdf) (11 trang)

Đồ hoạ máy tính- các phép biến đổi trong đồ họa 2 chiều doc

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 (653.68 KB, 11 trang )

Chương 3

Các phép biến đổi hình học

Các phép tốn cơ sở với ma trận


Cộng, trừ ma trận


Chỉ thực hiện cho hai ma trận cùng bậc
[A(m, n)] + [B(m, n)] = [C(m, n)]

c   a   b 
ij



ij

ij

Nhân hai ma trận


Ma trận bậc n1xm1 và ma trận bậc n2xm2 nhân được với nhau
nếu m1=n2
[A(m, n)] [B(n, p)]= [C(m, p)]

c jk 


18/05/2010

n

a
i 1

ji

b ik

j=1,...,m và k=1,...,p

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

2/22


Các phép toán cơ sở với ma trận (tt)


Đảo ma trận vng





Khơng có phép chia ma trận
nếu [A][X]=[Y] thì [X]=[A] -1 [Y], trong đó [A] -1 là ma trận
đảo của ma trận vng [A]

[A][A] -1 = [I] trong đó [I] là ma trận đơn vị
A1  1 A T
det  A


Tính ||A||: Thay các phần tử của [A] bằng các phần phụ đại số
của nó

1i  j M ij 



Phần phụ đại số của phần tử (aij) là:



[Mij] được tạo ra nhờ xóa hàng i, cột j của [A].

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

3/22

Ứng dụng biến đổi 2D


Mơ hình hóa (modeling)





Quan sát (viewing)




Định vị và thay đổi kích thước các phần của đối tượng phức tạp
Định vị và quan sát camera ảo

Animation


18/05/2010

Xác định đối tượng chuyển động và thay đổi theo thời gian như
thế nào.

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

4/22


Các thí dụ biến đổi 2D

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

5/22


Các thí dụ biến đổi 2D (tt)

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

6/22


Các loại biến đổi 2D


Biến đổi tuyến tính





Biến đổi affine





Thí dụ: Phép chiếu viễn cảnh.

Biến đổi trực giao





Các đường thẳng song song giữ ngun song song
Thí dụ: Tồn bộ các biến đổi trên đây là biến đổi tuyến tính

Biến đổi tuyến tính và non-affine




Đường thẳng giữ ngun thẳng
Thí dụ: Tồn bộ các biến đổi trên đây là biến đổi tuyến tính

Bảo tồn khoảng cách, dịch chuyển đối tượng.

Xoay, dịch chuyển và phản chiếu là biến đổi affine.

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

7/22

Các phép biến đổi cơ sở


Tịnh tiến (Translation)
100

x' = x + Tx

y' = y + Ty

50

(Tx, Ty) là véc tơ tịnh tiến

Định nghĩa: P= [x y],

x '




y '  x

y   Tx

50

150

P'=[x' y'] và T= [Tx Ty]

Ty



Co dãn (Scaling)
x' = x.Sx
y‘ = y.Sy


x '

18/05/2010

y '  x

Sx là thừa số co dãn chiều x
Sy là thừa số co sãn chiều y.

S x
y 
0

0
Sy 


Chương 4. Các phép biến đổi trong đồ họa 2 chiều

8/22


Các phép biến đổi cơ sở (tt)
Xoay hình (Rotation)



x '  r cos(   )  r cos  cos   r sin  sin 
y '  r sin(   )  r sin  cos   r cos  sin 

 Góc xoay

(x', y')

x  r cos  , y  r sin 
r

x '  x cos   y sin 



y '  x sin   y cos 

x '

y '  x

18/05/2010

 cos 
y 
  sin 

r


(x, y)

sin  
cos  



Chương 4. Các phép biến đổi trong đồ họa 2 chiều

9/22

Tọa độ thuần nhất


Các biến đổi cơ sở có cách xử lý khác nhau
P' = P + T (tịnh tiến);



P' = P. S (co dãn);

P' = P.R (xoay)

Thực tế: Nhu cầu tổ hợp các chuyển đổi cơ sở



Cần cách xử lý nhất quán để dễ dàng tổ hợp
Giải pháp: Sử dụng hệ thống tọa độ thuần nhất (Homogeneous
Coordinates)


Bổ sung thêm một trục W vào điểm 2D: P(x, y, W).




Thí dụ: 2 tập (2,5,3) và (4,10,6) sẽ biểu diễn cùng một điểm.





18/05/2010

Nếu W  0, hãy chia cho W để có điểm trong tọa độ Đề các (x/W,
y/W, 1).
Nếu W=0 ta có điểm vơ cực.

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

10/22


Tọa độ thuần nhất (tt)










Thay thế các điểm 2D bằng các điểm 3D

với tọa độ cuối có giá trị 1.
Với điểm 3D (x, y, w) thì điểm 2D tương
ứng sẽ là (x/w, y/w) và w khác không.
Mỗi điểm 2D (x,y) tương ứng với đường
thẳng 3D, mọi điểm trên đường thẳng này
có thể viết thành (kx, ky, k) trong đó k là
tham số.
(x, y, 0) không tương ứng với điểm 2D mà
tương ứng với hướng.
Về hình học: Các điểm 3D ánh xạ thành
điểm 2D bằng cách chiếu chúng từ gốc lên
mặt phẳng z=1.
18/05/2010

Đường thẳng tương
ứng với [x,y]
y

z
[x, y]
z=1

x

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

11/22

Ma trận biến đổi 2D



Biểu diễn tọa độ 2D (x,y) trong
hệ tọa độ thuần nhất là bộ ba
(x, y, 1)





Các điểm là véctơ hàng 3 phần tử
Các ma trận biến đổi 2D sẽ có kích
thước 3x3

Dịch chuyển

x'

y ' 1  x

y

z

(x, y,1)
(x+Tx, y+Ty,,1)

z=1

x


 1 0 0
y 1. 0 1 0


Tx Ty 1



Từ hình trên, dịch chuyển:

 1 0 0
T (Tx , Ty )   0 1 0


Tx Ty 1 


18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

x’=x+Tx=x+Tx.1
y’=y+Ty=y+Ty.1
w’=1

12/22


Ma trận biến đổi 2D (tt)
Co dãn




x'


y ' 1  x

 Sx 0 0
S ( Sx, Sy )   0 Sy 0



 0 0 1


Xoay

x'



 Sx 0 0
y 1. 0 Sy 0


 0 0 1




y ' 1  x

 cos 
y 1. sin 

 0


sin 
cos 
0

0
0

1


 cos 
R ( )   sin 

 0


sin 
cos 
0

0
0


1


Biến đổi affine tổng quát

x'
18/05/2010

y ' 1  x

a
y 1.b

c


d
e
f

0
0

1


x '  ax  by  c
y '  dx  ey  f


Chương 4. Các phép biến đổi trong đồ họa 2 chiều

13/22

Các tính chất của biến đổi hình học
1. T (0,0)  I
2. T ( s x , s y )  T (t x , t y )  T ( s x  t x , s y  t y )
3. T ( s x , s y )  T (t x , t y )  T (t x , t y )  T ( s x , s y )
4. T -1 ( s x , s y )  T ( s x , s y )

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

14/22


Chuyển đổi gộp


Giải pháp:




Tính ma trận kết quả của các chuyển đổi thành phần trong chuyển
đổi gộp

Dịch chuyển 2 lần
0 0  1

0 0 
1
0
0
 1
 0
1 0. 0
1 0  
0
1
0


 

Tx1 Ty1 1  Tx 2 Ty 2 1  Tx1  Tx 2 Ty1  Ty 2 1 


 

T(Tx1, Ty1).T(Tx2, Ty2)=T(Tx1+Tx2, Ty1+Ty2)



Co dãn hai lần



Xoay hai lần


S(Sx1, Sy1).S(Sx2, Sy2)=S(Sx1.Sx2, Sy1.Sy2)
R(1).R(2)=R(1+2)

18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

15/22

Co dãn đối tượng theo điểm cố định


Vấn đề





Cho trước tứ giác ABCD, tọa độ chốt (xF, yF) và tỷ lệ co dãn Sx, Sy (a)
Thực hiện biến đổi để có kết quả (d)

Các bước thực hiện




Dịch đối tượng (tứ giác) sao cho điểm chốt trùng gốc tọa độ
Thực hiện co dãn theo tỷ lệ cho trước
Dịch ngược đối tượng sao cho điểm chốt về vị trí ban đầu.


x F , yF

x F , yF

a)
18/05/2010

b)

c)

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

d)

16/22


Co dãn đối tượng theo điểm cố định (tt)


Ma trận chuyển đổi được tính:

 1
 0

 xF


0  S x

0 . 0

1  0


0
1
 yF

0

0  1
0 . 0

1  xF


Sy
0

0
1
yF

0 
Sx
0  
0
 
1  1  Sx x F

 

0
Sy
1  Sy  y F

x F , yF

x F , yF

a)

b)

18/05/2010

0
0

1


d)

c)

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

17/22


Xoay đối tượng quanh điểm cố định (tt)


Vấn đề





Cho trước tam giác ABC, tọa độ chốt (xF, yF) và góc xoay  (a)
Thực hiện biến đổi để có kết quả (d)

Các bước thực hiện




Dịch đối tượng sao cho điểm chốt trùng gốc tọa độ
Thực hiện xoay theo góc cho trước
Dịch ngược đối tượng sao cho điểm chốt về vị trí ban đầu

x F , yF
a)
18/05/2010

x F , yF
b)

c)


Chương 4. Các phép biến đổi trong đồ họa 2 chiều

d)

18/22


Xoay đối tượng quanh điểm cố định


Ma trận chuyển đổi được tính:
 1
 0

 xF


0   cos 
0 .  sin 

1  0


0
1
 yF

cos 



 sin 


 1  cos  x F  y F . sin 

sin 
cos 
0

0  1
0  . 0

1  xF


0
1
yF

0
0

1


sin 
cos 
1  cos   y F  x F . sin 

x F , yF


0
0

1


x F , yF

a)

b)

18/05/2010

d)

c)

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

19/22

Co dãn theo hướng tùy ý


Ma trận biến đổi co dãn cơ bản





Co dãn theo hướng tùy ý




Tỷ lệ Sx và Sy áp dụng cho co dãn theo chiều trục x và y
Thực hiện chuyển đổi gộp: xoay và co dãn

Vấn đề


Cho trước hình vng ABCD, hãy co dãn nó theo hướng như
biểu diễn trên hình a) và theo tỷ lệ S1, S2.
y

S2
(0,1)

(1, 1)

(1/2,3/2)

x


a)
18/05/2010

(2, 2)


(3/2,1/2)
(0, 0)

(1, 0)

(0,0)

S1
Chương 4. Các phép biến đổi trong đồ họa 2 chiều

20/22


Co dãn theo hướng tùy ý (tt)


Giải pháp
Xoay hướng S1, S2 sao cho trùng với trục x và trục y (góc
xoay )








Áp dụng biến đổi co dãn theo tỷ lệ S1, S2
Xoay trả lại hướng ban đầu


Ma trận tổ hợp

 S1  S 2  sin  cos 

 S 1 . cos 2   S 2 . sin 2 

  S 1  S 2  sin  cos 

0


18/05/2010

0

0
1


S 1 . sin   S 2 . cos 
0
2

2

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

21/22


Một số biến đổi cơ sở khác


Phép đối xứng (reflection )
 1 0 0
 0  1 0


0
0 1



  1 0 0
 0 1 0


 0 0 1



1 0 0 
0  1 0 


0 0 1 



Đối xứng qua

gốc tọa độ

Đối xứng qua
trục y

Đối xứng qua
trục x

1

1
1’
2

1

3

2
3’

2’

3’

2’

2

3


3

2’
1’
3’

1’
18/05/2010

Chương 4. Các phép biến đổi trong đồ họa 2 chiều

22/22



×