Các phép biến đổi trong đồ họa 2 chiều 7/22Các loại biến đổi 2D Biến đổi tuyến tính Đường thẳng giữ nguyên thẳng Thí dụ: Toàn bộ các biến đổi trên đây là biến đổi tuyến tính Biến
Trang 1Các phép biến đổi hình học
Chương 3
Các phép toá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
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(m, n)] = [C(m, n)]
c ij a ij b ij
[A(m, n)] [B(n, p)]= [C(m, p)]
n
i ji ik
c
1
j=1, ,m và k=1, ,p
Trang 218/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 3/22
Các phép toán cơ sở với ma trận (tt)
Đảo ma trận vuông
Không có phép chia ma trận
nếu [A][X]=[Y] thì [X]=[A]-1[Y], trong đó [A]-1là ma trận đảo của ma trận vuông [A]
[A][A]-1= [I] trong đó [I] là ma trận đơn vị
Tính ||A||: Thay các phần tử của [A] bằng các phần phụ đại số của nó
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].
A A
A
det
1
1
1ij Mij
Ứng dụng biến đổi 2D
Mô hình hóa (modeling)
Định vị và thay đổi kích thước các phần của đối tượng phức tạp
Quan sát (viewing)
Định vị và quan sát camera ảo
Animation
Xác định đối tượng chuyển động và thay đổi theo thời gian như thế nào.
Trang 318/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
Các thí dụ biến đổi 2D (tt)
Trang 418/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 7/22
Các loại biến đổi 2D
Biến đổi tuyến tính
Đường thẳng giữ nguyên thẳng
Thí dụ: Toàn bộ các biến đổi trên đây là biến đổi tuyến tính
Biến đổi affine
Các đường thẳng song song giữ nguyên song song
Thí dụ: Toà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
Thí dụ: Phép chiếu viễn cảnh.
Biến đổi trực giao
Bảo toà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.
Các phép biến đổi cơ sở
Tịnh tiến (Translation)
Định nghĩa: P= [x y], P'=[x' y'] và T= [Tx Ty]
Co dãn (Scaling)
50 150 50
100
x' = x + Tx
y' = y + Ty
x' = x.Sx
y‘ = y.Sy
Sx là thừa số co dãn chiều x
Sy là thừa số co sãn chiều y.
(Tx, Ty) là véc tơ tịnh tiến
y
x
S
S y x y
x ' ' 0 0
x ' y ' x y Tx Ty
Trang 518/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 9/22
Các phép biến đổi cơ sở (tt)
Xoay hình (Rotation)
Góc xoay
(x, y)
(x', y') r r
sin cos cos
sin ) sin(
'
sin sin cos cos ) cos(
'
r r
r
y
r r
r
x
, sin
cos y r
r
cos sin
'
sin cos
'
y x
y
y x
x
cos sin
sin cos '
x
Tọa độ thuần nhất
Các biến đổi cơ sở có cách xử lý khác nhau
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.
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.
P' = P + T (tịnh tiến); P' = P S (co dãn); P' = P.R (xoay)
Trang 618/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 11/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.
[x, y]
x
y z
z=1
Đường thẳng tương ứng với [x,y]
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
Từ hình trên, dịch chuyển:
x’=x+Tx=x+Tx.1 y’=y+Ty=y+Ty.1 w’=1
1
0 1 0
0 0 1 1 1
'
'
Ty Tx
y x y
x
1
0 1 0
0 0 1 ) ,
(
Ty Tx
Ty Tx
T
(x, y,1) (x+Tx, y+Ty,,1)
x
y z
z=1
Trang 718/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 13/22
Ma trận biến đổi 2D (tt)
Co dãn
Xoay
Biến đổi affine tổng quát
1 0 0
0 0
0 0 1 1
'
Sx y x
y
x
1 0 0 0 0 0 0 )
,
Sx Sy Sx S
1 0 0
0 cos sin
0 sin cos 1 1
'
y x y
x
1 0 0
0 cos sin
0 sin cos )
R
1 0
0
1 1
'
'
f c
e b
d a y x y
c by ax x
' '
Các tính chất của biến đổi hình học
) , ( ) , ( T
4.
) , ( ) , ( ) , ( ) , ( 3.
) ,
( ) , ( ) , ( 2.
) 0 , 0 ( 1.
1
-y x y
x
y x y
x y
x y
x
y y x x y
x y
x
s s T s
s
s s T t t T t
t T s s T
t s t s T t
t T s s T
I T
Trang 818/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 15/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
Co dãn hai lần
Xoay hai lần
1 2 1 2 1
0 1 0
0 0 1
1 2 2
0 1 0
0 0 1 1 1 1
0 1 0
0 0 1
Ty Ty Tx Tx Ty
Tx Ty Tx
S(Sx1, Sy1).S(Sx2, Sy2)=S(Sx1.Sx2, Sy1.Sy2) R( 1).R( 2)=R( 1+ 2)
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.
xF, yF
d)
xF, yF
Trang 918/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 17/22
Co dãn đối tượng theo điểm cố định (tt)
Ma trận chuyển đổi được tính:
0 0
0 0 1
0 1 0
0 0 1 1 0 0
0 0
0 0 1
0 1
0
0 0
1
F F
F F y x
F
Sy Sx
y x S
S y
x
xF, yF
d)
xF, yF
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
d)
Trang 1018/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 19/22
Xoay đối tượng quanh điểm cố định
Ma trận chuyển đổi được tính:
d)
1 sin cos
1 sin cos
1
0 cos
sin
0 sin
cos
1
0 1 0
0 0 1 1 0 0
0 cos sin
0 sin cos 1
0 1 0
0 0 1
F F F
F
F F F
F
x y y
x
y x y
x
Co dãn theo hướng tùy ý
Ma trận biến đổi co dãn cơ bản
Tỷ lệ Sx và Sy áp dụng cho co dãn theo chiều trục x và y
Co dãn theo hướng tùy ý
Thực hiện chuyển đổi gộp: xoay và co dãn
Vấn đề
Cho trước hình vuông 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.
x
y
S2
S1
(0,1)
(0, 0) (1, 0)
(1, 1) (1/2,3/2)
(0,0)
(2, 2) (3/2,1/2)
a)
Trang 1118/05/2010 Chương 4 Các phép biến đổi trong đồ họa 2 chiều 21/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
1 0
0
0 cos 2 sin
1 cos sin 2 1
0 cos sin 2 1 sin
2 cos
.
1
2 2
2 2
S S
S S
S S S
S
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
trục x
Đối xứng qua trục y
Đối xứng qua gốc tọa độ
1
2
2’
3
3’
1 1’
2
3’
1
1’
2 2’
3
3’