ĐỒ HỌA 3D
ĐỒ HỌA 3D
CÁC PHÉP BIẾN ĐỔI 3D
CÁC PHÉP BIẾN ĐỔI 3D
Giảng viên : Bùi Tiến Lên
Trang 2
Công thức biến đổi
Công thức biến đổi
)z,y,x(T'z
)z,y,x(Ty
)z,y,x(T x
)P,P,P(TP
)P,P,P(TP
)P,P,P(T P
hay
)P(T'P
hàm dạng đổi Biến
P' P
R R : T
xạ ánh dạng đổi Biến
z
y
'
x
'
zyxz
'
z
zyxy
'
y
zyxx
'
x
33
=
=
=
=
=
=
=
→
Trang 3
Bieỏn ủoồi Taper
Bieỏn ủoồi Taper
f(z) r vụựi
z)z,y,x(Tz'
ry)z,y,x(Ty'
rx)z,y,x(Tx'
haứm Daùng
z
y
x
=
==
==
==
Trang 4
Bieỏn ủoồi Twist
Bieỏn ủoồi Twist
f(z) vụựi
z)z,y,x(Tz'
cosysinx)z,y,x(Ty'
sinycosx)z,y,x(Tx'
haứm Daùng
z
y
x
=
==
+==
==
Trang 5
Bieán ñoåi Bend
Bieán ñoåi Bend
Trang 6
Bieỏn ủoồi affine
Bieỏn ủoồi affine
( )
( )
=
+++=
+++=
+++=
1mmm
0mmm
0mmm
0mmm
1PPP1PPP
: traọn ma Daùng
mPmPmPmP
mPmPmPmP
mPmPmPmP
: haứm Daùng
323130
222120
121110
020100
zyx
'
z
'
y
'
x
32z22y12x02
'
z
31z21y11x01
'
y
30z20y10x00
'
x
Trang 7
Caøi ñaët
Caøi ñaët
// Lưu thông tin phép biến đổi
struct TAffine3D {
double M[4][4];
};
Trang 8
Tính chất
Tính chất
Phép biến đổi affine 3D chiều
-
Bảo toàn tính thẳng.
-
Bảo toàn tính song song.
-
Bảo toàn tỉ lệ.
Trang 9
Nguyên lý kết hợp và phân rã
Nguyên lý kết hợp và phân rã
Nếu T
1
, T
2
là phép biến đổi affine
Thì
-
T = T
1
+ T
2
là phép biến đổi affine
-
M = M
1
x M
2
Mọi phép biến đổi affine bất kỳ đều có thể phân rã
thành một chuỗi các phép biến đổi cơ bản.
Trang 10
Phép tònh tiến
Phép tònh tiến
O
x
y
z
z
y
x
t : Oz trục trên dời độ
t : Oy trục trên dời độ
t : Ox trục trên dời độ
: số Tham
Trang 11
Caøi ñaët
Caøi ñaët
TAffine3D BuildTranslation3D(double tx, double ty, double tz)
{
TAffine3D T;
T.M[0][0]= 1;T.M[0][1]= 0;T.M[0][2]= 0;T.M[0][3]=0;
T.M[1][0]= 0;T.M[1][1]= 1;T.M[1][2]= 0;T.M[1][3]=0;
T.M[2][0]= 0;T.M[2][1]= 0;T.M[2][2]= 1;T.M[2][3]=0;
T.M[3][0]=tx;T.M[3][1]=ty;T.M[3][2]=tz;T.M[3][3]=1;
return T;
}
Trang 12
Phép tònh tiến – Công thức
Phép tònh tiến – Công thức
=
+=
+=
+=
1ttt
0100
0010
0001
M
trận ma Dạng
tPP
tPP
tPP
hàm Dạng
zyx
zz
'
z
yy
'
y
xx
'
x
Trang 13
Phép tỉ lệ
Phép tỉ lệ
zyx
s ,s ,s : trục 3 trên lệ tỉ số Hệ
O : lệ tỉ Tâm
: số Tham
O x
y
z
Trang 14
Phép tỉ lệ – Công thức
Phép tỉ lệ – Công thức
=
=
=
=
1000
0s00
00s0
000s
M
trận ma Dạng
PsP
PsP
PsP
hàm Dạng
z
y
x
zz
'
z
yy
'
y
xx
'
x
Trang 15
Caøi ñaët
Caøi ñaët
TAffine3D BuildScaling3D(double sx, double sy, double sz)
{
TAffine3D T;
T.M[0][0]=sz;T.M[0][1]= 0;T.M[0][2]= 0;T.M[0][3]=0;
T.M[1][0]= 0;T.M[1][1]=sy;T.M[1][2]= 0;T.M[1][3]=0;
T.M[2][0]= 0;T.M[2][1]= 0;T.M[2][2]=sz;T.M[2][3]=0;
T.M[3][0]= 0;T.M[3][1]= 0;T.M[3][2]= 0;T.M[3][3]=1;
return T;
}
Trang 16
Pheùp quay
Pheùp quay
{ }
α
=
: quay Goùc
z,y,xv : quay Truïc
: soá Tham
{ }
z,y,xv =
α
O x
y
z
Trang 17
Quay quanh truïc Oz
Quay quanh truïc Oz
{ }
α
=
: quay Goùc
1,0,0v : quay Truïc
: soá Tham
O x
y
z
Trang 18
Quay quanh truïc Oz – Coâng thöùc
Quay quanh truïc Oz – Coâng thöùc
O x
y
z
P
P’
Q
Q’
α
Trang 19
Quay quanh trục Oz – Công thức
Quay quanh trục Oz – Công thức
αα−
αα
=
=
α+α=
α−α=
1000
0100
00cossin
00sincos
M
trận ma Dạng
PP
PcosPsinP
PsinPcosP
hàm Dạng
z
'
z
yx
'
y
yx
'
x
Trang 20
Quay quanh truïc Ox
Quay quanh truïc Ox
{ }
α
=
: quay Goùc
0,0,1v : quay Truïc
: soá Tham
O x
y
z
Trang 21
Quay quanh trục Ox – Công thức
Quay quanh trục Ox – Công thức
αα−
αα
=
α+α=
α−α=
=
1000
0cossin0
0sincos0
0001
M
trận ma Dạng
PcosPsinP
PsinPcosP
PP
hàm Dạng
zy
'
z
zy
'
y
x
'
x
Trang 22
Quay quanh truïc Oy
Quay quanh truïc Oy
{ }
α
=
: quay Goùc
0,1,0v : quay Truïc
: soá Tham
O x
y
z
Trang 23
Quay quanh trục Oy – Công thức
Quay quanh trục Oy – Công thức
αα−
αα
=
α+α−=
=
α+α=
1000
0cos0sin
0010
0sin0cos
M
trận ma Dạng
PcosPsinP
PP
PsinPcosP
hàm Dạng
zy
'
z
y
'
y
zy
'
x
Trang 24
Quay quanh truùc ủi qua goỏc
Quay quanh truùc ủi qua goỏc
Phaõn raừ thaứnh :
-
Quay quanh truùc Ox
:
-
Quay quanh truùc Oy
:
-
Quay quanh truùc Oz
:
-
Quay quanh truùc Oy
: -
-
Quay quanh truùc Ox
: -
v
O x
y
z
v
v
Trang 25
Quay quanh truïc ñi qua goác
Quay quanh truïc ñi qua goác
O
v
x
y
z
v
′
u
u
′