47
CAP4730: Computational Structures in Computer Graphics 2D Transformations

CAP4730: Computational Structures in Computer Graphics 2D Transformations

Embed Size (px)

Citation preview

CAP4730: Computational Structures in Computer Graphics

2D Transformations

2D Transformations

• World Coordinates

• Translate

• Rotate

• Scale

• Viewport Transforms

• Putting it all together

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

Vertices

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

• An alternate method is:

• Example:

y

xyx ),(

8.4

1.2)8.4,1.2(

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

Matrix * Matrix

10

01?

*

,

dc

ba

dwcydzcx

bwaybzaxBA

wz

yxB

dc

baA

Does A*B = B*A?

What does the identity do?

Practice

?*

?*

5.23

15.0,

51

32

?

3

2,

51

32

IA

BA

BA

AX

XA

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)

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

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’=(?,?)

Which one is it?

(x,y)

(x’,y’)

(tx,ty)

(x,y)

(tx,ty)

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.

Applying to Triangles

(tx,ty)

What do we have here?

• You know how to:

Scale

• Scale - Alters the size of an object.

• Scales about a fixed point

(x,y)

(x’,y’)

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

Non-Uniform/Differential Scalin’

(x,y)

(x’,y’)

S=(1,2)

Rotation

• Rotation - repositions an object along a circular path.

• Rotation requires an and a pivot point

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'

Example

• P=(4,4)=45 degrees

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)

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)

Combining Transformations

Q: How do we specify each transformation?

Specifying 2D Transformations

• Translation– T(tx, ty)

– Translation distances

• Scale– S(sx,sy)

– Scale factors

• Rotation– R()– Rotation angle

Combining Transformations

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

Combining Transformations• Note there are two ways to combine

rotation and translation. Why?

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"

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

'

'

'

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

x

yx

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

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.

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

x

yx

yxyx

y

x

y

x

yx

1100

0cossin

0sincos

1

'

'

cossin

sincos

'

'

,,

1100

00

00

1

'

'

0

0

'

',

,,

1100

10

01

1

'

'

'

',

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

How would we get:

How would we get:

Coordinate Systems

• Object Coordinates

• World Coordinates

• Eye Coordinates

Object Coordinates

World Coordinates

Screen Coordinates

Coordinate Hierarchy

O b jec t #1O b jec t C oo rd in a tes

T ra n sfo rm a tionO b je ct # 1 ->

W o rld

O b jec t #2O b jec t C oo rd in a tes

T ra n sfo rm a tionO b je ct # 2 ->

W o rld

O b jec t #3O b jec t C oo rd in a tes

T ra n sfo rm a tionO b je ct # 3 ->

W o rld

W o rld C o o rd in a tes

T ra n sfo rm a tionW o rld -> S c re en

S c re en C oo rd in a tes

Let’s reexamine assignment 2b

Transformation Hierarchies

• For example:

Transformation Hierarchies

• Let’s examine:

Transformation Hierarchies

• What is a better way?

Transformation Hierarchies

• What is a better way?

Transformation Hierarchies

• We can have transformations be in relation to each other

B lueO b jec t C oo rd in a tes

T ra n sfo rm a tionB lu e -> R ed

R edO b jec t C oo rd in a tes

T ra n sfo rm a tionR e d -> G re en

G re enO b je ct 's C o o rd in a tes

T ra n sfo rm a tionG re e n -> W o rld

W o rld C o o rd in a tes

More Complex Models