Một số đối tượng hình học cơ bản
– Đại lượng vô hướng s
– Vec-tơ v
– Điểm p’= p+ s* v
•Các phép biến đổi
–Các loại biến đổi: quay, tịnh tiến, co dãn.
–Biểu diễn ma trận
–Thứ tự
• Mô hình hóa hình học
– Mô hình hóa phân cấp
–Các bề mặt đa diện.
31 trang |
Chia sẻ: haohao89 | Lượt xem: 2048 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng Đồ họa máy tính: Hình khối và các phép biến đổi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
10/22/2007Bùi Thế Duy - Bộ môn KHMT
1
Đồ họa máy tính
Hình khối và Các phép biến đổi
10/22/2007Bùi Thế Duy - Bộ môn KHMT
2
Một số khái niệm cơ bản
• Một số đối tượng hình học cơ bản
– Đại lượng vô hướng s
– Vec-tơ v
– Điểm p’ = p + s * v
• Các phép biến đổi
– Các loại biến đổi: quay, tịnh tiến, co dãn.
– Biểu diễn ma trận
– Thứ tự
• Mô hình hóa hình học
– Mô hình hóa phân cấp
– Các bề mặt đa diện.
10/22/2007Bùi Thế Duy - Bộ môn KHMT
3
Các phép biến đổi
Thế nào là một phép biến đổi?
z P′=T(P)
Tại sao phải sử dụng các phép biến đổi?
z Mô hình hóa
- Tạo ra các đối tượng với các tọa độ tự nhiên/ tiện lợi
- Nhiều phiên bản khác nhau của cùng một mẫu hình
- Các mối nối/khung xương – tạo hoạt ảnh robot
z Tầm nhìn
– Cửa sổ và thiết bị độc lập với nhau
– Camera ảo: Các phép chiếu song song và chiếu phối cảnh
(perspective)
10/22/2007Bùi Thế Duy - Bộ môn KHMT
4
Các loại phép biến đổi
Liên tục (Bảo tồn lân cận)
Một – một, có nghịch đảo
Phân chia theo các tính chất bất biến và tính chất đối xứng
Isometry (bảo tồn khoảng cách)
– Phản xạ (Reflections) – đảo hai bên trái và phải
– Quay + Tịnh tiến
Similarity (bảo tồn góc)
– Co dãn đồng nhất (Uniform scale)
Affine (bảo tồn các đường thẳng song song)
– Co dãn không đồng nhất (Non-uniform scales),
shears or skews
Collineation (đường thẳng giữ là đường thẳng)
– Chiếu phối cảnh (Perspective)
Non-linear (đường thẳng trở thành đường cong)
– Vặn (Twists), biến hình, ...
10/22/2007Bùi Thế Duy - Bộ môn KHMT
5
Tịnh tiến 2D
⎥⎦
⎤⎢⎣
⎡=⎥⎦
⎤⎢⎣
⎡
′
′=′⎥⎦
⎤⎢⎣
⎡=
y
x,,
d
d
T
y
x
P
y
x
P
P
P’
Xét điểm P là P(x,y),
Tịnh tiến điểm P’(x’,y’) một khoảng cách dx theo trục x, dy theo
trục y:
x’ = x + dx y’ = y + dy
Viết theo dạng véc-tơ
Như vậy
P’ = P + T
10/22/2007Bùi Thế Duy - Bộ môn KHMT
6
Co dãn 2D theo gốc tọa độ
P
Xét điểm P là P(x,y),
Co dãn điểm P’(x’,y’) với tỉ lệ sx theo trục x, sy theo trục y:
x’ = x * sx y’ = y * sy
Đặt
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥⎦
⎤⎢⎣
⎡
′
′⋅=′
⎥⎦
⎤⎢⎣
⎡=
y
x
.
0
0
y
x
hay
đó Do
0
0
y
x
y
x
s
s
PSP
s
s
S P’
10/22/2007Bùi Thế Duy - Bộ môn KHMT
7
Quay 2D quanh tâm
y
x
r
r
P’(x’,y’)
P(x,y)
θ
10/22/2007Bùi Thế Duy - Bộ môn KHMT
8
Quay 2D quanh tâm
y
r
r
P’(x’,y’)
θ
φ
P(x,y)
φ
φ
sin.
cos.
ry
rx
=
=
y
x
x
10/22/2007Bùi Thế Duy - Bộ môn KHMT
9
Quay 2D quanh tâm
θφθφφθ
θφθφφθ
cos.sin.sin.cos.)sin(.
sin.sin.cos.cos.)cos(.
rrry
rrrx
+=+=′
−=+=′
y
r
r
P’(x’,y’)
θ
φ
P(x,y)
φ
φ
sin.
cos.
ry
rx
=
=
y
x
x
10/22/2007Bùi Thế Duy - Bộ môn KHMT
10
Quay 2D quanh tâm
θφθφφθ
θφθφφθ
cos.sin.sin.cos.)sin(.
sin.sin.cos.cos.)cos(.
rrry
rrrx
+=+=′
−=+=′
Thay :
φ
φ
sin.
cos.
ry
rx
=
=
Cho ta :
θθ
θθ
cos.sin.
sin.cos.
yxy
yxx
+=′
−=′
10/22/2007Bùi Thế Duy - Bộ môn KHMT
11
Quay 2D quanh tâm
θθ
θθ
cos.sin.
sin.cos.
yxy
yxx
+=′
−=′
Viết lại dưới dạng ma trận :
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡ −=⎥⎦
⎤⎢⎣
⎡
′
′
y
x
y
x
.
cossin
sincos
θθ
θθ
PRPR ⋅=′⎥⎦
⎤⎢⎣
⎡ −= ,
cossin
sincos
θθ
θθ
10/22/2007Bùi Thế Duy - Bộ môn KHMT
12
Nhiều phép biến đổi cùng lúc
z Tịnh tiến
– P′=T + P
z Co dãn
– P′=S ⋅ P
z Quay
– P′=R ⋅ P
z Chúng ta muốn các phép biến đổi thể hiện bằng phép
nhân để có thể ghép với nhau được⇒ thể hiện điểm bằng
tọa độ đồng nhất.
10/22/2007Bùi Thế Duy - Bộ môn KHMT
13
Tọa độ đồng nhất
z Thêm một thành phần tọa độ nữa, W, cho một
điểm.
– P(x,y,W).
z Hai tọa độ đồng nhất cùng thể hiện một điểm nếu
chúng là tích của nhau với một hằng số
– (2,5,3) và (4,10,6) thể hiện một điểm.
z Phải có ít nhất một thành phần khác không⇒
(0,0,0) không xác định.
z Nếu W≠ 0 , chia các tọa độ còn lại cho nó để có
tọa độ Đề-Cát (x/W,y/W,1).
z Nếu W=0, điểm đó coi như ở vô cùng.
10/22/2007Bùi Thế Duy - Bộ môn KHMT
14
Tọa độ đồng nhất (…)
z Nếu ta thể hiện (x,y,W) trong không gian 3 chiều, tất cả
các tọa độ đồng nhất thể hiện một điểm 2D tạo thành một
đường thẳng đi qua gốc tọa độ.
z Nếu ta đồng nhất hóa một điểm, ta thu được điểm có
dạng (x,y,1)
– Các điểm đồng nhất tạo thành mặt phẳng W=1.
P
X
Y
W
W=1 plane
10/22/2007Bùi Thế Duy - Bộ môn KHMT
15
Các phép biến đổi với tọa độ
đồng nhất
z Ma trận cho phép tịnh tiến 2D.
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
′
′
1
.
100
10
01
1
y
x
d
d
y
x
y
x
11
=
+=′
+=′
y
x
dyy
dxx
10/22/2007Bùi Thế Duy - Bộ môn KHMT
16
Kết hợp các phép biến đổi
(Concatenation)
z Nếu ta thực hiện 2 phép tịnh tiến trên với
cùng một điểm:
),(),(),(
:đó Do
),(),(),(
),(
),(
21212211
21212211
22
11
yyxxyxyx
yyxxyxyx
yx
yx
ddddTddTddT
ddddTPddTddTPP
ddTPP
ddTPP
++=⋅
++⋅=⋅⋅=′′
⋅′=′′
⋅=′
10/22/2007Bùi Thế Duy - Bộ môn KHMT
17
Kết hợp các phép biến đổi (…)
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
+
+
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⋅
100
10
01
100
10
01
.
100
10
01
: là ),(),(
21
21
2
2
1
1
2211
yy
xx
y
x
y
x
yxyx
dd
dd
d
d
d
d
ddTddT
10/22/2007Bùi Thế Duy - Bộ môn KHMT
18
Tính chất của các phép tịnh tiến
),(),(T 4.
),(),(),(),( 3.
),(),(),( 2.
)0,0( 1.
1-
yxyx
yxyxyxyx
yyxxyxyx
ssTss
ssTttTttTssT
tstsTttTssT
IT
−−=
⋅=⋅
++=⋅
=
10/22/2007Bùi Thế Duy - Bộ môn KHMT
19
Dạng đồng nhất của phép co dãn
⎥⎦
⎤⎢⎣
⎡=
y
x
yx s
s
ssS
0
0
),(
Ma trận phép co dãn :
Trong tọa độ đồng nhất :
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
100
00
00
),( y
x
yx s
s
ssS
10/22/2007Bùi Thế Duy - Bộ môn KHMT
20
Kết hợp các phép co dãn
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⋅
⋅
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⋅
100
0ss0
00ss
100
0s0
00s
.
100
0s0
00s
: ),(),(
y2y1
x2x1
y2
x2
y1
x1
2211 yxyx ssSssS
10/22/2007Bùi Thế Duy - Bộ môn KHMT
21
Dạng đồng nhất của phép quay
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡ −
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
′
′
1
.
100
0cossin
0sincos
1
y
x
y
x
θθ
θθ
)()(
).()(
1
1
θθ
θθ
TRR
RR
=
−=
−
−
10/22/2007Bùi Thế Duy - Bộ môn KHMT
22
Dạng đồng nhất của phép quay (…)
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡ −
=
100
0cossin
0sincos
)( ,
100
0cossin
0sincos
)( θθ
θθ
θθθ
θθ
θ TRR
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−
−−−
=−
100
0cossin
0sincos
100
0cossin
0sincos
)( θθ
θθ
θθ
θθ
θR
10/22/2007Bùi Thế Duy - Bộ môn KHMT
23
Các tính chất khác của phép quay
)()()()(
và
)()()(
)0(
θφφθ
φθφθ
RRRR
RRR
IR
⋅=⋅
+=⋅
=
10/22/2007Bùi Thế Duy - Bộ môn KHMT
24
Kết hợp các loại phép biến đổi
z Quay và tịnh tiến
– Góc và khoảng cách được giữ nguyên
z Quay, tịnh tiến và co dãn
– Góc và khoảng cách không được giữ nguyên
– Đường thẳng song song vẫn song song
– Gọi là các phép biến đổi Affine
10/22/2007Bùi Thế Duy - Bộ môn KHMT
25
Biến đổi 3D
z Sử dụng tọa độ đồng nhất, giống như trong 2D
z Các ma trận biến đổi có kích thước 4x4
z Sử dụng hệ tọa độ thuận ( z hướng ra ngoài)
z (hướng ra ngoài)
y
x
10/22/2007Bùi Thế Duy - Bộ môn KHMT
26
Tịnh tiến 3D.
Giống như trong 2D:
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
1000
100
010
001
),,(
z
y
x
zyx d
d
d
dddT
10/22/2007Bùi Thế Duy - Bộ môn KHMT
27
Co giãn 3D.
Giống như trong 2D:
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
1000
000
000
000
),,(
z
y
x
zyx s
s
s
sssS
10/22/2007Bùi Thế Duy - Bộ môn KHMT
28
Quay 3D
z Cần xác định trục quay.
z Quay quanh trục z tương tự như 2D
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡ −
=
1000
0100
00cossin
00sincos
)(
θθ
θθ
θzR
10/22/2007Bùi Thế Duy - Bộ môn KHMT
29
Quay 3D
z Quay quanh trục x và y:
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−=⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−=
1000
0cos0sin
0010
0sin0cos
)( ,
1000
0cossin0
0sincos0
0001
)( θθ
θθ
θθθ
θθθ yx RR
10/22/2007Bùi Thế Duy - Bộ môn KHMT
30
Quay quanh một trục bất kỳ?
z Khó!
z Tuy nhiên, chúng ta đã biết cách quay
quanh trục chính.
z Biến thành phép quay quanh trục chính.
z Cần tịnh tiến một trục quay a bất kỳ để đi
qua gốc tọa độ, quay nó để trùng với một
trục chính, thực hiện phép quay cần thực
hiện, và quay và tịnh tiến lại vị trí ban đầu.
10/22/2007Bùi Thế Duy - Bộ môn KHMT
31
Tổng kết
z Phép tịnh tiến, quay và co dãn 2D, 3D
z Tọa độ đồng nhất
z Kết hợp các phép biến đổi