38
2D TRANSFORMATIONS

2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Embed Size (px)

Citation preview

Page 1: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

2D TRANSFORMATIONS

Page 2: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

2D Transformations

• What is transformations?– The geometrical changes of an object from a

current state to modified state.

• Why the transformations is needed?– To manipulate the initially created object and to

display the modified object without having to redraw it.

Page 3: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• 2 ways– Object Transformation

• Alter the coordinates descriptions an object

• Translation, rotation, scaling etc.

• Coordinate system unchanged

– Coordinate transformation• Produce a different coordinate system

2D Transformations

Page 4: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Matrix Math• Why do we use matrix?

– More convenient organization of data.– More efficient processing– Enable the combination of various

concatenations

• Matrix addition and subtraction

ab

cd

a cb d=

Page 5: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

– How about it?–

• Matrix Multiplication– Dot product

Matrix Math

ab

c de f

a bc d

e fg h

. = a.e + b.g a.f + b.hc.e + d.g c.f + d.h

Page 6: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• What about this?

• Type of matrix

Matrix Math

1 2 . 1 23 1

= 6 6

23

. 1 23 1 = tak boleh!!

a b ab

Row-vector Column-vector

Page 7: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• Is there a difference between possible representations?

Matrix Math

dfce

bfae

f

e

dc

ba

dfbecfae dc

bafe

dfcebfae db

cafe

Page 8: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• We’ll use the column-vector representation for a point.

• Which implies that we use pre-multiplication of the transformation – it appears before the point to be transformed in the equation.

• What if we needed to switch to the other convention?

DyCx

ByAx

y

x

DC

BA

Matrix Math

Page 9: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Translation• A translation moves all points

in an object along the same straight-line path to new positions.

• The path is represented by a vector, called the translation or shift vector.

• We can write the components:

p'x = px + tx

p'y = py + ty

• or in matrix form:

P' = P + T

tx

ty

x’y’

xy

tx

ty = +

(2, 2)= 6

=4

?

Page 10: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Rotation• A rotation repositions

all points in an object along a circular path in the plane centered at the pivot point.

• First, we’ll assume the pivot is at the origin.

P

P’

Page 11: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Rotation• Review Trigonometry

=> cos = x/r , sin = y/r

• x = r. cos , y = r.sin

P(x,y)

x

yr

x’

y’

P’(x’, y’)

r

=> cos (+ ) = x’/r

•x’ = r. cos (+ ) •x’ = r.coscos -r.sinsin

•x’ = x.cos – y.sin

=>sin (+ ) = y’/r

y’ = r. sin (+ ) •y’ = r.cossin + r.sincos

•y’ = x.sin + y.cos

Identity of Trigonometry

Page 12: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Rotation• We can write the components:We can write the components:

pp''x x = = ppx x cos cos – – ppy y sin sin

pp''yy = = ppx x sin sin + + ppy y cos cos

• or in matrix form:or in matrix form:

PP' ' = = R R •• PP can be can be clockwise (-ve)clockwise (-ve) or or

counterclockwisecounterclockwise (+ve as our (+ve as our example).example).

• Rotation matrix Rotation matrix

P(x,y)

x

yr

x’

y’

P’(x’, y’)

cossin

sincosR

Page 13: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• Example– Find the transformed point, P’, caused by

rotating P= (5, 1) about the origin through an angle of 90.

Rotation

cossin

sincos

cossin

sincos

yx

yx

y

x

90cos190sin5

90sin190cos5

0115

1105

5

1

Page 14: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Scaling• Scaling changes the size of an

object and involves two scale factors, Sx and Sy for the x- and y- coordinates respectively.

• Scales are about the origin.

• We can write the components:

p'x = sx • px

p'y = sy • py

or in matrix form:P' = S • P

Scale matrix as:

y

x

s

sS

0

0

P

P’

Page 15: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Scaling• If the scale factors are in between

0 and 1 the points will be moved closer to the origin the object will be smaller.

P(2, 5)

P’

• Example :•P(2, 5), Sx = 0.5, Sy = 0.5•Find P’ ?

Page 16: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Scaling• If the scale factors are in between

