2D Geometric Transformations: (Chapter 5 in FVD)
2D Geometric Transformations: (Chapter 5 in FVD)
(Chapter 5 in FVD)
1
2D geometric transformation
• Translation
• Scaling
• Rotation
• Shear
• Matrix notation
• Compositions
• Homogeneous coordinates
2
2D Geometric
Transformations
• Question: How do we represent a
geometric object in the plane?
• Answer: For now, assume that
objects consist of points and lines.
A point is represented by its
Cartesian coordinates: (x,y).
Translate(2,4)
4
Scale
• Scale (a,b): (x,y) (ax,by)
Scale (2,3)
Scale (2,3)
5
• How can we scale an object
without moving its origin (lower
left corner)?
Translate(-1,-1)
Translate(1,1) Scale(2,3)
6
Reflection
Scale(-1,1)
Scale(1,-1)
7
Rotation
• Rotate(q):
(x,y) (x cos(q)+y sin(q), -x sin(q)+y cos(q))
Rotate(90)
Rotate(90)
8
• How can we rotate an object
without moving its origin (lower
left corner)?
Translate(-1,-1)
Translate(1,1)
Rotate(90)
9
Shear
• Shear (a,b): (x,y) (x+ay,y+bx)
Shear(1,0)
Shear(0,2)
10
Composition of
Transformations
• Rigid transformation:
– Translation + Rotation (distance
preserving).
• Similarity transformation:
– Translation + Rotation + uniform
Scale (angle preserving).
• Affine transformation:
– Translation + Rotation + Scale +
Shear (parallelism preserving).
• All above transformations are groups
where Rigid Similarity Affine.
11
Affine
Similarity
Rigid
12
Matrix Notation
• Let’s treat a point (x,y) as a 2x1
matrix (a column vector):
x
y
a b x ax by
c d y cx dy
13
2D Transformations
x ' a b x
y ' c d y
14
Scale
• Scale(a,b): (x,y) (ax,by)
a 0 x ax
0 b y by
• Inverse: S-1(a,b)=S(1/a,1/b)
15
Reflection
• Reflection through the y axis:
1 0
0 1
• Reflection through the x axis:
1 0
0 1
• Reflection through y=x:
0 1
1 0
• Reflection through y=-x:
0 1
1 0
16
Shear, Rotation
1 a x x ay
b 1 y y bx
• Rotate(q):
(x,y) (xcosq+ysinq , -xsinq + ycosq)
• Inverse: R-1(q)=RT(q)=R(-q)
17
Composition of Transformations
• A sequence of transformations
can be collapsed into a single
matrix:
x x
ABC D
y y
• Note: order of transformations is
important! (otherwise - commutative groups)
translate rotate
rotate translate
18
Composition of Transformations
(Cont.)
D=ABC
D-1 = C-1B-1A-1
Proof:
19
Translation
x x a
• Translation(a,b):
y y b
• Problem: Cannot represent
translation using 2x2 matrices.
• Solution:
Homogeneous Coordinates
20
Homogeneous Coordinates
• Homogeneous Coordinates is a
mapping from Rn to Rn+1:
( x, y) ( X , Y ,W ) (tx, ty, t )
• Inverse mapping:
X Y
( X , Y ,W ) ,
W W
21
Translation
• Translate(a,b):
1 0 a x x a
0 1 b y y b
0 0 1 1 1
• Inverse: T-1(a,b)=T(-a,-b)
• Affine transformation now have
the following form:
a b e
c d f
0 0 1
22
Geometric Interpretation
W
Y
(X,Y,W)
1 y
x
(X,Y,1)
X
• A 2D point is mapped to a line
(ray) in 3D. The non-homogeneous
points are obtained by projecting
the rays onto the plane Z=1.
23
• Example: Rotation about an
arbitrary point:
(x0,y0)
• Actions:
– Translate the coordinates so that the
origin is at (x0,y0).
– Rotate by q.
– Translate back.
1 0 x0 cosq sinq 0 1 0 x0 x
0 1 y sinq cosq 0 0 1 y0 y
0
p2
p1
L=p1+t (p2-p1)=t p2+(1-t) p1
• Actions:
– Translate the coordinates so that P1
is at the origin.
– Rotate so that L aligns with the x-
axis.
– Reflect about the x-axis.
– Rotate back.
– Translate back.
25
Change of Coordinates
• It is often requires the transformation of
object description from one coordinate
system to another.
• How do we transform between two
Cartesian coordinate systems?
• Rule: Transform one coordinate frames
towards the other in the opposite
direction of the representation change.
y’ x’
26
Change of Coordinates (Cont.)
Example:
X
P’
O Y
X’
O’ Y’
27
• Example:
– Represent the point P=(xp,yp,1) in the
(x’,y’) coordinate system.
P' MP
where
cosq sin q 0 1 0 x0
M R T sin q
1 1
cosq 0 0 1 y0
0 1 0 0 1
0
y’
y x’
q
(x0,y0)
(xp,yp)
x
28
• Alternative method:
– Assume x’=(ux,uy) and y’=(vx,vy) in the
(x,y) coordinate system .
P' MP
where
ux uy 0 1 0 x0
M vx vy 0 0 1 y0
0 1 0 0 1
0
y’ x’
y
(vx,vy)
(ux,uy) (x0,y0)
x
29
• Example:
– P is at the y’ axis P=(vx,vy):
y
(vx,vy)
(ux,uy)
y’ x’
x
ux uy 0 v x 0
P' MP v x vy 0 v y 1
0 1
0 1 1
30
• Another example: Reflection about an
Arbitrary Line:
p2
y
p1
u y vx
v v
ux y
1 0 p1x u x vx 0 1 0 0 u x uy 0 1 0 p1x
M 0 1 p1y u y vy 0 0 1 0 v x vy 0 0 1 p1y
0 0 1 0
0 1 0 0 1 0 0 1 0 0 1
31