Mô hình hoá - Modelling
Mô hình hoá là tiến trình tạo mới thao
tác trên các mô hình của các đối tượng
hay hệ thống
Computer graphics ~ quan tâm đến mô
tả hình học của các đối tượng nhằm
cung cấp phương pháp biểu diễn số cho
các hình trên cơ sở về kích thước và các
thuộc tính có liên quan đến tiến trình tô
trát
Các đối tượng hình học thường được
mô tả bởi các thuật ngữ "thực thể cơ sở"
sub-parts (primitives), như circles, lines
polygons hay cubes
A scene trong đồ họa: chứa các thực
thể đối tượng
Scene Modeling
Đặt các đối tượng trong cảnh tại các
vị trí khác nhau, thay đổi tỉ lệ và
biến đổi
14 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2938 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Các phép biến đổi đồ hoạ Affine Transformations, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
1
(c) SE/FIT/HUT 2002 1
Bài 4 Các phép biến đổi Đồ hoạ
Affine Transformations
Le Tan Hung
Email: hunglt@it-hut.edu.vn
I KHái niệm cơ bản
II Các phép biến đổi
III Hệ tọa độ đồng nhất
(c) SE/FIT/HUT 2002 2
Mô hình hoá - Modelling
Mô hình hoá là tiến trình tạo mới thao
tác trên các mô hình của các đối tượng
hay hệ thống
Computer graphics ~ quan tâm đến mô
tả hình học của các đối tượng nhằm
cung cấp phương pháp biểu diễn số cho
các hình trên cơ sở về kích thước và các
thuộc tính có liên quan đến tiến trình tô
trát
Các đối tượng hình học thường được
mô tả bởi các thuật ngữ "thực thể cơ sở"
sub-parts (primitives), như circles, lines
polygons hay cubes
A scene trong đồ họa: chứa các thực
thể đối tượng
Scene Modeling
Đặt các đối tượng trong cảnh tại các
vị trí khác nhau, thay đổi tỉ lệ và
biến đổi
object
A scene with several instances of the object
(c) SE/FIT/HUT 2002
Ví dụ
At each frame of the animation, the
object is transformed, in this case by a
rotation. It could also be transformed
by changing its size (scaling), or its
shape (deforming), or its location
(translation).
Further animation effects can be
achieved by not changing the object,
but the way it is viewed (i.e. the
window to viewport transformation) at
each frame (e.g. by zooming).
(c) SE/FIT/HUT 2002 4
Phép biến đổi - Transformations
Trong kỹ thuật đồ hoạ 3 bước: modeling, rendering, displaying
Với Modeling:
Transformation: là phép ánh xạ tọa độ điểm hay vector thành tọa độ hay
vector khác
Biến đổi mô hình hoá - Modeling transformations
build complex models by positioning simple components
Biến đổi tạo góc nhìn - Viewing transformations
placing virtual camera in the world
transformation from world coordinates to camera coordinates
Biến đổi tạo Hoạt cảnh - Animation
vary transformations over time to create motion
modeling
coordinate Modeling
transformation
Viewing
transformation
world
coordinate
viewing
coordinate (eye coordinate)
(c) SE/FIT/HUT 2002 5
Transformations - Modeling
world
(c) SE/FIT/HUT 2002 6
Viewing
Transformations - Viewing
Viewing là tiến trình tạo ra góc nhìn của
các mô hình trên màn hình 2D
Mô tả hình học của các đối tượng
hay các cảnh cung cấp bởi các mô
hình sẽ được chuyển đổi thành tập
các thực thể cơ sở hiển thị.
Một mô hình có thể quan sát trên các góc
cạnh khác nhau (e.g. faraway, near,
looking down, looking up)
WORLD
OBJECT
CAMERA
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
2
(c) SE/FIT/HUT 2002 7
Phép biến đổi Affine
Affine Transformations?
Phép biến đổi Affine là phép biến đổi tọa độ điểm đặc trưng
của đối tượng thành tập tương ứng các điểm mới để tạo ra các
hiệu ứng cho toàn đối tượng.
Ví dụ: phép biến đổi tọa độ với chỉ 2 điểm đầu cuối của đoạn
thẳng tạo thành 2 điểm mới mà khi nối chúng với nhau tạo thành
đoạn thẳng mới.
Các điểm nằm trên đoạn thẳng sẽ có kết quả là điểm nằm trên
đoạn thẳng mới với cùng phép biến đổi thông qua phép nội
suy.
(c) SE/FIT/HUT 2002
Phân loại - Transformations
Có 2 cách nhìn trên phép biến đổi
Object Transformation: thay đổi tọa
độ của các điểm theo một số các
quy luật mà không ảnh hưởng đến
hệ tọa độ gốc.
Coordinate Transformation sinh ra
hệ tọa độ khác và biểu diễn tất các
các đểm trên hệ tọa độ mới đó
Mỗi phương pháp có ưu nhược điểm riêng
về bản chất gần tương đồng nhau
1,1
.4, 2
Example: OBJECT TRANSFORMATION
(1,1)
(1,1)
Example: COORDINATE TRANSFORMATION
(c) SE/FIT/HUT 2002 9
Modeling Transformations
Transform objects/points Transform coordinate system
(c) SE/FIT/HUT 2002
2D Object Transformations
A 2D object transformation alters each point P into a
new point Q using a specific formula or algorithm.
It therefore alters the co-ordinates of P (Px,Py) into
new values which specify point Q (Qx,Qy)
This can be expressed using some function T, that
maps co-ordinate pairs into co-ordinate pairs:
T(Px,Py) = (Qx,Qy)
or:
T(P) = Q
(c) SE/FIT/HUT 2002
Matrix Representation
If affine transformation T maps P onto Q, then Q is related to P as
follows:
where a, b, c, d, tx and ty are all constants, and ad = bc
This gives rise to the following matrix representation:
i.e. ⎟⎟⎠
⎞
⎜⎜⎝
⎛+⎟⎟⎠
⎞
⎜⎜⎝
⎛
⎟⎟⎠
⎞
⎜⎜⎝
⎛=⎟⎟⎠
⎞
⎜⎜⎝
⎛
y
x
y
x
y
x
t
t
P
P
dc
ba
Q
Q
xxxx t bP aP Q ++=
yyyy t dP cP Q ++=
Tr MP Q +=
(c) SE/FIT/HUT 2002 12
Các phép biến đổi hình học hai chiều
Phương pháp biểu diễn đối tượng P = [ x y ]
Phép biến đổi vị trí điểm
Thực thi phép biến đổi đúng trên 1 điểm ảnh sẽ đúng trên toàn bộ đối
tượng
⎥⎦
⎤⎢⎣
⎡=
dc
ba
T
[ ] [ ] [ ] ( ) ( )[ ] [ ]'' y dybx *y * xcyax
dc
ba
xTX =++=⎥⎦
⎤⎢⎣
⎡=
y
x
z
pM
pW
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
3
(c) SE/FIT/HUT 2002 13
Phép biến đổi
Phép bất biến
Phép biến đổi tỉ lệ - Scaling
A scaling changes the size of an object with two scale factors, Sx and Sy
Phép biến dạng
A shearing shears an object in a particular direction, (in 2D, it’s either in the x
or in the y direction
⎥⎦
⎤⎢⎣
⎡=
10
01
T
[ ] [ ] [ ] ( )[ ] [ ]''
10
0
** yxyax
a
yxTX ==⎥⎦
⎤⎢⎣
⎡=
[ ] [ ] [ ] [ ] [ ]''
10
1
** yxdybx
b
yxTX =+=⎥⎦
⎤⎢⎣
⎡=
xz
y
(c) SE/FIT/HUT 2002 14
Phép quay- Rotation
x = ρ cos α, y = ρ sin α ;
x’ = ρ cos (θ +α ), y’ = ρ sin (θ +α )
;
x’ = ρ ( cosθ cosα - sinθ sinα )
= x cosθ - y sinθ
y’ = ρ ( sinθ cosα + cosθ sinα )
= x sinθ + y cosθ
[x' y']= [xcosθ - ysinθ xsinθ +
ycosθ]
y
( x, y )
xα
ρθ
ρ
( x’, y’ )
⎥⎦
⎤⎢⎣
⎡
−= θθ
θθ
cossin
sincos
][T
(c) SE/FIT/HUT 2002 15
Thuộc tính cơ bản của phép biến đổi
Affine Transformations
Preservation of lines:
They preserve lines, so the image of a straight line is another straight line.
This vastly simplifies drawing transformed line segments.
We need only compute the image of the two endpoints of the original line
and then draw a straight line between them
Preservation of collinearity guarantees that polygons will transform into
polygons
Affine transformations map lines to lines;
(c) SE/FIT/HUT 2002
Thuộc tính
Preservation of parallelism
Preservation of parallelism guarantees that parallelograms will transform
into parallelograms
Preservation of proportional distances
Preservation of proportional distances means that mid-points of lines
remain mid-points
Affine transformations change volume by | Det(M) |;
(c) SE/FIT/HUT 2002
Kết hợp các phép biến đổi
Composition of Affine Transforms
Any affine transformation can be
decomposed into elementary
transformations.
Mọi phép biến đổi phức tạp đều có
thể tạo thành từ các phép biến đổi cơ
sở như:
Dịch chuyển - Translation
Tỉ lệ - Scaling
Quay- Rotation
Biến dạng - Shearing
(c) SE/FIT/HUT 2002
Affine transformations preserve
affine combinations
It is rare that we want to perform just one elementary
transformation.
Usually an application requires that we build a complex
transformation out of several elementary ones
e.g. translate an object, rotate it, and scale it, all in one move
These individual transformations combine into one overall
transformation
This is called the composition of transformations.
The composition of two or more affine transformations is
also an affine transformation
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
4
(c) SE/FIT/HUT 2002 19
Thuộc tính
Tác động lên tập các điểm đặc trưng của đối tượng tạo thành
phép biến đổi cho đối tượng
We have defined each transformation by their effects on single points
In practice these will be applied to multiple points to transfer entire scenes
or objects made up of many defining points
T
(c) SE/FIT/HUT 2002
Điểm gốc - Pivotal points
Cho phép quay và tỉ lệ Rotation and Scaling
The simple versions of rotation and scaling have been based around the origin.
This means that when we rotate or scale, the object will also move, with
respect to the origin
Translate all points through (-c1,-c2)
Rotate all points about the origin by
Translate all points back through (c1,c2)
(c1,c2)
(0,0)
(c) SE/FIT/HUT 2002
Pivotal points
Often we wish to rotate or scale with respect to some pivotal
point, not the origin
Most significantly, we often wish to rotate or scale an object
about its centre, or midpoint
In this way, the object’s location does not change
To do this, we relate the rotation or scaling about the pivotal
point V, to an elementary rotation or scaling about the origin
We first translate all points so that V coincides with the origin
We then rotate or about the origin
then all points are translated back, so that V is restored to its original
location
(c) SE/FIT/HUT 2002
Hệ toạ độ đồng nhất
Vấn đề gặp phải:
An affine transformation is composed of a linear transformation
followed by a translation
Unfortunately, the translation portion is not a matrix
multiplication but must instead be added as an extra term, or
vector
What we need is a “trick”, so that translations can be represented
in matrix multiplication form
This then means that they can be easily composed with other
transformations, by simply multiplying the matrices together
(c) SE/FIT/HUT 2002 23
Tọa độ đồng nhất
Homogeneous Transform
x' = ax + by + n
y' = bx + dy + m
Phương pháp biểu diễn mở rộng thông qua tọa độ đồng
nhất của các vector vị trí
Với ứng dụng của phép chiếu hình học mà ở đó tọa độ
điểm được mô tả dưới ma trận [ x* y* h]
với x = x*/h, y = y*/h, z = z*/h và h là một số thực tuỳ ý
(c) SE/FIT/HUT 2002 24
Ưu điểm của Hệ tọa độ đồng nhất
Homogeneous Transform
Ðưa ra cái nhìn hợp nhất của các phép biến đổi dưới phép
nhân ma trận, hỗ trợ cho việc xử lý bằng cả phần cứng và
phần mềm
Kết hợp các các phép biến đổi tạo thành ma trận tích đơn giản
duy nhất. Tránh nhầm lẫn về thứ tự của các phép nhân khi sử
dụng.
Order matters: AB is generally not the same as BA
Cho phép kết hợp với cả các phép biến đổi đặc biệt không
tuyến tính khác(non-affine) như:
Phép chiếu phối cảnh - Perspective projections!
Uốn - Bends, Vuốt tapers v.v.v
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
5
(c) SE/FIT/HUT 2002 25
Phép biến đổi với tọa độ đồng nhất
Ma trận biến đổi đồng nhất
Phép tịnh tiến ⎥
⎥⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
0
0
][
nm
dc
ba
T
]1[
1
010
001
]1[]1''[ nymx
nm
yxyx ++=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
(tx, ty, tz)
(c) SE/FIT/HUT 2002 26
Phép tỉ lệ
]12.1.[
100
020
001
]1[]1''[ SySxS
S
yxyx =
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
(c) SE/FIT/HUT 2002 27
Phép quay
y
( x, y )
xα
ρθ
ρ
( x’, y’ )⎥
⎥⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−=
100
0cossin
0sincos
]1[]1''[ φφ
φφ
yxyx
]1cos.sin.sin.cos.[ φφφφ yxyx +−=
(c) SE/FIT/HUT 2002 28
Phép biến đổi tổng hợp
(c) SE/FIT/HUT 2002
Coordinate Transforms
(c) SE/FIT/HUT 2002 30
Coordinate Transforms
(1,1)
u’
v’
(1,1)
u
v
x
y
Object defined in Local
Coordinate System
Object after transformation in
Global Coordinate System
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
6
(c) SE/FIT/HUT 2002 31
x
y
x
y
Identity as a Coordinate Transform
P
100
010
001
Q
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
(1,1)
u
v
(1,1)
u’
v’
(c) SE/FIT/HUT 2002 32
x
y
Translation
x
y
P
100
10
01
Q
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
= ty
tx
(1,1)
u
v
(1+tx,1+ty)
u’
v’
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
11
0
0
ty
tx
ty
tx
100
10
01
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡ +
=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
1
1
1
0
1
ty
tx
ty
tx
100
10
01
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
+=
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
1
1
1
1
0
ty
tx
ty
tx
100
10
01
origin v (1, 0, 0) u (0, 1, 0)
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
ty
tx
O
(c) SE/FIT/HUT 2002 33
x
y
Rotation
x
y
P
100
0
0
Q
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡ −
= θθ
θθ
cossin
sincos
(1,1)
u
v
u’
v’
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
sin
cos
θ
θ
v
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡−
=
1
cos
sin
θ
θ
u
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
0
0
O
(c) SE/FIT/HUT 2002 34
x
y
Scaling
x
y
P
100
0
0
Q
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
= sy
sx
0
0
(1,1)
u
v
(sx*1,sy*1)
u
v
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
0
0
O
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
0
syu
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
0
sx
v
(c) SE/FIT/HUT 2002 35
Composite Transformations
⎟⎟
⎟
⎠
⎞
⎜⎜
⎜
⎝
⎛
−−
+−−
=
100
sin)cos1(cossin
sin)cos1(sincos
11
11
θθθθ
θθθθ
xy
yx
M
x
y
x
y
(1,1)
u
v
u’
v
’
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−
+−
1
sin)cos1(
sin)cos1(
11
11
θθ
θθ
yy
yx
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−+
+−+
1
sin)cos1(sin
sin)cos1(cos
11
11
θθθ
θθθ
yy
yx
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−+
+−+−
1
sin)cos1(cos
sin)cos1(sin
11
11
θθθ
θθθ
yy
yx
O =
v =
u =
(c) SE/FIT/HUT 2002 36
Modeling Transformations
To make full use of the computational optimisation made
possible by composite transforms, we only want to apply the
transformations to points at the very end
i.e. the transformation operation (multiplying point p by
transform matrix is the very last thing we do in the modelling
phase)
Specify points
in local coords
Specify
Transformations
(composite if necessary)
Send to
Pipeline
Khoa CNTT - DDHBK Hà nội
hunglt@it-hut.edu.vn
8682595
7
(c) SE/FIT/HUT 2002 37
+ +
=This of course shouldn’t
mean all objects need to
share the same
transformations
(c) SE/FIT/HUT 2002 38
+
=
+
transform +transform
+
transform
Obviously we want
something more
versatile
1(c) SE/FIT/HUT 2002 1
Bài 4B:
Phép biến đổi trong không gian
(c) SE/FIT/HUT 2002 2
Ma trận biến đổi 3 chiều
3D Matrix Transformations
Các phép biến đổi chuyển vị - translation, tỉ lệ-scaling và
quay-rotation sử dụng trong không gian 2D đều co thể mở
rộng trong không gian 3D
Again, using homogeneous coordinates it is possible to
represent each type of transformation in a matrix form
In 3D, each transformation is represented by a 4x4 matrix
(c) SE/FIT/HUT 2002 3
Các phép biến đổi hình học 3 chiều
Biểu diễn điểm trong không gian 3 chiều
• [ x* y* z* h ] = [ x y z 1 ]. [ T ]
• [x' y' z' 1 ]= [ x*/h y*/h z*/h 1 ][ T ]
Ma trận biến đổi
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
snml
rjig
qfed
pcba
][T
(c) SE/FIT/HUT 2002 4
Phép tịnh tiến
[X'] = [ X ] . [ T(dx,dy,dz) ]
[ x' y' z' 1 ] =
[ x y z 1 ].[ T(dx,dy,dz) ]
= [ x+dx y+dy z+dz 1 ]
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
1
0100
0010
0001
)],,([
dzdydx
dzdydxT
(c) SE/FIT/HUT 2002 5
Phép tỉ lệ
• s1, s2, s3 là các hệ số tỉ lệ tương ứng
trên các trục toạ độ
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
1000
0300
0020
0001
11
s
s
s
zyxzyx ][]'''[
]13.2.1.[ szsysx=
(c) SE/FIT/HUT 2002 6
Rotation
In 2D, the only rotation possible was about the origin.
In 3D, there are 3 possible rotations, one about each of the x,
y and z axes
Positive rotations are anti-clockwise, negative rotations are
clockwise, when looking down a positive axis towards the
origin
x
y
z
x
y
z
x
y
z
2(c) SE/FIT/HUT 2002 7
Phép quay 3 chiều
Quay quanh các trục toạ độ
• Quay quanh trục x
• Quay quanh trục z
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−=
1000
00
00
0001
φφ
φφ
cossin
sincos
][Tx
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−=
1000
0100
00cossin
00sincos
][
ϕϕ
ϕϕ
Tz
(c) SE/FIT/HUT 2002 8
Quay quanh trục y
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡ −
=
1000
0cos0sin
0010
0sin0cos
][ θθ
θθ
Ty
(c) SE/FIT/HUT 2002 9
Phép biến dạng
(secondary translation)
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
1000
01
01
01
11
ig
fd
cb
zyxzyx ][]'''[
]1[ zfycxizybxgzydx ++++++=
(c) SE/FIT/HUT 2002 10
Phép lấy đối xứng
(reflections-secondary translation)
(c) SE/FIT/HUT 2002 11
Quay quanh một trục bất kỳ song song với các
trục tọa độ
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
10
0100
0010
0001
][
zy
Tr
, ⎥
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−=
1000
00
00
0001
φφ
φφφ
cossin
sincos
)]([T
,
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−−
=−
10
0100
0010
0001
1
zy
Tr][
⎥⎥
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢⎢
⎢
⎣
⎡
−−+−
−=
1sin)cos1(sin)cos1(0
0cossin0
0sincos0
0001
][
φφφφ
φφ
φφ
yzzy
Tth
(c) SE/FIT/HUT 2002 12
Quay quanh một trục bất kỳ
3(c) SE/FIT/HUT 2002 13
Solution
Chuyển P1 về gốc tọa độ.
Quay quanh trục y sao cho P1P2 nằm trên mặt phẳng (y, z)
Quay quanh trục x sao cho P1P2 trùng với trục z.
Quay quanh trục z sao cho P1P3 nằm trên mặt phẳng (y, z)
Euler’s Theorem: Every rotation around the origin can be
decomposed into a rotation around the x-axis followed by a
rotation around the y-axis followed by a rotation around the
z-axis.
(c) SE/FIT/HUT 2002 14
Bước 1: Chuyển P1 về gốc tọa độ
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
−−−
=−−−
1111
0100
0010
0001
111
zyx
zyxT )],,([
y
P3
P2
P1
z x
y
P3
P2 p P1
z
x
(c) SE/FIT/HUT 2002 15
Bước 2: Quay quanh trục y
cos( - 90 + φ) = sinφ = z'2/L = ( z2 - z1)/L
sin( - 90 + φ) = - cosφ = x'2/L = ( x2 - x1)/L
[ P''2 ] = [ P'2 ][ T(φ-90) ]
= [ 0 y2-y1 L ]
y
P3
P'2(x'2,y'2,z'2)
P'1
L φ
z(x'2,0,z'2)x
2
12
2
12
2
2
2
2 )()()'()'( xxzzxzL −−==
(c) SE/FIT/HUT 2002 16
Bước 3: Quay quanh trục x.
cos ϕ = z''2/N, sin ϕ = y''2/N
Với N = | P''1P''2| là độ dài của đoạn P''1P''2
[P'''2] = [P''2][T(ϕ)] = [P'2][T(φ-90)][T(ϕ)]
= [P2 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)]
= [ 0 0 |P1P2| 1 ]
y
P''2
N
P''1ϕ
x
z
(c) SE/FIT/HUT 2002 17
Bước 4: Quay quanh trục z
[P'''3]= [P3 ][T(-x1,-y1,-z1 ][T(φ-90)][T(ϕ)]
Với góc quay dương ψ trên trục z
cos ψ = y3'''/M; sin ψ = x3'''/M;
Ma trận tổng hợp của các phép biến đổi [ T ] có
dạng sau đáp ứng toàn bộ quá trình biến đổi quay
đối tượng quanh một trục bất kỳ.
[ T ] = [T(-x1,-y1,-z1)][T(φ-90)][T(ϕ)][T(ψ)]
y
y'''3
P'''3ψ
M
x'''3
P'''2P'''1
x
z
(c) SE/FIT/HUT 2002 18
Kết quả sau biến đổi cần phải đưa về vị trí ban đầu qua các phép biến đổi
ngược.
[Tth]= [T(-x1,-y1,-z1)]x[T(φ-0)]x[T(ϕ)]x [T(ψ)]x[T(ψ)]x[T(ϕ)]x
[T(φ-90)]x[T(-x1,-y1,-z1)]
4(c) SE/FIT/HUT 2002 19
Hệ toạ độ
Coordinate Frame
Coordinate frame is given by origin φ and three mutually orthogonal unit vectors,
i, j, k.
Mutually orthogonal (dot products): i•j = ?; i•k = ?; j•k = ?.
Unit vectors (dot products): i•i = ?; j•j = ?; k•k = ?.
xz
y
i
j
k
φ
(c) SE/FIT/HUT 2002 20
Orientation
xz
y
i
j
k
φ
Right handed coordinate system: Left handed coordinate system:
Cross product: i x j = ?
xz
y
i
j
k
φ
Cross product: i x j = ?
(c) SE/FIT/HUT 2002 21
Coordinate Transformations
xz
y
i
j
k
φ
Transform (x, y, z, 0) coordinate frame to (i, j, k, φ) coordinate frame.
Affine transformation matrix:
Maps (i, j, k, φ) coordinates into (x, y, z, 0) coordinates!
.
1000 ⎥
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
φ
φ
φ
zzzz
yyyy
xxxx
kji
kji
kji
(c) SE/FIT/HUT 2002 22
Coordinate change (Translation)
(φx, φy, φz)
.
110001 ⎟⎟
⎟⎟
⎟
⎠
⎞
⎜⎜
⎜⎜
⎜
⎝
⎛
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
⎟⎟
⎟⎟
⎟
⎠
⎞
⎜⎜
⎜⎜
⎜
⎝
⎛
c
b
a
z
y
x
xz
y
a
c
b
(0,0,0)
Change from (a,b,c,φ) coordinates to
(x,y,z,0) coordinates:
(c) SE/FIT/HUT 2002 23
Coordinate change (Rotation)
.
110001 ⎟⎟
⎟⎟
⎟
⎠
⎞
⎜⎜
⎜⎜
⎜
⎝
⎛
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎣
⎡
=
⎟⎟
⎟⎟
⎟
⎠
⎞
⎜⎜
⎜⎜
⎜
⎝
⎛
c
b
a
z
y
x
c
(φx, φy, φz)
a
b
(0,0,0)
Change from (a,b,c,φ) coordinates to
(x,y,z,0) coordinates:
y x
z
θ
(c) SE/FIT/HUT 2002 24
Composition of coordinate change
z
φ
x
y
M1 changes from coordinate frame (x,y,z,θ) to (x’,y’,z’,θ’).
M2 changes from coordinate frame (x’,y’,z’,θ’) to (x’’,y’’,z’’,θ’’).
Change from coordinate frame (x,y,z,θ) to (x’’,y’’,z’’,θ’’): ?
z’
φ’ x’
y’
z’’
φ’’
x’’
y’’
M1
M2
5(c) SE/FIT/HUT 2002 25
Object vs. coordinate transformations
Translate and then rotate object:
Translate and then rotate coordinate frame:
z
φ
x
y
z
φ
x
y
z
φ
x
y
z
φ
x
y
z
φ
x
y
z’
φ’
x’
y’
z
φ
x
y
z’’
φ’’ x’
’
y’’
(c) SE/FIT/HUT 2002 26
Object vs. coordinate transformations (2)
Translate and then rotate object:
Rotate and then translate coordinate frame:
z
φ
x
y
z
φ
x
y
z
φ
x
y
z
φ
x
y
z
φ
x
y
z
φ
x
y
z’’
φ’’ x’
’
y’’
z’
φ’
x’
y’
(c) SE/FIT/HUT 2002 27
Order of transformations
Let Mi be the transformation matrix for transformation Ti.
Sequence of object (point) transformations, T1, T2, T3.
Transformation matrix = M3 x M2 x M1.
Sequence of coordinate system transformations, T1, T2, T3.
Transformation matrix = M1 x M2 x M3.
Note: OpenGL, OpenInventor use coordinate system transformations.
(c) SE/FIT/HUT 2002 28
Hệ tọa độ thực
(WCS-World Coordinate System)
Là hệ tọa độ của đối tượng
được các chương trình ứng
dụng sử dụng để mô tả tọa độ
của các đối tượng trong thế giới
thực.
Đơn vị trong hệ thống tọa độ
phụ thuộc vào không gian và
kích thước của đối tượng được
mô tả, có thể từ A0, nm, mm ...
đến m, km ...
(c) SE/FIT/HUT 2002 29
Hệ tọa độ thiết bị
(DCS-Device Coordinate System)
Là hệ thống tọa độ của thiết bị nơi hiển thị hình ảnh và không
gian của đối tượng mà ứng dụng mô tả.
ThiÕt bÞ hiÓn thÞ
subselect.me
Vïng täa ®é thiÕt bÞ
VGA=640x480
(c) SE/FIT/HUT 2002 30
Hệ tọa độ chuẩn
(NCS - Normalized Coordinate System)
Giải quyết vấn đề khi ứng dụng chạy trên các thiết bị khác
nhau
Có kích thước 1x1
Wcs
chuyÓn ®æi 1
NCS Dcs
chuyÓn ®æi 2
6(c) SE/FIT/HUT 2002 31
Display Co-ordinates
The integer, (x, y) screen co-ordinates are far too restrictive to be
used to describe physical objects and scenes, because:
objects and scenes would need to be remodelled for every new view, or if
the device resolution is changed
The range of coordinate values (e.g: 640x480, 1024x768 pixels) is
inappropriate for many scenes
(c) SE/FIT/HUT 2002 32
MODELLING Co-ordinates
More logical to use dimensions which are appropriate to the
object. e.g.
metres for buildings,
millimetres for assembly parts,
nanometres or microns for molecules, cells, and atoms
Objects are described with respect to their actual physical size in
the real world,
These measurements are then mapped onto screen co-ordinates
before displaying
(c) SE/FIT/HUT 2002 33
Basic Viewing Transform
Apply transform to convert from Modelling co-ordinates to
Screen Coordinates
We can scale dimensions to change the resulting view
We can even achieve a zooming in and out effect without
changing the model by scaling dimensions proportionally
Vấn đề:
How much of the model should be drawn?
Where should it appear on the display?
How do we convert Real-world co-ordinates into screen co-
ordinates?
(c) SE/FIT/HUT 2002 34
2-Dimensional Views
A 2-dimensional view consists of two rectangles:
A Window given in real world co-ordinates, defining the portion of
model (scene) to be drawn
A Viewport given in screen co-ordinates, defining the portion of the
screen which will be used to display the contents of the window
(wxmin,wymin)
(wxmax,wymax)
(vxmin,vymin)
(vxmax,vymax)
(wx,wy) (vx,vy)
(c) SE/FIT/HUT 2002 35
Phép chuyển đổi
(c) SE/FIT/HUT 2002 36
Phép biến đổi theo ma trận
Ma trận chuyển vị theo Window
Ma trận biến đổi tỉ lệ
Ma trận chuyển vị theo tọa độ viewport
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
−−
=
1
010
001
1
YwXw
T ][
⎥⎥
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎢⎢
⎣
⎡
−
−=
100
0
minmax
minmax0
00
Xwmin-Xwmax
Xvmin-Xvmax
]1[
YwYw
YvYvS
⎥⎥
⎥
⎦
⎤
⎢⎢
⎢
⎣
⎡
=
1
010
001
]2[
YyXv
T
7(c) SE/FIT/HUT 2002 37
Ma trận biến đổi tổng hợp của phép chuyển đổi
tọa độ
⎥⎥
⎥⎥
⎥⎥
⎦
⎤
⎢⎢
⎢⎢
⎢⎢
⎣
⎡
−
−−−
−
−=
=
1
minmax
minmaxminmin
Xwmin-Xwmax
Xvmin-Xvmaxminmin
0
minmax
minmax0
00
Xwmin-Xwmax
Xvmin-Xvmax
][
]2[]1[]1[][
YwYw
YvYvYwYvXwXv
YwYw
YvYvT
TxSxTT
(c) SE/FIT/HUT 2002 38
Ánh xạ cửa sổ trên tới màn
hình 640x480 viewport
-0.4 -0.2
0.3
0.4
480
640
(c) SE/FIT/HUT 2002 39
Bài tập
Wx=-.2
Wy=.3
Wxmax=0
Wxmin=-0.4
Wymax=0.4
Wymin=0
Vx= (-.2-(-0.4))*(640-0) + 0 = 320
0-(-0.4)
Vy= (.3-0)*(0-480) + 480 = 120
0-(-0.4)
Vxmax=640
Vxmin=-0.4
Vymax=0
Vymin=480
320
120
Các file đính kèm theo tài liệu này:
- giao_trinh_do_hoa_4__4982.pdf