Chương 3
Các phép biến đổi trong không gian
2 chiều
Nội dung
Biểu diễn điểm
Phép biến đổi khái quát
Các phép biến đổi hình học
Các phép biến đổi hệ trục
Chuyển đổi quan sát
1. Biểu diễn điểm(1)
Trong hệ toạ độ đề các
M(x,y)
Biểu diễn bằng ma trận:
Ma trận hàng:
Ma trận cột:
O x
y
M (x, y)
x
y
yy
[ ]
1yxM
=
=
1
y
x
M
2. Phép biến đổi hình học khái quát (1)
Phép biến đổi T biến điểm M thành điểm M’:
Công thức biến đổi:
Trong đó: a1, b1, c1, a2, b2, c2 là hằng số
Ma trận biến đổi
Ta có:
Suy ra:
⇔
⇔
[ ]
1yxM =
[ ]
1'y'x'M =
[ ]
=
1'y'x
[ ]
×
1yx
1cc
0bb
0aa
21
T
≡→
I
100
010
001
T
=
=
3.2. Phép tịnh tiến
Tịnh tiến điểm M một vector (m,n) thành
điểm M’:
Công thức biến đổi:
Ma trận biến đổi:
v
)'y,'x('M)y,x(M
=
1nm
010
001
T
3.3. Phép biến đổi tỉ lệ tại gốc toạ độ
Co dãn so với gốc toạ độ:
Công thức biến đổi:
với tlx, tly là các hệ số tỉ lệ
Ma trận biến đổi:
Nhận xét:
tlx=tly: phép biến đổi đồng dạng
tlx=tly >1: phép phóng ảnh
tlx=tly <1: phép thu ảnh
tlx ≠ tly: phép biến dạng (phép nhiễu hình)
)'y,'x('M)y,x(M
T
→
×=
×=
−
=
100
010
001
T
−
−
=
100
010
001
T
x
M' (x', y')
α
( )
)'y,'x('M)y,x(M
,O
T
→
α
α+α=
α−α=
cosysinx'y
sinycosx'x
αα−
αα
=
100
T = T1
T = T1
×
×
T2
T2
3.6. Phép biến đổi kết hợp (2)
Ví dụ 1:
Tính ma trận T với T1, T2 lần lượt là các phép tịnh tiến vecto
(a1, b1) và (a2, b2) ?
)y,x(M)y,x(M
)y,x(M)y,x(M)y,x(M
222
T
222
T
111
T
21
→⇔
→→
Giải quyết vấn đề:
Ta có:
Suy ra:
1bbaa
010
001
1ba
010
001
1ba
010
001
TTT
21212211
21
=
1ba
010
001
T
11
1
21
≡→→→
Giải quyết vấn đề:
Ta phân tích thành các phép biến đổi
cơ sở:
Trong đó:
T
1
: phép tịnh tiến vecto (-x0,-y0)
T
2
: phép quay tại O góc quay α
T
3
: phép tịnh tiến vecto (x0, y0)
Suy ra: T=T
1
×T
2
×T
3
M(x,y)
M'(x',y')
A
x
0
x
y
0
O
Áp dụng xây dựng bộ công cụ 2D thực
Áp dụng bộ công cụ 2D để vẽ đồ thị hàm sin
5.1.Mục đích
Mô phỏng hình ảnh trong không gian thực
hai chiều lên thiết bị hiển thị (màn hình)
Ví dụ:
Hình ảnh biểu diễn trên màn hình
Màn hình
Không gian th c 2 chi uự ề
5.2. Một số khái niệm
Cửa sổ:
Là một vùng hình chữ nhật
trong không gian thực 2 chiều,
giới hạn hình ảnh cần hiển thị.
Cửa sổ được xác định bởi
đường chéo chính: (xw1,yw1),
(xw2, yw2)
(xw
1
, yw
1
)
HÖ to¹ ®é thÕ giíi thùc
xv1,yv1, xv2, yv2: kiểu int, tlx,tly: kiểu float, là các biến toàn cục
void khungnhin(int x1, int y1, int x2, int y2)
{ xv1=x1; yv1=y1; xv2=x2; yv2=y2;
tlx=(xv2-xv1)/(xw2-xw1); tly= (yv2-yv1)/(yw2-yw1); }
Hệ toạ độ thiết bị hiển thị
Hệ toạ độ màn hình
Màn hình
O
m
x
m
y
m
(xv
1
, yv
1
)
(xv
2
, yv
2
)
Khung nhìn
Hệ toạ độ màn hình
Màn hình
O
m
5.3. Xây dựng công thức chuyển đổi quan sát
Bài toán:
Input:
Cửa sổ
Khung nhìn
Điểm P(x,y)
Output:
Tính Pm(xm,ym)?
xw
1
xw
2
x
yw
1
yw
2
y
O
Cửa sổ
Hệ toạ độ thế giới thực
O
m
x
yw
1
yw
2
y
O
cửa sổ
Hệ toạ độ thế giới thực
Hệ toạ độ màn hình
O
m
x
m
y
m
yv
1
yv
2
xv
1
xv
2
Khung nhìn
P
x
y
P
m
=?
11
BA
MA
AB
AM
11
11
DA
NA
AD
AN
=
Giải pháp 1(2)
=
=
11
11
11
11
DA
NA
AD
AN
yvyyw
ywyw
yvyv
y
xvxwx
xwxw
xvxv
x
12
12
12
12
ywyw
yvyv
tly
xwxw
xvxv
tlx
−
−
=
−
−
=
( )
( )
⇒
−
−
−
=
−
−
⇔
12
1m
12
2
12
1m
12
1
yvyv
yvy
ywyw
yyw
xvxv
xvx
xwxw
xwx
xw
1
xw
2
x
yw
1
y
m
A
1
B
1
C
1
D
1
A
B
CD
M
1
N
1
M
N
Giải pháp 2
xw
1
xw
2
x
yw
1
yw
2
y
O
m
x
m
y
m
yv
1
yv
2
xv
1
xv
2
Khung nh×n
P
m
x
m
y
m
T1: PhÐp tÞnh tiÕn hÖ trôc vecto v(xw1,yw2)
T2: PhÐp ®èi xøng qua trôc Ox
T3: PhÐp biÕn ®æi tØ lÖ
T4: PhÐp tÞnh tiÕn hÖ trôc vecto u(-xv1,-yv1)
T=T
1
*T
2
*T
x
m
y
m
yv
1
yv
2
xv
1
xv
2
Khung nhin
P
m
x
m
y
m
T