Professional Documents
Culture Documents
CG.4 3D Graphics
CG.4 3D Graphics
3D Graphics
Computer Graphics
CONTENTs
• Mô hình 3D
• Phép chiếu
Computer Graphics 2
CONTENTs
• Phép chiếu
Computer Graphics 3
Biến đổi 3D
Computer Graphics 4
...Biến đổi 3D
Quay , tæ leä
Tònh tieán
Computer Graphics 5
...Biến đổi 3D
y
Q(x’,y’,z’)
P(x,y,z)
z x
Computer Graphics 6
...Biến đổi 3D
Computer Graphics 7
...Biến đổi 3D
Computer Graphics 8
...Biến đổi 3D
Các phép biến đổi hình học cơ sở
z x
sx, sy, sz laø caùc heä soá tæ leä
Khi sx= sy= sz =s ta coù pheùp bieán ñoåi ñoàng daïng.
Trong pheùp bieán ñoåi treân, goác toaï ñoä O seõ coù aûnh laø chính noù. Khi
ñoù O laø taâm cuûa pheùp bieán ñoåi.
Computer Graphics 9
...Biến đổi 3D
Các phép biến đổi hình học cơ sở
Pheùp bieán ñoåi tæ leä, taâm (x0, y0, z0) ñöôïc moâ taû baèng daõy ba pheùp
bieán ñoåi sau:
• Tònh tieán taâm (x0, y0, z0) veà goác toaï ñoä.
• Bieán ñoåi tæ leä coù taâm ôû goác toaï ñoä.
• Tònh tieán ngöôïc taâm töø goác toaï ñoä veà laïi vò trí ban ñaàu.
Ma traän cuûa pheùp bieán ñoåi theo taâm (x0, y0, z0) nhö sau:
Computer Graphics 10
...Biến đổi 3D
Các phép biến đổi hình học cơ sở
Quay quanh moät truïc toaï ñoä
y
Qui ước: Quay ngược chiều kim
đồng hồ theo trục sẽ tạo thành góc x
z
dương nếu nhìn về gốc tọa độ từ
nửa trục dương.
Computer Graphics 11
...Biến đổi 3D
Các phép biến đổi hình học cơ sở
Quay quanh moät truïc toaï ñoä
Caùc ma traän bieåu dieãn pheùp quay quanh truïc x, y, z moät goùc laàn löôït laø
R(x, ), R(y, ), R(z, ) nhö sau:
Computer Graphics 12
...Biến đổi 3D
y P1
Các phép biến đổi hình học cơ sở k
P0
Quay quanh moät truïc baát kyø kz
k’ x
d
Giaû söû truïc quay ñöôïc bieåu dieãn bôûi ñöôøng thaúng k ñi ky k’’
qua 2 ñieåm P0 vaø P1. kx
z
Ñeå thöïc hieän pheùp quay quanh k, ta thöïc hieän moät chuoãi caùc thao taùc:
• Thöïc hieän moät soá pheùp tònh tieán, quay ñeå k truøng truïc z nhö sau:
• Tònh tieán k veà goác toaï ñoä (thaønh truïc k’) vôùi ma traän bieán ñoåi laø Tr(-P0).
• Quay quanh truïc x moät goùc ñeå ñaëït k’leân maët phaúng xy (thaønh truïc k’’)
vôùi ma traän bieán ñoåi laø: R(x, ) .
• Quay quanh truïc y moät goùc ñeå ñöa k’’veà truïc z vôùi mt bieán ñoåi laø: R(y,-).
• Quay quanh truïc z moät goùc vôùi ma traän bieán ñoåi laø: R(z, ).
• Thöïc hieän ngöôïc laïi caùc pheùp bieán ñoåi sao cho k trôû veà vò trí ban ñaàu, caùc ma
traän bieán ñoåi laàn löôït laø: R(y,), R(x,-), Tr(P0).
Computer Graphics 13
...Biến đổi 3D
Các phép biến đổi hình học cơ sở y P1
k
P0
Quay quanh moät truïc baát kyø
kz
k’ x
d
Vaäy pheùp quay moät ñieåm quanh ky k’’
kx
truïc k baát kyø vôùi moät goùc ñöôïc z
phaân tích thaønh caùc chuoãi bieán ñoåi sau:
Tr(-P0).R(x, ).R(y,-). R(z, ).R(y,), R(x, -), Tr(P0).
Trong ñoù goùc quay , ñöôïc xaùc ñònh döïa treân cô sôû chieáu k’ leân maët phaúng
yz, ta coù:
k=P0P1 ;
cos()=kz/d ; sin()=ky/d
Computer Graphics
cos()=kz/k ; sin()=kx/k 14
...Biến đổi 3D
Phép biến đổi ngược
Taát caû caùc pheùp bieán ñoåi ñeàu coù ma traän nghòch ñaûo
• Ma traän nghòch ñaûo cuûa pheùp tònh tieán coù ñöôïc baèng
caùch thay caùc heä soá tx, ty, tz baèng -tx, -ty, -tz.
• Ma traän nghòch ñaûo cuûa pheùp bieán ñoåi tæ leä coù ñöôïc
baèng caùch thay caùc heä soá sx, sy, sz baèng 1/sx, 1/sy, 1/sz
• Ma traän nghòch ñaûo cuûa pheùp quay coù ñöôïc baèng caùch
thay goùc baèng -.
Computer Graphics 15
...Biến đổi 3D
Kết hợp các phép biến đổi
Ma traän cuûa pheùp bieán ñoåi keát hôïp coù theå ñöôïc tính töø
tích caùc ma traän cuûa caùc pheùp bieán ñoåi thaønh phaàn.
Computer Graphics 16
...Biến đổi 3D
Bài tập
1. Một hình chóp A(0, 0, 0), B(1, 0, 0), C(0, 1, 0) và D(0, 0, 1) được xoay
một góc 450 quanh đoạn thẳng L được xác định theo hướng V= j + k và
đi qua đỉnh C. Xác định tọa độ các đỉnh sau phép xoay.
y
2. Tìm các tọa độ mới của khối vuông đơn vị (1, 1, 0)
(0, 1, 0)
như hình bên đây, sau khi xoay quanh một trục
(0, 1, 1) (1, 1, 1)
xác định bởi điểm A(2, 1, 0) và B(3, 3, 1).
(1, 0, 0)
Góc xoay là 900 ngược chiều kim đồng hồ. (0, 0, 0) x
z (0, 0, 1) (1, 0, 1)
Computer Graphics 17
CONTENTs
• Mô hình 3D
• Phép chiếu
Computer Graphics 18
Mô hình 3D
Computer Graphics 19
…Mô hình 3D
Moâ hình khung keát nối (WF-WireFrame model) theå hieän hình daùng cuûa
moät ñoái töôïng 3D bôûi 2 danh saùch:
• Danh saùch caùc ñænh (vertices): löu toaï ñoä caùc ñænh.
• Danh saùch caùc caïnh (edges): löu 2 ñænh ñaàu vaø cuoái cuûa töøng
caïnh.
Computer Graphics 20
…Mô hình 3D
Danh sách cạnh
Mô hình khung kết nối Cạnh Đầu Cuối
1 1 2
2 2 3
3 3 4
4 4 5
Danh sách đỉnh 5 5 1
z 6 6 7
Đỉnh x y z 7 7 8
4
3 1 0 0 0 8 8 9
5 2 0 1 0 9 9 10
9
10 8 3 0 1 1 10 10 6
1 4 0 0.5 1.5 11 1 6
5 0 0 1 12 2 7
6 1 0 0 13 3 8
1 2 y
7 1 1 0 14 4 9
6 1 8 1 1 1 15 5 10
7 9 1 0.5 1.5 16 2 5
x 1
10 1 0 1 17 1 3
Computer Graphics 21
…Mô hình 3D
Mô hình khung kết nối
Danh sách đỉnh Danh sách cạnh
Z
Đỉnh X Y Z Cạnh Đầu Cuối
12
(-1,-1,3) 1 1 1 -3 1 1 5
10 (-1,-1,2) 2 -1 1 -3 2 2 6
11 3 -1 -1 -3 3 3 12
(1,-1,3)
4 1 -1 -3 4 4 11
9
(1,-1,2) 7
(-1,-1,0)
1 6 5 1 1 0 5 5 6
(-1,1,0)
6 -1 1 0 6 6 7
1 Y 7 -1 -1 0 7 7 8
8
(1,-1,0) 5 8 1 -1 0 8 8 5
(1,1,0)
9 1 -1 2 9 9 10
3 2 10 -1 -1 2 10 11 12
X (-1,-1,-3) (-1,1,-3)
11 1 -1 3
4
(1,-1,-3)
1 12 -1 -1 3
(1,1,-3)
Computer Graphics 22
…Mô hình 3D
Mô hình khung kết nối
typedef struct 3DPoint{
int x; int y; int z;
};
typedef struct EdgeType{
int beginP;
int endP;
};
Computer Graphics 23
…Mô hình 3D
Moâ hình caùc maët ña giaùc (Polygon Mesh model) theå hieän hình daùng
cuûa moät ñoái töôïng 3D bôûi 2 danh saùch:
• Danh saùch caùc maët: löu thöù töï caùc ñænh taïo neân maët ñoù.
Computer Graphics 24
…Mô hình 3D
2 x2 y2 z2 2 4,5,6 Mặt 4
3 x3 y3 z3 3 1,4,6,3 Mặt 3 3
4 x4 y4 z4 4 3,6,5,2 5
5 x5 y5 z5 5 1,2,5,4
4
6 x6 y6 z6
Mặt 2
6
Computer Graphics 25
…Mô hình 3D
Computer Graphics 26
CONTENTs
• Mô hình 3D
• Phép chiếu
• Quan sát đối tượng 3D
Computer Graphics 27
Phép chiếu
Computer Graphics 28
…Phép chiếu
Hai nhóm phép chiếu đối tượng 3D sang 2D cơ bản
Chiếu song song (parallel projection)
Chiếu các điểm trên đối tượng theo đường song song
Sử dụng nhiều trong đồ họa máy tính, vẽ kỹ thuật
Taâm chieáu
Tia chieáu
Computer Graphics 29
…Phép chiếu
Phép chiếu song song (Parallel projective)
Höôùng cuûa tia chieáu vuoâng goùc vôùi maët phaúng chieáu ta coù pheùp chieáu
tröïc giao (orthographic projection), Ngöôïc laïi, ta coù pheùp chieáu xieân (oblique
projection).
z z
a
P(x, y, z)
P(x, y, z)
x’
Maët phaúng chieáu x
Maët phaúng chieáu
o P’(x’, y’) o P’’ Q
y
y’
x y x
y
Computer Graphics 30
…Phép chiếu
z a
Phép chiếu song song (Parallel projective)
P(x, y, z)
z y
Nhìn töø z
phía treân
x
z x
y
Nhìn töø
x Nhìn töø Maët beân
phía tröôùc
y
Computer Graphics 31
…Phép chiếu
Phép chiếu song song (Parallel projective) z
P(x, y, z)
Pheùp chieáu xieân
x’
Maët phaúng chieáu x
o P’’ Q
Đieåm P(x,y,z) seõ coù aûnh laø ñieåm P’. Trong ñoù: y
y’
• P’’ laø hình chieáu cuûa P qua pheùp chieáu tröïc giao. x
y
• laø goùc taïo bôûi tia chieáu vaø P’P’’
• laø goùc taïo bôûi P’P’’vôùi truïc y.
Bieát P, , ta coù theå xaùc ñònh ñöôïc ñieåm cheáu P’(x’,y’,z’).
Pheùp chieáu song song baûo toaøn ñöôïc moái quan heä giöõa caùc chieàu cuûa ñoái
töôïng.
Tuy nhieân pheùp chieáu song song khoâng bieåu dieãn thöïc cuûa ñoái töôïng ba
chieàu.
Computer Graphics 32
…Phép chiếu
Phép chiếu song song (Parallel projective)
Computer Graphics 33
…Phép chiếu
Phép chiếu phối cảnh (Perspective projection)
Các tia chiếu gặp nhau tại tâm chiếu (vanishing point)
Ta coù:
Taâm chieáu
Tia chieáu
Nhận xét:
• Phép chiếu phối cảnh không giữ nguyên hình dạng của vật thể.
• Vật ở trước mặt phẳng chiếu thì được phóng lớn, sau mặt phẳng chiếu thì bị thu nhỏ.
Vât ở xa thì trông nhỏ, ở gần thì trông lớn.
• Ta có thể xem phép chiếu song song như là một phép chiếu phối cảnh nhưng có
tâm chiếu ở xa vô cực
Computer Graphics 36
CONTENTs
• Mô hình 3D
• Phép chiếu
Computer Graphics 37
Quan sát đối tượng 3D
Khi mô tả việc quan sát một vật thể trong không gian ta cần lưu ý :
Vật thể được chiếu lên một hệ theo quy tắc bàn tay phải (O,X,Y,Z)
Mắt nằm ở gốc của một hệ theo quy tắc bàn tay trái (O’,X0,Y0,Z0)
Mặt phẳng chiếu vuông góc với đường thẳng OO’
Trục Z0 hệ toạ độ thứ 2 hướng vào O. Hệ toạ độ thứ hai gọi là hệ toạ độ quan sát.
Z Y0 X0
X O’(M,N,P)
Y
Z0
O
Y
X Màn hình
phép biến đổi một điểm P(x,y,z) trong hệ toạ độ thứ nhất sang P’(x0,y0,z0)
trong hệ toạ độ thứ hai rồi chuyển sang toạ độ trên mặt phẳng quan sát ?
Computer Graphics 38
…Quan sát đối tượng 3D
•Bước 1: Tịnh tiến gốc O thành O’.
Z Z1
Y1
O
X1 Y
A=
•Bước 2: Quay hệ (X1,Y1,Z1) một góc -‘ (‘=900 - ) quanh trục Z1 theo
kim đồng hồ. Phép quay này làm cho trục âm của Y1 cắt trục Z.
Z Z1 Z Z2
O’ O’
-’ Y1
O O X2 Y2
Y
X1 Y
X
X
Computer Graphics 40
…Quan sát đối tượng 3D
•Bước 2: Gọi Rz là ma trận tổng quát của phép quay quanh trục Z.
Vì đây là phép quay hệ trục nên phải dùng ma trận nghịch đảo R-1z.
Z Z2
R-1z =
O’
Y2
O X2
Y
Thay a = -‘ . Theo các phép toán lượng giác:
X
Sin(-') = -Sin(') = -Sin(900 - ) = -Cos()
Cos(-') = Cos(') = Cos(900-) = Sin()
• Bước 3: Quay hệ (X2,Y2,Z2) một góc 900 + quanh trục X2. Phép biến đổi này
sẽ làm cho trục Z2 hướng đến gốc O.
Y3
Z Z2 Z
900 +
O’ O’
Y2 Z3
O X2 O X3
Y
Y
X
X
Computer Graphics 42
…Quan sát đối tượng 3D
• Bước 3:
Ta có: R-1x =
Y3
Z
C=
Đổi hướng trục X3 bằng cách đổi dấu các phần tử của cột X.
Ta nhận được ma trận:
Z Y0
−1 0 0 0 X0
0 1 0 0
D= 0 0 1 0 O’
O Z0
0 1
0 0
Y
TÓM LẠI
Một điểm trong không gian biểu diễn trong hệ quan sát có dạng:
(x0 ,y0 ,z0 ,1) = (x, y, z, 1).A.B.C.D
Z Y0
Computer Graphics 45
…Quan sát đối tượng 3D
Chiếu ảnh trong hệ quan sát lên màn hình
• Phép chiếu phối cảnh
Y0 P0
Y0 y'
P0(x0 ,y0 ,z0 )
O z0 Z0
D
P’(x’,y’) Mặt chiếu
O’ D Z0 O z0 Z0
z0
x’ x'
P0
x0 X0
X0 Mặt chiếu
Gọi D là khoảng cách từ mặt phẳng chiếu đến mắt(gốc tọa độ).
Ta có: x'/x0 = D/z0 và y’/y0 = D/z0
hay x’= x0.D/z0 và y’= y0.D/z0
Computer Graphics 46
…Quan sát đối tượng 3D
Mắt
Vật thể
Computer Graphics 47
…Quan sát đối tượng 3D
Chiếu ảnh của hệ quan sát lên màn hình
• Phép chiếu phối cảnh
Y0 P0
Y0 y'
P0(x0 ,y0 ,z0 )
O z0 Z0
D
P’(x’,y’) Mặt chiếu
O’ D Z0 O z0
z0 Z0
x’
x0 x' P0
Mặt chiếu X0
X0
Gọi D là khoảng cách từ mặt phẳng chiếu đến mắt(gốc tọa độ).
Ta có: x'/x0 = D/z0 và y’/y0 = D/z0
hay x’= x0 .D/z0 và y’= y0 .D/z0
• Phép chiếu song song: Xem như tâm chiếu ở xa vô cực, ta có:
x' = x0 và y’ = y0
Computer Graphics 48
…Quan sát đối tượng 3D
• 4 giá trị ảnh hưởng đến phép chiếu vật thể 3D:
+ Các góc ,
+ Khoảng cách R từ O đến O’
+ Khoảng cách D từ O’ đến mặt phẳng quan sát.
Z Y0 X0
X O’(M,N,P)
Y
Z0
O
Y
X Màn hình
•Như vậy:
-Tăng giảm sẽ quay vật thể trong mặt phẳng (XY).
-Tăng giảm sẽ quay vật thể lên xuống.
-Tăng giảm R để quan sát vật từ xa hay gần.
-Tăng giảm D để phóng to hay thu nhỏ ảnh.
Computer Graphics 49
SUMMARY
• Mô hình 3D
• Phép chiếu
Computer Graphics 50
Nhân bản – Phụng sự – Khai phóng
Computer Graphics 51