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ị
A1 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ó
1i 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