2d transformations

47
CAP4730: Computational Structures in Computer Graphics 2D Transformations

Upload: sakthivijayan80

Post on 08-Jul-2015

178 views

Category:

Career


1 download

DESCRIPTION

notes

TRANSCRIPT

Page 1: 2d transformations

CAP4730: Computational Structures in Computer Graphics

2D Transformations

Page 2: 2d transformations

2D Transformations

• World Coordinates

• Translate

• Rotate

• Scale

• Viewport Transforms

• Putting it all together

Page 3: 2d transformations

Transformations

• Rigid Body Transformations - transformations that do not change the object.

• Translate– If you translate a rectangle, it is still a rectangle

• Scale

– If you scale a rectangle, it is still a rectangle• Rotate

– If you rotate a rectangle, it is still a rectangle

Page 4: 2d transformations

Vertices

• We have always represented vertices as (x,y)

• An alternate method is:

• Example:

=y

xyx ),(

=

8.4

1.2)8.4,1.2(

Page 5: 2d transformations

Matrix * Vector

=

+=+=

=

10

01

'

'

'

'

I

dycxy

byaxx

y

x

dc

ba

y

x

=

++=++=++=

=

100

010

001

'

'

'

'

'

'

I

izhygxz

fzeydxy

czbyaxx

z

y

x

ihg

fed

cba

z

y

x

Page 6: 2d transformations

Matrix * Matrix

=

++++

=

=

=

10

01?

*

,

dc

ba

dwcydzcx

bwaybzaxBA

wz

yxB

dc

baA

Does A*B = B*A?

What does the identity do?

Page 7: 2d transformations

Practice

?*

?*

5.23

15.0,

51

32

?

3

2,

51

32

==

−=

−=

=

=

−=

IA

BA

BA

AX

XA

Page 8: 2d transformations

Translation

• Translation - repositioning an object along a straight-line path (the translation distances) from one coordinate location to another.

(x,y)

(x’,y’)

(tx,ty)

Page 9: 2d transformations

Translation

• Given:

• We want:

• Matrix form:TPP

t

t

y

x

y

x

tyy

txx

ttT

yxP

y

x

y

x

yx

+=

+

=

+=+=

==

'

'

'

'

'

),(

),(

1.4'

4.3'

2.8

1.7

1.4

7.3

'

'

2.81.4'

1.77.3'

)2.8,1.7(

)1.4,7.3(

==

+

−−

=

+−=+−=

=−−=

y

x

y

x

y

x

T

P

Page 10: 2d transformations

Translation Examples

• P=(2,4), T=(-1,14), P’=(?,?)

• P=(8.6,-1), T=(0.4,-0.2), P’=(?,?)

• P=(0,0), T=(1,0), P’=(?,?)

Page 11: 2d transformations

Which one is it?

(x,y)

(x’,y’)

(tx,ty)

(x,y)

(tx,ty)

Page 12: 2d transformations

Recall

• A point is a position specified with coordinate values in some reference frame.

• We usually label a point in this reference point as the origin.

• All points in the reference frame are given with respect to the origin.

Page 13: 2d transformations

Applying to Triangles

(tx,ty)

Page 14: 2d transformations

What do we have here?

• You know how to:

Page 15: 2d transformations

Scale

• Scale - Alters the size of an object.

• Scales about a fixed point

(x,y)

(x’,y’)

Page 16: 2d transformations

Scale

• Given:

• We want:

• Matrix form:PSP

y

x

s

s

y

x

ysy

xsx

ssS

yxP

y

x

y

x

yx

⋅=

=

==

==

'

0

0

'

'

'

'

),(

),(

6.6'

2.4'

2.2

4.1

30

03

'

'

2.2*3'

4.1*3'

)3,3(

)2.2,4.1(

==

=

==

==

y

x

y

x

y

x

S

P

Page 17: 2d transformations

Non-Uniform/Differential Scalin’

(x,y)

(x’,y’)

S=(1,2)

Page 18: 2d transformations

Rotation

• Rotation - repositions an object along a circular path.

• Rotation requires an Θ and a pivot point

Page 19: 2d transformations

Rotation

)cos('

)cos('

sin

cos

)(

),(

Θ+=Θ+=

====

φφ

φφ

θ

ry

rx

ry

rx

R

yxP

PRP

y

x

y

x

yxy

yxx

rry

rrx

⋅=

−=

+=−=

+=−=

'

cossin

sincos

'

'

cossin'

sincos'

cossinsincos'

sinsincoscos'

θθθθ

θθθθ

θφθφθφθφ

Page 20: 2d transformations

Example

• P=(4,4)

∀ Θ=45 degrees

Page 21: 2d transformations

What is the difference? RevisitedV(-0.6,0) V(0,-0.6) V(0.6,0.6)

Translate (1.2,0.3)

V(0,0.6) V(0.3,0.9) V(0,1.2)

Translate (1.2,0.3)

V(0.6,0.3) V(1.2,-0.3) V(1.8,0.9)

V(0,0.6) V(0.3,0.9) V(0,1.2)

Page 22: 2d transformations

RotationsV(-0.6,0) V(0,-0.6) V(0.6,0.6)Rotate -30 degrees

V(0,0.6) V(0.3,0.9) V(0,1.2)

Page 23: 2d transformations

Combining Transformations

Q: How do we specify each transformation?

Page 24: 2d transformations

Specifying 2D Transformations

• Translation– T(tx, ty)

– Translation distances

• Scale– S(sx,sy)

– Scale factors

• Rotation– R(θ)– Rotation angle

Page 25: 2d transformations

Combining Transformations

• Using translate, rotation, and scale, how do we get:

Page 26: 2d transformations

Combining Transformations• Note there are two ways to combine

rotation and translation. Why?

Page 27: 2d transformations

Let’s look at the equations

θθθθ

θ

cos'sin'"

sin'cos'"

'

'

'''

'

)(

),(

),(

yxy

yxx

tyy

txx

PRP

TPP

R

ttT

yxP

y

x

yx

+=−=

+=+=

•=+=

( ) ( )( ) ( )

( )( ) y

x

yx

yx

tyxy

tyxx

yxy

yxx

TPP

PRP

tytxy

tytxx

++=+−=

+=−=

+=•=

+++=

+−+=

θθθθ

θθθθ

θθθθ

cossin"

sincos"

cossin'

sincos'

'"

'

cos'sin"

sin'cos"

Page 28: 2d transformations

Combining them

• We must do each step in turn. First we rotate the points, then we translate, etc.

• Since we can represent the transformations by matrices, why don’t we just combine them?

PSP

PRP

TPP

•=•=+=

'

'

'

Page 29: 2d transformations

2x2 -> 3x3 Matrices

• We can combine transformations by expanding from 2x2 to 3x3 matrices.

( )

( )

( )

−=

−=

=

=

=

+

=

100

0cossin

0sincos

cossin

sincos

100

00

00

0

0,

100

10

01

,

θθθθ

θθθθ

θR

s

s

s

sssS

t

t

t

t

y

xttT

y

x

y

x

yx

y

x

y

xyx

Page 30: 2d transformations

Homogenous Coordinates

• We need to do something to the vertices

• By increasing the dimensionality of the problem we can transform the addition component of Translation into multiplication.

=

=

=

=

=

=

=

2

22

147

2

63

2

14

6

7

3.,

1

2

4

2

4. ExEx

h

hh

yy

h

xx

h

y

x

y

xP h

h

h

h

Page 31: 2d transformations

Homogenous Coordinates

• Homogenous Coordinates - term used in mathematics to refer to the effect of this representation on Cartesian equations. Converting a pt(x,y) and f(x,y)=0 -> (xh,yh,h) then in homogenous equations mean (v*xh,v*yh,v*h) can be factored out.

• What you should get: By expressing the transformations with homogenous equations and coordinates, all transformations can be expressed as matrix multiplications.

Page 32: 2d transformations

Final Transformations - Compare Equations

( )

( ) ( )

( )

( ) ( )

( )

( ) ( ) PRPPRP

y

x

y

x

y

x

y

xR

PssSPPssSP

y

x

s

s

y

x

y

x

s

s

y

xssS

PttTPPttTP

y

x

t

t

y

x

y

x

t

t

y

xttT

yxyx

y

x

y

xyx

yxyx

y

x

y

xyx

•=→•=

−=

−=

=

•=→•=

=

=

=

•=→+=

=

+

=

=

θθ

θθθθ

θθθθ

θ1100

0cossin

0sincos

1

'

'

cossin

sincos

'

'

,,

1100

00

00

1

'

'

0

0

'

',

,,

1100

10

01

1

'

'

'

',

Page 33: 2d transformations

Combining Transformations

−=

−=

=

−••=→•=•=

1

'

'

100

10

01

100

0cossin

0sincos

1

"

"

1

'

'

100

0cossin

0sincos

1

"

"

1100

10

01

1

'

'

)60(),2,4641.0(),4,3(

"'",'

y

x

t

t

y

x

y

x

y

x

y

x

t

t

y

x

RTP

PBAPPBPPAP

y

x

y

x

θθθθ

θθθθ

−=

=

+−−

=

1100

cossin

sincos

1

"

"

1100

0cossin

0sincos

100

10

01

1

"

"

1100

cossincossin

sincossincos

1

"

"

y

x

t

t

y

x

y

x

t

t

y

x

y

x

tt

tt

y

x

y

x

y

x

yx

yx

θθθθ

θθθθ

θθθθθθθθ

Page 34: 2d transformations

How would we get:

Page 35: 2d transformations

How would we get:

Page 36: 2d transformations

Coordinate Systems

• Object Coordinates

• World Coordinates

• Eye Coordinates

Page 37: 2d transformations

Object Coordinates

Page 38: 2d transformations

World Coordinates

Page 39: 2d transformations

Screen Coordinates

Page 40: 2d transformations

Coordinate Hierarchy

O b j e c t # 1O b j e c t C o o r d i n a t e s

T r a n s f o r m a t i o nO b j e c t # 1 - >

W o r l d

O b j e c t # 2O b j e c t C o o r d i n a t e s

T r a n s f o r m a t i o nO b j e c t # 2 - >

W o r l d

O b j e c t # 3O b j e c t C o o r d i n a t e s

T r a n s f o r m a t i o nO b j e c t # 3 - >

W o r l d

W o r l d C o o r d i n a t e s

T r a n s f o r m a t i o nW o r l d - > S c r e e n

S c r e e n C o o r d i n a t e s

Page 41: 2d transformations

Let’s reexamine assignment 2b

Page 42: 2d transformations

Transformation Hierarchies

• For example:

Page 43: 2d transformations

Transformation Hierarchies

• Let’s examine:

Page 44: 2d transformations

Transformation Hierarchies

• What is a better way?

Page 45: 2d transformations

Transformation Hierarchies

• What is a better way?

Page 46: 2d transformations

Transformation Hierarchies

• We can have transformations be in relation to each other

B l u eO b j e c t C o o r d i n a t e s

T r a n s f o r m a t i o nB l u e - > R e d

R e dO b j e c t C o o r d i n a t e s

T r a n s f o r m a t i o nR e d - > G r e e n

G r e e nO b j e c t ' s C o o r d i n a t e s

T r a n s f o r m a t i o nG r e e n - > W o r ld

W o r l d C o o r d i n a t e s

Page 47: 2d transformations

More Complex Models