0% found this document useful (0 votes)
87 views31 pages

2D Geometric Transformations: (Chapter 5 in FVD)

The document discusses 2D geometric transformations including translations, rotations, scalings, shears, and their representation using matrix notation. It introduces homogeneous coordinates to represent translations as matrices and describes how compositions and inverses of transformations can be represented. The document also covers changing between coordinate systems using transformation matrices.

Uploaded by

Rukmani Devi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views31 pages

2D Geometric Transformations: (Chapter 5 in FVD)

The document discusses 2D geometric transformations including translations, rotations, scalings, shears, and their representation using matrix notation. It introduces homogeneous coordinates to represent translations as matrices and describes how compositions and inverses of transformations can be represented. The document also covers changing between coordinate systems using transformation matrices.

Uploaded by

Rukmani Devi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

2D Geometric Transformations

(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).

• Question: How do we transform a


geometric object in the plane?
• Answer: Let (A,B) be a straight line
segment and T a general 2D
transformation: T transforms (A,B)
into another straight line segment
(A’,B’), where A’=TA and B’=TB.
3
Translation
• Translate (a,b): (x,y) (x+a,y+b)

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
 

• What happens when this vector is


multiplied by a 2x2 matrix?

a b   x  ax  by 
 c d   y    cx  dy 
    

13
2D Transformations

• 2D object is represented by points


and lines that join them.
• Transformations can be applied
only to the the points defining the
lines.
• A point (x,y) is represented by a
2x1 column vector, and we can
represent 2D transformations
using 2x2 matrices:

 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 
    

• If a or b are negative, we get


reflection.

• 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

• Shear(a,b): (x,y) (x+ay,y+bx)

1 a   x   x  ay 
b 1   y    y  bx 
    

• Rotate(q):
(x,y) (xcosq+ysinq , -xsinq + ycosq)

 cosq sin q   x   x cosq  y sin q 


 sin q 
 cosq   y   x sin q  y cosq 
  

• 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
ABC    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:

D * D-1 = ABC * C-1B-1A-1 =


AB*I*B-1*A-1=
A*I*A = I

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 )

• Note: (tx,ty,t) all correspond to


the same non-homogeneous point
(x,y). E.g. (2,3,1)(6,9,3).

• 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 

0 0 1  0 0 1 0 0 1   1 

cosq  sinq x0 (1 cosq )  y0 sinq   x 


  sinq cosq y0 (1 cosq )  x0 sinq   y 
 0 0 1   1 
24
• Another example: Reflection
about an Arbitrary Line:

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   

– What is the inverse?

30
• Another example: Reflection about an
Arbitrary Line:
p2
y

p1

• Define a coordinate systems (u,v)


parallel to P1P2:
p 2  p1  u x 
u  
p 2  p1  u y 

  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

You might also like