Xem mẫ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
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 x ' cos Q sin Q x
y ' 0 s y y y ' sin Q cos Q y
x ' 1 0 x x ' 1 0 x
y ' 0 1 y y ' 0 1 y
x ' 1 sh x x
y ' sh 1 y
y 20
nguon tai.lieu . vn