2d geometric transformations - benemérita universidad …mrodriguez/03_trans2d.pdf ·...

31
1 2D Geometric Transformations (Chapter 5 in FVD)

Upload: trinhnga

Post on 12-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

1

2D Geometric Transformations(Chapter 5 in FVD)

2

2D geometric transformation

• Translation• Scaling• Rotation • Shear• Matrix notation• Compositions• Homogeneous coordinates

3

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.

4

Translation

• Translate (a,b): (x,y) (x+a,y+b)

Translate(2,4)

5

Scale

• Scale (a,b): (x,y) (ax,by)

Scale (2,3)

Scale (2,3)

6

• How can we scale an object without moving its origin (lower left corner)?

Translate(-1,-1)

Translate(1,1) Scale(2,3)

7

Reflection

Scale(-1,1)

Scale(1,-1)

8

Rotation

• Rotate(θ): (x,y) (x cos(θ)+y sin(θ), -x sin(θ)+y cos(θ))

Rotate(90)

Rotate(90)

9

• How can we rotate an object without moving its origin (lower left corner)?

Translate(-1,-1)

Translate(1,1)Rotate(90)

10

Shear

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

Shear(1,0)

Shear(0,2)

11

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.

12

Rigid

Affine

Similarity

13

Matrix Notation

• Let’s treat a point (x,y) as a 2x1 matrix (a column vector):

• What happens when this vector is multiplied by a 2x2 matrix?

yx

++

=

dycxbyax

yx

dcba

14

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:

=

yx

dcba

yx

''

15

Scale

• Scale(a,b): (x,y) (ax,by)

• If a or b are negative, we get reflection.

• Inverse: S-1(a,b)=S(1/a,1/b)

=

byax

yx

ba0

0

16

Reflection• Reflection through the y axis:

• Reflection through the x axis:

• Reflection through y=x:

• Reflection through y=-x:

−1001

−10

01

0110

−0110

17

Shear, Rotation

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

• Rotate(θ):(x,y) (xcosθ+ysinθ , -xsinθ + ycosθ)

• Inverse: R-1(θ)=RT(θ)=R(-θ)

++

=

bxyayx

yx

ba1

1

+−+

=

− θθ

θθθθθθ

cossinsincos

cossinsincos

yxyx

yx

18

Composition of Transformations

• A sequence of transformations can be collapsed into a single matrix:

• Note: order of transformations is important! (otherwise - commutative groups)

[ ][ ][ ] [ ]

=

yx

Dyx

CBA

translate rotate

rotate translate

19

Composition of Transformations (Cont.)

D = A B C

D-1 = C-1B-1A-1

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

Proof:

20

Translation

• Translation(a,b):

• Problem: Cannot represent translation using 2x2 matrices.

• Solution: Homogeneous Coordinates

++

byax

yx

21

Homogeneous Coordinates• Homogeneous Coordinates is a

mapping from Rn to Rn+1:

• Note: (tx,ty,t) all correspond to the same non-homogeneous point (x,y). E.g. (2,3,1)≡(6,9,3).

• Inverse mapping:

),,(),,(),( ttytxWYXyx =→

WY

WXWYX ,),,(

22

Translation

• Translate(a,b):

• Inverse: T-1(a,b)=T(-a,-b)• Affine transformation now have

the following form:

++

=

111001001

byax

yx

ba

100fdceba

23

(X,Y,W)yx

X

Y

W

1

(X,Y,1)

Geometric Interpretation

• 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.

24

• Example: Rotation about an arbitrary point:

• Actions: – Translate the coordinates so that the

origin is at (x0,y0). – Rotate by θ.– Translate back.

(x0,y0)

θ

−−+−−

=

=

−−

1100sin)cos1(cossinsin)cos1(sincos

11001001

1000cossin0sincos

1001001

00

00

0

0

0

0

yx

xyyx

yx

yx

yx

θθθθθθθθ

θθθθ

25

• Another example: Reflection about an Arbitrary Line:

• 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.

p1

p2

L=p1+t (p2-p1)=t p2+(1-t) p1

26

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.

x

y

x’y’Representation

Transformation

27

Change of Coordinates (Cont.)

X

Y

P’

O

P

X’

Y’O’

Example:

28

• Example:– Represent the point P=(xp,yp,1) in the

(x’,y’) coordinate system.

x

y x’y’

θ

(x0,y0)(xp,yp)

MPP ='

−−

−== −−

1001001

1000cossin0sincos

0

011 y

xTRM θθ

θθ

where

29

• Alternative method:– Assume x’=(ux,uy) and y’=(vx,vy) in the

(x,y) coordinate system .

x

y x’y’

(x0,y0)

MPP ='

−−

=

1001001

10000

0

0

yx

vvuu

M yx

yx

where

(ux,uy)(vx,vy)

30

• Example:– P is at the y’ axis P=(vx,vy):

– What is the inverse?

x

y

x’y’

(ux,uy)(vx,vy)

=

==

110

110000

' y

x

yx

yxvv

vvuu

MPP

31

• Another example: Reflection about an Arbitrary Line:

• Define a coordinate systems (u,v) parallel to P1P2:

p1

p2

x

y

≡−−

=y

xuu

pppp

12

12u

=

=y

x

x

yvv

uuv

−−

=

1001001

10000

100010001

10000

1001001

1

1

1

1

y

x

y

x

pp

vvuu

vuvu

pp

M yx

yx

yy

xx