0 and 1 the points will be moved closer to the origin the object will be smaller.

P(2, 5)

P’

• Example :•P(2, 5), Sx = 0.5, Sy = 0.5•Find P’ ?

•If the scale factors are larger than 1 the points will be moved away from the origin the object will be larger.

P’

• Example :•P(2, 5), Sx = 2, Sy = 2•Find P’ ?

Page 17: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Scaling• If the scale factors are the same, Sx = Sy uniform scaling• Only change in size (as previous example)

P(1, 2)

P’

•If Sx Sy differential scaling.•Change in size and shape•Example : square rectangle

•P(1, 3), Sx = 2, Sy = 5 , P’ ?

What does scaling by 1 do?

What is that matrix called?

What does scaling by a negative value do?

Page 18: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Combining transformations

We have a general transformation of a point:P' = M • P + A

When we scale or rotate, we set M, and A is the additive identity.

When we translate, we set A, and M is the multiplicative identity.

To combine multiple transformations, we must explicitly compute each transformed point.

It’d be nicer if we could use the same matrix operation all the time. But we’d have to combine multiplication and addition into a single operation.

Page 19: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Homogenous Coordinates

• Let’s move our problem into 3D.

• Let point (x, y) in 2D be represented by point (x, y, 1) in the new space.

• Scaling our new point by any value a puts us somewhere along a particular line: (ax, ay, a).

• A point in 2D can be represented in many ways in the new space.

• (2, 4) ---------- (8, 16, 4) or (6, 12, 3) or (2, 4, 1) or etc.

y y

x

x

w

Page 20: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Homogenous Coordinates• We can always map back to the original 2D point by dividing

by the last coordinate

• (15, 6, 3) --- (5, 2).

• (60, 40, 10) - ?.

• Why do we use 1 for the last coordinate?

• The fact that all the points along each line can be mapped back to the same point in 2D gives this coordinate system its name – homogeneous coordinates.

Page 21: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Matrix Representation

• Point in column-vector:

• Our point now has three coordinates. So our matrix is needs to be 3x3.

• Translation

xy1

1100

10

01

1

y

x

t

t

y

x

y

x

Page 22: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• Rotation

• Scaling

Matrix Representation

1100

0cossin

0sincos

1

y

x

y

x

1100

00

00

1

y

x

s

s

y

x

y

x

Page 23: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Composite Transformation• We can represent any sequence of transformations as

a single matrix.– No special cases when transforming a point – matrix •

vector.– Composite transformations – matrix • matrix.

• Composite transformations:– Rotate about an arbitrary point – translate, rotate, translate– Scale about an arbitrary point – translate, scale, translate– Change coordinate systems – translate, rotate, scale

• Does the order of operations matter?

Page 24: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Composition Properties

• Is matrix multiplication associative?– (A.B).C = A.(B.C)

dhlcfldgjcejdhkcfkdgicei

bhlaflbgjaejbhkafkbgiaei

lk

ji

dhcfdgce

bhafbgae

lk

ji

hg

fe

dc

ba

dhldgjcflcejdhkdgicfkcei

bhlbgjaflaejbhkbgiafkaei

hlgjhkgi

flejfkei

dc

ba

lk

ji

hg

fe

dc

ba

?

Page 25: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• Is matrix multiplication commutative?– A . B = B . A

Composition Properties

?

dhcfdgce

bhafbgae

hg

fe

dc

ba

hdgbhcga

fdebfcea

dc

ba

hg

fe

Page 26: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Order of operationsSo, it does matter. Let’s look at an example:

1. Translate2. Rotate

1. Rotate

2. Translate

Page 27: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Composite Transformation Matrix• Arrange the transformation matrices in order from right to left.

• General Pivot- Point Rotation• Operation :-

1. Translate (pivot point is moved to origin)2. Rotate about origin

3. Translate (pivot point is returned to original position)

T(pivot) • R() • T(–pivot)

1 0 -tx

0 1 -ty

0 0 1

cos -sin 0sin cos 0 0 0 1

1 0 tx

0 1 ty

0 0 1 . .

cos -sin -tx cos+ ty sin + tx

sin cos -tx sin - ty cos + ty

