Академический Документы
Профессиональный Документы
Культура Документы
2D TRANSFORMATIONS
By
Dr. Rajeev Srivastava
CSE, IIT(BHU)
2D Transformations
What is transformations?
The geometrical changes of an object from a
current state to modified state.
2D Transformations
2 ways
Object Transformation
Alter the coordinates descriptions an object
Translation, rotation, scaling etc.
Coordinate system unchanged
Coordinate transformation
Produce a different coordinate system
Matrix Math
Why do we use matrix?
More convenient organization of data.
More efficient processing
Enable the combination of various
concatenations
c
d
a c
b d
Matrix Math
How about it?
d
a c
b
Matrix Multiplication
Dot product
a
c
b
d
e
g
f
= a.e + b.g
h
c.e + d.g
a.f + b.h
c.f + d.h
Matrix Math
What about this?
1
2
3
1
3
1
3
Type of matrix
a
Row-vector
2 =
1
2
1
tak boleh!!
a
b
Column-vector
Matrix Math
Is there a difference between possible
representations?
a b e ae + bf
= +
c d f ce df
[e
a b
f ]
= [ae + cf
c d
be + df ]
[e
a c
f ]
= [ae + bf
b d
ce + df ]
Matrix Math
Well 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.
A B x Ax + By
C D y = Cx + Dy
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
x
x
y = y + ty
?
ty=4
(2, 2)
tx= 6
Rotation
A rotation repositions
all points in an object
along a circular path in
the plane centered at
the pivot point.
Rotation
Review Trigonometry
=> cos = x/r , sin = y/r
x = r. cos , y = r.sin
=> 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
P(x, y)
P(x,y)
x
Identity of Trigonometry
Rotation
We can write the components:
p'x = px cos py sin
p'y = px sin + py cos
P(x, y)
or in matrix form:
P' = R P
can be clockwise (-ve) or
counterclockwise (+ve as our
example).
Rotation matrix
cos
R=
sin
sin
cos
P(x,y)
Rotation
Example
Find the transformed point, P, caused by
rotating P= (5, 1) about the origin through an
angle of 90.
cos
sin
5 sin 90 + 1 cos 90
5 0 11
=
5 1 + 1 0
1
=
5
Scaling
0
s y
Scaling
P(2, 5)
Scaling
P(2, 5)
Scaling
If the scale factors are the same,
Sx = Sy uniform scaling
Only change in size (as previous
example)
If Sx Sy differential scaling.
Change in size and shape
Example : square rectangle
P(1, 3), Sx = 2, Sy = 5 , P ?
P(1, 2)
Combining transformations
We have a general transformation of a point:
P' = M P + A
Homogenous Coordinates
y
w
x
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.
x 1 0 t x x
y = 0 1 t y
y
1 0 0 1 1
Matrix Representation
Rotation
x cos
y = sin
1 0
sin
cos
0
0 x
0 y
1 1
Scaling
x s x
y = 0
1 0
0
sy
0
0 x
0 y
1 1
Inverse Transformations
1 0 t x
cos
T1 = 0 1 t y , R 1 = sin
0 0 1
0
sin
cos
0
0
0
1 S x
0 , S 1 = 0 1 S y
0
1
0
0
0
1
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
Composition Properties
Is matrix multiplication associative?
?
(A.B).C = A.(B.C)
a b e
c d g
f i
h k
j ae + bg
= +
l ce dg
af + bh i
cf + dh k
c d g
f i
h k
l
aej + bgj + afl + bhl
j a b ei + fk ej + fl
=
+
l c d gi hk gj + hl
aei + afk + bgi + bhk aej + afl + bgj + bhl
=
+
+
+
+
+
+
cei cfk dgi dhk cej cfl dgj dhl
Composition Properties
Is matrix multiplication commutative?
?
A.B=B.A
f ae + bg
=
h ce + dg
af + bh
cf + dh
f a b ea + fc
h c d ga + hc
eb + fd
gb + hd
a b e
c d g
e
g
Order of operations
So, it does matter. Lets look at an example:
1.
2.
Translate
Rotate
1.
2.
Rotate
Translate
Composite Transformations
Translations
P' = T (tx 2 , t y 2 ) {T (tx1, t y1 ) P}
= {T (tx 2 , t y 2 ) T (tx1, t y1 )} P
1 0 t x 2 1 0 t x1 1 0 t x1 + t x 2
0 1 t 0 1 t = 0 1 t + t
y2
y1
y1
y2
1
0 0 1 0 0 1 0 0
Composite Transformations
Scaling
sx 2
0
0
sy2
0
0 sx1
0 0
1 0
0 0 sx1 sx 2
s y1 0 = 0
0 1 0
0
s y1 s y 2
0
S (s x 2 , s y 2 ) S (s x1 , s y1 ) = S (s x1 s x 2 , s y1 s y 2 )
0
0
Composite Transformations
Rotations
P' = R(2 ) {R(1 ) P}
= {R(2 ) R(1 )} P
cos 2
sin
2
sin 2
cos 2
0
1 0
0
1
0
0
1
1
0
0
0
1
0
tx
ty
1
1
0
0
0
1
0
tx
ty
1
cos -sin 0
sin cos 0
0
0
1
1
0
0
0
1
0
-tx
-ty
1
0 0
xr cos
yr sin
1 0
cos
= sin
sin
cos
0
sin
cos
0
0 1 0 xr
0 0 1 yr
1 0 0 1
xr (1 cos ) + yr sin
yr (1 cos ) xr sin
T ( xr , yr ) R( ) T ( xr , yr ) = R( xr , yr , )
0.5
-0.866 -1.0.5 + 2.0.866 + 1
0.866 0.5 -1.0.866- 2.0.5 + 2
0
0
1
0.5 - 0.866 2.232
0.866 0.5 0.134
0
0
1
2
5
1
x
y
1
Sin 60 = 0.8660
Cos 60 = 1/2
2
5
1
-1.098
4.366
1
P = (-1, 4)
( tx = -2, ty = -2)
2. Rotate P = 90 degree
P(3, -1) -- > cos 90 -sin 90 3 = 0
-1 3 = 1
sin 90 cos 90 -1
1
0 -1
3
3. Translate back pivot point (tx = 2 , ty = 2)
0 0 1 0 0 1 0 0 1
sx 0 x f (1 sx )
= 0 s y y f (1 s y )
1
0 0
T ( x f , y f ) S ( sx , s y ) T ( x f , y f ) = S ( x f , y f , xr , yr )
0
1
0
0
1
0
tx
ty
1
tx
ty
1
.
.
Sx 0
0 Sy
0 0
0
0
1
1
0
0
0
1
0
-tx
-ty
1
Sx 0 -tx Sx
0 Sy -ty Sy
0 0
1
x =6, y = 8, Sx = 2, Sy = 3, tx =2, ty = 2
2
0
0
0
3
0
-2( 2) + 2
-2(3) + 2
1
6
8
1
10
20
1
Sx 0 -tx Sx + tx
0 Sy -ty Sy + ty
0 0
1
Another Example
Rotation followed by translation followed by
scaling
Sx 0
0 Sy
0 0
0
0
1
Sx 0
0 Sy
0 0
0
0
1
Sxcos
Sy sin
0
T
0
1
0
1
0
0
tx
ty
1
cos -sin tx
sin cos ty
0
0
1
Sx(-sin) Sx tx
Sy cos Sy ty
0
1
R
cos -sin 0
sin cos 0
0
0
1
Other transformations
Reflection:
x-axis
y-axis
1 0 0
0 1 0
0 0 1
1 0 0
0 1 0
0 0 1
Other transformations
Reflection:
origin
1 0 0
0 1 0
0 0 1
line x=y
0 1 0
1 0 0
0 0 1
Reflection
A transformation produces a mirror image of an object.
Axis of reflection
A line in the xy plane
A line perpendicular to the xy plane
The mirror image is obtained by rotating the object 1800 about
the reflection axis.
Rotation path
Axis in xy plane: in a plane perpendicular to the xy plane.
Axis perpendicular to xy plane: in the xy plane.
Reflection
Reflection about the x axis
Reflection
Reflection about the y axis
Reflection
Reflection relative to the coordinate origin
Reflection
Reflection of an object relative to an axis perpendicular
to the xy plane through Prfl
Reflection
Reflection about the line y = x
Other transformations
Shear:
x-direction
1 shx
0 1
0 0
0
0
1
y-direction
1
sh
y
0
0 0
1 0
0 1
Shear
The x-direction shear relative to x axis
1 shx
0 1
0 0
If shx = 2:
0
0
x ' = x + shx y
y' = y
Shear
The x-direction shear relative to y = yref
1 shx
0 1
0 0
shx yref
1/2
3/2
Shear
The y-direction shear relative to x = xref
1
sh
y
0
0
0
1 shy xref
0
1
x' = x
1/2
1
x
y
y0
x0
1 0 x0
T ( x0 , y0 ) = 0 1 y0
1
0 0
cos
R( ) = sin
sin
cos
0
M xy , x ' y ' = R( ) T ( x0 , y0 )
Method 2:
V
v=
= (vx , v y )
V
u = ( v y ,v x ) = ( u x , u y )
u x
R = vx
uy
vy
0
0
0
0
0
END