Thông tin tài liệu:
Bài giảng Đồ họa máy tính: Các phép biến đổi hai chiều cung cấp cho người học những kiến thức như: Giới thiệu; Các phép biến đổi cơ bản; Biểu diễn ma trận; Bài tập; Giải đáp thắc mắc. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Đồ họa máy tính: Các phép biến đổi hai chiều - Ngô Quốc Việt
BÀI GIẢNG ĐỒ HỌA MÁY TÍNH
CÁC PHÉP BIẾN ĐỔI HAI CHIỀU
NGÔ QUỐC VIỆT
2009
Nội dung
• Giới thiệu.
• Các phép biến đổi cơ bản
• Biểu diễn ma trận
• Bài tập
• Giải đáp thắc mắc
2
Giới thiệu
• Định nghĩa: biến đổi là ánh xạ các điểm (x,y) từ
một hệ tọa độ thành (x’, y’) trong hệ tọa độ khác.
3
Một số thuật ngữ
4
Các biến đổi cơ bản
5
Biến đổi tỉ lệ
• Scaling: mỗi giá trị tọa độ được nhân với tỉ lệ khác
nhau.
• Uniform scaling: các giá trị tọa độ được nhân với
cùng tỉ lệ.
2
6
Biến đổi tỉ lệ
• Non-uniform scaling: different scalars per component:
X 2,
Y 0.5
• Có thể biểu diễn phép biến đổi bằng ma trận?
7
Biến đổi tỉ lệ
• Biến đổi tỉ lệ x' ax
y ' by
• Dạng ma trận x' a 0 x
y ' 0
b y
Ma trận tỉ lệ
8
Phép quay
(x’, y’)
(x, y)
x’ = x cos() - y sin()
y’ = x sin() + y cos()
9
Phép quay
x = r cos (f)
y = r sin (f)
x’ = r cos (f + )
y’ = r sin (f + )
(x’, y’) Trig Identity…
x’ = r cos(f) cos() – r sin(f) sin()
y’ = r sin(f) sin() + r cos(f) cos()
(x, y)
Substitute…
x’ = x cos() - y sin()
f y’ = x sin() + y cos()
10
Phép quay
• Biểu diễn bằng ma trận:
x' cos sin x
y ' sin cos y
• Mặc dù sin() và cos() không là hàm
tuyến tính theo ,
– x’ là kết hợp tuyến tính của x và y.
– y’ là kết hợp tuyến tính của x và y.
11
Các biến đổi cơ bản
• Tịnh tiến:
– x’ = x + tx
– y’ = y + ty
• Tỉ lệ:
– x’ = x * sx
– y’ = y * sy
• Biến dạng:
– x’ = x + hx*y
– y’ = y + hy*x Có thể kết hợp các
• Quay:
biến đổi
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
12
Các biến đổi cơ bản
• Translation:
– x’ = x + tx
– y’ = y + ty
• Scale:
– x’ = x * sx
– y’ = y * sy
• Shear:
– x’ = x + hx*y
– y’ = y + hy*x
• Rotation:
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
13
Các biến đổi cơ bản
• Translation:
– x’ = x + tx
– y’ = y + ty
• Scale:
– x’ = x * sx (x,y)
– y’ = y * sy (x’,y’)
• Shear:
– x’ = x + hx*y
– y’ = y + hy*x
x’ = x*sx
• Rotation: y’ = y*sy
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
14
Các biến đổi cơ bản
• Translation:
– x’ = x + tx
– y’ = y + ty
• Scale:
– x’ = x * sx
– y’ = y * sy
• Shear:
– x’ = x + hx*y
– y’ = y + hy*x (x’,y’)
• Rotation:
x’ = (x*sx)*cosQ - (y*sy)*sinQ
– x’ = x*cosQ - y*sinQ
y’ = (x*sx)*sinQ + (y*sy)*cosQ
– y’ = x*sinQ + y*cosQ
15
Các biến đổi cơ bản
• Translation:
– x’ = x + tx
– y’ = y + ty
• Scale:
– x’ = x * sx (x’,y’)
– y’ = y * sy
• Shear:
– x’ = x + hx*y
– y’ = y + hy*x
x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx
• Rotation: y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
16
Các biến đổi cơ bản
• Translation:
– x’ = x + tx
– y’ = y + ty
• Scale:
– x’ = x * sx
– y’ = y * sy
• Shear:
– x’ = x + hx*y
– y’ = y + hy*x
x’ = ((x*sx)*cosQ - (y*sy)*sinQ) + tx
• Rotation: y’ = ((x*sx)*sinQ + (y*sy)*cosQ) + ty
– x’ = x*cosQ - y*sinQ
– y’ = x*sinQ + y*cosQ
17
Biểu diễn bằng ma trận
• Biểu diển biến đổi hai chiều bằng ma trận
a b
c d
• Thực hiện biến đổi bằng cách nhân ma
trận cho từng tọa độ điểm.
x' a b x x' ax by
y' c d y y ' cx dy
18
Biểu diễn bằng ma trận
• Các biến đổi có thể kết hợp bằng phép
nhân ma trận
x' a b e f i j x
y' c d g h k l y
Matrices are a convenient and efficient way
to represent a sequence of transformations!
19
Biểu diễn bằng ma trận
• Các phép biến đổi cơ bản như tỉ lệ, quay,
đối xứng, biến dạng đều biểu diễn được
bằng ma trận 2x2, ngoại trừ phép tịnh tiến.
x ' s x 0 x ...