Upload
colman
View
44
Download
0
Tags:
Embed Size (px)
DESCRIPTION
2D TRANSFORMATIONS. 2D Transformations. What is transformations? The geometrical changes of an object from a current state to modified state. Why the transformations is needed? To manipulate the initially created object and to display the modified object without having to redraw it. - PowerPoint PPT Presentation
Citation preview
2D TRANSFORMATIONS
2D Transformations
• What is transformations?– The geometrical changes of an object from a
current state to modified state.• Why the transformations is needed?
– To manipulate the initially created object and to display the modified object without having to redraw it.
• 2 ways– Object Transformation
• Alter the coordinates descriptions an object• Translation, rotation, scaling etc.• Coordinate system unchanged
– Coordinate transformation• Produce a different coordinate system
2D Transformations
Matrix Math• Why do we use matrix?
– More convenient organization of data.– More efficient processing– Enable the combination of various
concatenations• Matrix addition and subtraction
ab
cd
a cb d=
– How about it?–
• Matrix Multiplication– Dot product
Matrix Math
ab
c de f
a bc d
e fg h. = a.e + b.g a.f + b.h
c.e + d.g c.f + d.h
• What about this?
• Type of matrix
Matrix Math
1 2 . 1 23 1
= 6 6
23 . 1 2
3 1 = tak boleh!!
a b ab
Row-vector Column-vector
• Is there a difference between possible representations?
Matrix Math
dfcebfae
fe
dcba
dfbecfae dcba
fe
dfcebfae dbca
fe
• We’ll use the column-vector representation for a point.
• Which implies that we use pre-multiplication of the transformation – it appears before the point to be transformed in the equation.
• What if we needed to switch to the other convention?
DyCxByAx
yx
DCBA
Matrix Math
Translation• A translation moves all points
in an object along the same straight-line path to new positions.
• The path is represented by a vector, called the translation or shift vector.
• We can write the components:p'x = px + tx
p'y = py + ty
• or in matrix form:P' = P + T
tx
ty
x’y’
xy
tx
ty = +
(2, 2)= 6
=4
?
Rotation• A rotation repositions
all points in an object along a circular path in the plane centered at the pivot point.
• First, we’ll assume the pivot is at the origin.
P
P’
Rotation• Review Trigonometry => cos = x/r , sin = y/r
• x = r. cos , y = r.sin
P(x,y)
x
yr
x’
y’
P’(x’, y’)
r
=> cos (+ ) = x’/r•x’ = r. cos (+ ) •x’ = r.coscos -r.sinsin
•x’ = x.cos – y.sin
=>sin (+ ) = y’/r y’ = r. sin (+ ) •y’ = r.cossin + r.sincos
•y’ = x.sin + y.cos
Identity of Trigonometry
Rotation• We can write the components:We can write the components:
pp''x x = = ppx x cos cos – – ppy y sin sin pp''yy = = ppx x sin sin + + ppy y cos cos
• or in matrix form:or in matrix form:PP' ' = = R R •• PP
can be can be clockwise (-ve)clockwise (-ve) or or counterclockwisecounterclockwise (+ve as our (+ve as our example).example).
• Rotation matrix Rotation matrix
P(x,y)
x
yr
x’
y’
P’(x’, y’)
cossinsincos
R
• Example– Find the transformed point, P’, caused by
rotating P= (5, 1) about the origin through an angle of 90.
Rotation
cossinsincos
cossinsincos
yxyx
yx
90cos190sin590sin190cos5
01151105
51
Scaling• Scaling changes the size of an
object and involves two scale factors, Sx and Sy for the x- and y- coordinates respectively.
• Scales are about the origin.• We can write the components:
p'x = sx • px
p'y = sy • py
or in matrix form:P' = S • P
Scale matrix as:
y
x
ss
S0
0
P
P’
Scaling• If the scale factors are in between
0 and 1 the points will be moved closer to the origin the object will be smaller.
P(2, 5)
P’
• Example :•P(2, 5), Sx = 0.5, Sy = 0.5•Find P’ ?
Scaling• If the scale factors are in between
0 and 1 the points will be moved closer to the origin the object will be smaller.
P(2, 5)
P’
• Example :•P(2, 5), Sx = 0.5, Sy = 0.5•Find P’ ?
•If the scale factors are larger than 1 the points will be moved away from the origin the object will be larger.
P’
• Example :•P(2, 5), Sx = 2, Sy = 2•Find P’ ?
Scaling• If the scale factors are the same, Sx = Sy uniform scaling• Only change in size (as previous example)
P(1, 2)
P’
•If Sx Sy differential scaling.•Change in size and shape•Example : square rectangle
•P(1, 3), Sx = 2, Sy = 5 , P’ ?
What does scaling by 1 do?What is that matrix called?What does scaling by a negative value do?
Combining transformationsWe have a general transformation of a point:
P' = M • P + A
When we scale or rotate, we set M, and A is the additive identity.
When we translate, we set A, and M is the multiplicative identity.
To combine multiple transformations, we must explicitly compute each transformed point.
It’d be nicer if we could use the same matrix operation all the time. But we’d have to combine multiplication and addition into a single operation.
Homogenous Coordinates
• Let’s move our problem into 3D.• Let point (x, y) in 2D be represented by point (x, y, 1) in the
new space.• Scaling our new point by any value a puts us somewhere along
a particular line: (ax, ay, a).• A point in 2D can be represented in many ways in the new
space.• (2, 4) ---------- (8, 16, 4) or (6, 12, 3) or (2, 4, 1) or etc.
y y
xx
w
Homogenous Coordinates• We can always map back to the original 2D point by dividing
by the last coordinate• (15, 6, 3) --- (5, 2).• (60, 40, 10) - ?.
• Why do we use 1 for the last coordinate?
• The fact that all the points along each line can be mapped back to the same point in 2D gives this coordinate system its name – homogeneous coordinates.
Matrix Representation• Point in column-vector:
• Our point now has three coordinates. So our matrix is needs to be 3x3.
• Translation
xy1
11001001
1yx
tt
yx
y
x
• Rotation
• Scaling
Matrix Representation
11000cossin0sincos
1yx
yx
11000000
1yx
ss
yx
y
x
Composite Transformation• We can represent any sequence of transformations
as a single matrix.– No special cases when transforming a point – matrix •
vector.– Composite transformations – matrix • matrix.
• Composite transformations:– Rotate about an arbitrary point – translate, rotate,
translate– Scale about an arbitrary point – translate, scale, translate– Change coordinate systems – translate, rotate, scale
• Does the order of operations matter?
Composition Properties• Is matrix multiplication associative?
– (A.B).C = A.(B.C)
dhlcfldgjcejdhkcfkdgiceibhlaflbgjaejbhkafkbgiaei
lkji
dhcfdgcebhafbgae
lkji
hgfe
dcba
dhldgjcflcejdhkdgicfkceibhlbgjaflaejbhkbgiafkaei
hlgjhkgiflejfkei
dcba
lkji
hgfe
dcba
?
• Is matrix multiplication commutative?– A . B = B . A
Composition Properties
?
dhcfdgcebhafbgae
hgfe
dcba
hdgbhcgafdebfcea
dcba
hgfe
Order of operationsSo, it does matter. Let’s look at an example:
1. Translate2. Rotate
1. Rotate2. Translate
Composite Transformation Matrix• Arrange the transformation matrices in order from right to left.• General Pivot- Point Rotation
• Operation :-1. Translate (pivot point is moved to origin)2. Rotate about origin3. Translate (pivot point is returned to original position)
T(pivot) • R() • T(–pivot)1 0 -tx
0 1 -ty
0 0 1
cos -sin 0sin cos 0 0 0 1
1 0 tx
0 1 ty
0 0 1 . .
cos -sin -tx cos+ ty sin + tx
sin cos -tx sin - ty cos + ty
0 0 1
cos -sin -tx cos+ ty sin sin cos -tx sin - ty cos 0 0 1
1 0 tx
0 1 ty
0 0 1 .
• Example– Perform 60 rotation of a point P(2, 5) about a
pivot point (1,2). Find P’?
Composite Transformation Matrix
cos -sin -tx cos+ ty sin + tx
sin cos -tx sin - ty cos + ty
0 0 1
xy1
.
0.5 -0.866 -1.0.5 + 2.0.866 + 1 0.866 0.5 -1.0.866- 2.0.5 + 20 0 1
251
.
0.5 - 0.866 2.232 0.866 0.5 0.1340 0 1
251
. =-1.0984.366 1
P’ = (-1, 4)
Sin 60 = 0.8660Kos 60 = 1/2
Without using composite homogenus matrix
• Example– Perform 90 rotation of a point P(5, 1) about a pivot
point (2, 2). Find P’?• 1. Translate pivot point ke asalan ( tx = -2, ty = -2)
– Titik P(5, 1 ) P’ (3, -1)
• 2. Rotate P ‘ = 90 degree• P’(3, -1) -- > kos 90 -sin 90 3 = 0 -1 3 = 1• sin 90 kos 90 -1 1 0 -1 3• 3. Translate back ke pivot point (tx = 2 , ty = 2)• titik (1, 3 ) titik akhir (3, 5)
Composite Transformation MatrixGeneral Fixed-Point Scaling
Operation :-1. Translate (fixed point is moved to origin)2. Scale with respect to origin3. Translate (fixed point is returned to original position)
T(fixed) T(fixed) • • S(scale) S(scale) • • T(–fixed)T(–fixed)
Find the matrix that represents scaling of an object with respect to any fixed point?
Given P(6, 8) , Sx = 2, Sy = 3 and fixed point (2, 2). Use that matrix to find P’?
Answer1 0 -tx
0 1 -ty
0 0 1
Sx 0 0 0 Sy 0 0 0 1
1 0 tx
0 1 ty
0 0 1 . .Sx 0 -tx Sx 0 Sy -ty Sy 0 0 1
1 0 tx
0 1 ty
0 0 1 . =
x =6, y = 8, Sx = 2, Sy = 3, tx =2, ty = 2
Sx 0 -tx Sx + tx
0 Sy -ty Sy + ty
0 0 1
2 0 -2( 2) + 20 3 -2(3) + 20 0 1 .
681
=10 20 1
Composite Transformation MatrixGeneral Scaling Direction
Operation :-1. Rotate (scaling direction align with the coordinate axes)2. Scale with respect to origin3. Rotate (scaling direction is returned to original position)
R(–) • S(scale) • R()
Find the composite transformation matrixby yourself !!
latihan
• Dapatkan titik akhir bagi P(5, 8) jika titik tersebut diputarkan sebanyak 90 darjah, kemudian ditranslate sebanyak (-6, 9) dan akhirnya diskala dengan faktor skala (2, 0.5).
cos -sin 0sin cos 0 0 0 1
Sx 0 0 0 Sy 0 0 0 1
1 0 tx
0 1 ty
0 0 1. .
S . T . R
cos -sin tx
sin cos ty
0 0 1
Sx 0 0 0 Sy 0 0 0 1 .
Sxcos Sx(-sin) Sx tx Sy sin Sy cos Sy ty 0 0 1
Other transformationsReflection:
x-axis y-axis
100010001
100010001
Other transformationsReflection:
origin line x=y
100010001
100001010
Other transformationsShear:
x-direction y-direction
10001001 xsh
10001001
ysh
Coordinate System Transformations• We often need to transform points from one coordinate system to
another:1. We might model an object in non-Cartesian space (polar)2. Objects may be described in their own local system3. Other reasons: textures, display, etc