0 0 1

cos -sin -tx cos+ ty sin sin cos -tx sin - ty cos 0 0 1

1 0 tx

0 1 ty

0 0 1 .

Page 28: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

• Example– Perform 60 rotation of a point P(2, 5) about a

pivot point (1,2). Find P’?

Composite Transformation Matrix

cos -sin -tx cos+ ty sin + tx

sin cos -tx sin - ty cos + ty

0 0 1

xy1

.

0.5 -0.866 -1.0.5 + 2.0.866 + 1 0.866 0.5 -1.0.866- 2.0.5 + 20 0 1

251

.

0.5 - 0.866 2.232 0.866 0.5 0.1340 0 1

251

. =-1.0984.366 1

P’ = (-1, 4)

Sin 60 = 0.8660Kos 60 = 1/2

Page 29: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Without using composite homogenus matrix

• Example– Perform 90 rotation of a point P(5, 1) about a pivot

point (2, 2). Find P’?

• 1. Translate pivot point ke asalan ( tx = -2, ty = -2)– Titik P(5, 1 ) P’ (3, -1)

• 2. Rotate P ‘ = 90 degree

• P’(3, -1) -- > kos 90 -sin 90 3 = 0 -1 3 = 1

• sin 90 kos 90 -1 1 0 -1 3

• 3. Translate back ke pivot point (tx = 2 , ty = 2)

• titik (1, 3 ) titik akhir (3, 5)

Page 30: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Composite Transformation Matrix

General Fixed-Point Scaling Operation :-

1. Translate (fixed point is moved to origin)2. Scale with respect to origin

3. Translate (fixed point is returned to original position)

T(fixed) T(fixed) • • S(scale) S(scale) • • T(–fixed)T(–fixed)

Find the matrix that represents scaling of an object with respect to any fixed point?

Given P(6, 8) , Sx = 2, Sy = 3 and fixed point (2, 2). Use that matrix to find P’?

Page 31: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Answer1 0 -tx

0 1 -ty

0 0 1

Sx 0 0 0 Sy 0 0 0 1

1 0 tx

0 1 ty

0 0 1 . .

Sx 0 -tx Sx 0 Sy -ty Sy 0 0 1

1 0 tx

0 1 ty

0 0 1 . =

x =6, y = 8, Sx = 2, Sy = 3, tx =2, ty = 2

Sx 0 -tx Sx + tx

0 Sy -ty Sy + ty

0 0 1

2 0 -2( 2) + 20 3 -2(3) + 20 0 1

.681

=10 20 1

Page 32: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Composite Transformation Matrix

General Scaling Direction Operation :-

1. Rotate (scaling direction align with the coordinate axes)2. Scale with respect to origin

3. Rotate (scaling direction is returned to original position)

R(–) • S(scale) • R()

Find the composite transformation matrixby yourself !!

Page 33: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

latihan

• Dapatkan titik akhir bagi P(5, 8) jika titik tersebut diputarkan sebanyak 90 darjah, kemudian ditranslate sebanyak (-6, 9) dan akhirnya diskala dengan faktor skala (2, 0.5).

Page 34: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

cos -sin 0sin cos 0 0 0 1

Sx 0 0 0 Sy 0 0 0 1

1 0 tx

0 1 ty

0 0 1. .

S . T . R

cos -sin tx

sin cos ty

0 0 1

Sx 0 0 0 Sy 0 0 0 1 .

Sxcos Sx(-sin) Sx tx Sy sin Sy cos Sy ty 0 0 1

Page 35: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Other transformationsReflection:

x-axis y-axis

100

010

001

100

010

001

Page 36: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Other transformationsReflection:

origin line x=y

100

010

001

100

001

010

Page 37: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Other transformationsShear:

x-direction y-direction

100

010

01 xsh

100

01

001

ysh

Page 38: 2D TRANSFORMATIONS. 2D Transformations What is transformations? –The geometrical changes of an object from a current state to modified state. Why the

Coordinate System Transformations• We often need to transform points from one coordinate system to

another:

1. We might model an object in non-Cartesian space (polar)

2. Objects may be described in their own local system

3. Other reasons: textures, display, etc