unit-iii ppt slides text books : 1.“computer graphics...

68
Unit-III PPT Slides Text Books : 1. “Computer Graphics C version”, Donald Hearn and M.Puline Baker, Pearson Education 2. Computer Graphics Principles & Practice second edition in C,Foley VanDam, Fiener and Hughes, Pearson Educatio

Upload: tranxuyen

Post on 10-May-2018

264 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Unit-III PPT Slides

Text Books:Text Books:

1. “Computer Graphics C version”, Donald Hearn and M.Puline Baker, Pearson Education

2. Computer Graphics Principles & Practice second edition in

C,Foley VanDam, Fiener and Hughes, Pearson Educatio

Page 2: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

2D TRANSFORMATIONS

Course Website: http://www.comp.dit.ie/bmacnamee

Page 3: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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 4: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

2 ways

– Object Transformation

• Alter the coordinates descriptions an object

• Translation, rotation, scaling etc.

• Coordinate system unchanged

2D Transformations

• Coordinate system unchanged

– Coordinate transformation

• Produce a different coordinate system

Page 5: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Matrix Math

Why do we use matrix?

– More convenient organization of data.

– More efficient processing

– Enable the combination of various – Enable the combination of various

concatenations

Matrix addition and subtraction

a

b

c

a ± c

b ± d=

Page 6: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

– How about it?

Matrix Multiplication

Matrix Math

a

b

c d

e f±

– Dot product

a b

c d

e f

g h. =a.e + b.g a.f + b.h

c.e + d.g c.f + d.h

Page 7: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

What about this?

Matrix Math

1 2 . 1 2

3 1= 6 6

Type of matrix

2

3 .1 2

3 1 =tak boleh!!

a ba

b

Row-vector Column-vector

Page 8: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Is there a difference between possible

representations?

Matrix Math

=

+bfae

eba

=

+ dfce

fdc

[ ]dfbecfae ++=[ ]dc

bafe

[ ]dfcebfae ++=[ ]db

cafe

Page 9: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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

Matrix Math

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

Page 10: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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:

?

We can write the components:

p'x = px + tx

p'y = py + ty

or in matrix form:

P' = P + T

tx

ty

x’

y’

x

ytx

ty= +

(2, 2)= 6

=4

Page 11: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Rotation

A rotation repositions

all points in an object

along a circular path in

the plane centered at

the pivot point.θθ

P’

First, we’ll assume the

pivot is at the origin.

P

Page 12: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Rotation• Review Trigonometry

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

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

θθ

P’(x’, y’)

r

=> cos (φ+ θθ) = x’/r

•x’ = r. cos (φ+ θθ)

φ

P(x,y)

x

yr

x’

y’

θθ

r•x’ = r.cosφcosθθ -r.sinφsinθθ

•x’ = x.cos θθ – y.sin θθ

=>sin (φ+ θθ) = y’/r

y’ = r. sin (φ+ θθ)

•y’ = r.cosφsinθθ + r.sinφcosθθ

•y’ = x.sin θθ + y.cos θθIdentity of Trigonometry

Page 13: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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 (clockwise (--ve)ve) or or

counterclockwisecounterclockwise (+ve as our (+ve as our

θθ

P’(x’, y’)

counterclockwisecounterclockwise (+ve as our (+ve as our

example).example).

•• Rotation matrix Rotation matrix P(x,y)

φ

x

yr

x’

y’

θθ

−=

θθθθ

cossin

sincosR

Page 14: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Example

– Find the transformed point, P’, caused by

rotating P= (5, 1) about the origin through

an angle of 90°.

Rotation

⋅−⋅ − θθθθ sincossincos yxx

⋅+⋅

⋅−⋅=

θθθθ

θθθθ

cossin

sincos

cossin

sincos

yx

yx

y

x

⋅+⋅

⋅−⋅=

90cos190sin5

90sin190cos5

⋅+⋅

⋅−⋅=

0115

1105

−=

5

1

Page 15: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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’

or in matrix form:

P' = S • P

Scale matrix as:

=

y

x

s

sS

0

0

P

Page 16: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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)

• Example :

•P(2, 5), Sx = 0.5, Sy = 0.5

•Find P’ ?

P’

Page 17: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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)

• Example :

•P(2, 5), Sx = 0.5, Sy = 0.5

•Find P’ ?

•If the scale factors are larger than 1 � the

P’

P’

•If the scale factors are larger than 1 � the

points will be moved away from the origin �

the object will be larger.

• Example :

•P(2, 5), Sx = 2, Sy = 2

•Find P’ ?

Page 18: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Scaling• If the scale factors are the same, Sx = Sy �

uniform scaling

• Only change in size (as previous example)

P’

•If Sx ≠ Sy � differential scaling.

•Change in size and shape

•Example : square � rectangle

P(1, 2)

•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 19: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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 20: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Homogenous Coordinates

Let’s move our problem into 3D.

y y

x

x

w

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.

Page 21: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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 • 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 22: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Matrix Representation

Point in column-vector:

Our point now has three coordinates. So our matrix

x

y

1

Our point now has three coordinates. So our matrix

is needs to be 3x3.

Translation

=

1100

10

01

1

y

x

t

t

y

x

y

x

Page 23: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Rotation

Matrix Representation

=

1100

0cossin

0sincos

1

y

x

y

x

θθθθ

Scaling

=

1100

00

00

1

y

x

s

s

y

x

y

x

Page 24: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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 25: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Composition Properties

Is matrix multiplication associative?

– (A.B).C = A.(B.C)

++++++

++

++=

bhlaflbgjaejbhkafkbgiaei

lk

ji

dhcfdgce

bhafbgae

lk

ji

hg

fe

dc

ba

?

++++++

++++++=

dhlcfldgjcejdhkcfkdgicei

bhlaflbgjaejbhkafkbgiaei

++++++

++++++=

++

++•

=

dhldgjcflcejdhkdgicfkcei

bhlbgjaflaejbhkbgiafkaei

hlgjhkgi

flejfkei

dc

ba

lk

ji

hg

fe

dc

ba

Page 26: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Is matrix multiplication commutative?

– A . B = B . A

Composition Properties

?

++

++=

dhcfdgce

bhafbgae

hg

fe

dc

ba

++ dhcfdgcehgdc

++

++=

hdgbhcga

fdebfcea

dc

ba

hg

fe

Page 27: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Order of operations

So, it does matter. Let’s look at an

example:1. Translate

2. Rotate

1. Rotate

2. Translate

Page 28: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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)T(pivot) • R(θ) • T(–pivot)

1 0 -tx

0 1 -ty

0 0 1

cosθ -sinθ 0

sinθ cosθ 0

0 0 1

1 0 tx0 1 ty0 0 1 . .

cosθ -sinθ -tx cosθ+ ty sinθ + txsinθ cosθ -tx sinθ - ty cosθ + ty0 0 1

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

1 0 tx0 1 ty0 0 1 .

Page 29: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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θ + txsinθ cosθ -tx sinθ - ty cosθ + ty

x

y.Sin 60 = 0.8660

Kos 60 = 1/2sinθ cosθ -tx sinθ - ty cosθ + ty0 0 1

y

1.

0.5 -0.866 -1.0.5 + 2.0.866 + 1

0.866 0.5 -1.0.866- 2.0.5 + 2

0 0 1

2

5

1.

0.5 - 0.866 2.232

0.866 0.5 0.134

0 0 1

2

5

1

. =-1.098

4.366

1

P’ = (-1, 4)

Kos 60 = 1/2

Page 30: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Without using composite

homogenus matrixExample

– 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)– 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 31: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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(S(scalescale) ) • • T(T(––fixed)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 32: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Answer1 0 -

tx0 1 -

ty0 0 1

Sx 0 0

0 Sy 0

0 0 1

1 0 tx0 1 ty0 0 1 . .

Sx 0 -tx Sx

0 Sy -ty Sy

0 0 1

1 0 tx

0 1 ty

0 0 1.

=Sx 0 -tx Sx + tx0 Sy -ty Sy + ty0 0 1

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

2 0 -2( 2) + 2

0 3 -2(3) + 2

0 0 1.

6

8

1

=10

20

1

Page 33: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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(θ)R(–θ) • S(scale) • R(θ)

Find the composite transformation matrix

by yourself !!

Page 34: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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

Page 35: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

cosθ -sinθ 0

sinθ cosθ 0

0 0 1

Sx 0 0

0 Sy 0

0 0 1

1 0 tx0 1 ty0 0 1. .

S . T . R

cosθ -sinθ txsinθ cosθ ty0 0 1

Sx 0 0

0 Sy 0

0 0 1 .

Sxcosθ Sx(-sinθ) Sx txSy sinθ Sy cosθ Sy ty0 0 1

Page 36: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Other transformations

Reflection:

x-axis y-axis

100

010

001

100

100

010

001

Page 37: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Other transformations

Reflection:

origin line x=y

100

010

001

100

001

010

Page 38: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Other transformations

Shear:

x-direction y-

direction

100

010

01 xsh

100

01

001

ysh

Page 39: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

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

Page 40: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Computer Graphics 3:

2D Transformations

Course Website: http://www.comp.dit.ie/bmacnamee

Page 41: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Contents

In today’s lecture we’ll cover the following:

– Why transformations

– Transformations

• Translation

• Scaling• Scaling

• Rotation

– Homogeneous coordinates

– Matrix multiplications

– Combining transformations

Page 42: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Why Transform

ations?

In graphics, once we have an object

described, tra

nsform

ations are used to move

that object, s

cale it a

nd ro

tate it

Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)Images taken from Hearn & Baker, “Computer Graphics with OpenGL” (2004)

Page 43: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Translation

Simply moves an object from one position to

another

xnew = xold + dx ynew = yold + dy

Note: House shifts position relative to origin

y

x0

1

1

2

2

3 4 5 6 7 8 9 10

3

4

5

6

Page 44: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Translation Example

y

5

6

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

(1, 1) (3, 1)

(2, 3)

Page 45: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Scaling

Scalar multiplies all coordinates

WATCH OUT: Objects grow and move!

xnew = Sx × xold ynew = Sy × yold

y

Note: House shifts position relative to origin

y

x0

1

1

2

2

3 4 5 6 7 8 9 10

3

4

5

6

1

2

1

3

3

6

3

9

Page 46: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Scaling Example

y

5

6

01

1

2

2

3 4 5 6 7 8 9 10

3

4

(1, 1) (3, 1)

(2, 3)

Page 47: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Rotation

Rotates all coordinates by a specified angle

xnew = xold × cosθ – yold × sinθ

ynew = xold × sinθ + yold × cosθ

Points are always rotated about the originPoints are always rotated about the origin

6

πθ =

y

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

5

6

Page 48: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Rotation Example

y

5

6

01

1

2

2

3 4 5 6 7 8 9 10

3

4

(3, 1) (5, 1)

(4, 3)

Page 49: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Homogeneous Coordinates

A point (x, y) can be re-written in

homogeneous coordinates as (xh, yh, h)

The homogeneous parameter h is a non-

zero value such that:zero value such that:

We can then write any point (x, y) as (hx, hy, h)

We can conveniently choose h = 1 so that

(x, y) becomes (x, y, 1)

h

xx h=

h

yy h=

Page 50: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Why Homogeneous Coordinates?

Mathematicians commonly use

homogeneous coordinates as they allow

scaling factors to be removed from

equations

We will see in a moment that all of the

transformations we discussed previously

can be represented as 3*3 matrices

Using homogeneous coordinates allows us

use matrix multiplication to calculate

transformations – extremely efficient!

Page 51: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Homogeneous Translation

The translation of a point by (dx, dy) can be written in matrix form as:

10

01

dy

dx

Representing the point as a homogeneous

column vector we perform the calculation as:

100

+

+

=

++

++

++

=

×

11*1*0*0

1**1*0

1**0*1

1100

10

01

dyy

dxx

yx

dyyx

dxyx

y

x

dy

dx

Page 52: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Remember Matrix Multiplication

Recall how matrix multiplication takes place:

++

++

=

×

zfyexd

zcybxa

y

x

fed

cba

***

***

++

ziyhxgzihg ***

Page 53: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Homogenous Coordinates

To make operations easier, 2-D points are

written as homogenous coordinate column

vectors

dxxxdx01

+

vdydxTvdyyydy ),(':

11100

10 =

+=

×

vssSvys

xs

y

x

s

s

yxy

x

y

x

),(':

11100

00

00

=

×

×

=

×

Translation:

Scaling:

Page 54: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Homogenous Coordinates (cont…)

vRvyx

yx

y

x

)(':

1

cossin

sincos

1100

0cossin

0sincos

θθθθθ

θθθθ

=

×+×

×−×

=

×

Rotation:

11100

Page 55: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Inverse Transformations

Transformations can easily be reversed

using inverse transformations

=− 10

011 dy

dx

T

001

−=−

100

101 dyT

=−

100

01

0

00

1

y

x

s

s

S

−=−

100

0cossin

0sincos1 θθ

θθR

Page 56: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Combining Transformations

A number of transformations can be

combined into one matrix to make things

easy

– Allowed by the fact that we use homogenous

coordinatescoordinates

Imagine rotating a polygon around a point

other than the origin

– Transform to centre point to origin

– Rotate around origin

– Transform back to centre point

Page 57: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Combining Transformations (cont…)

)(HHouse HdydxT ),(

1 2

HdydxTR ),()(θ HdydxTRdydxT ),()(),( θ−−

3 4

Page 58: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Combining Transformations (cont…)

The three transformation matrices are

combined as follows

×

×

×

10

01

0cossin

0sincos

10

01

y

x

dy

dx

dy

dx

θθθθ

×

×

×

1100

10

100

0cossin

100

10 ydydy θθ

REMEMBER: Matrix multiplication is not

commutative so order matters

vdydxTRdydxTv ),()(),(' θ−−=

Page 59: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Summary

In this lecture we have taken a look at:

– 2D Transformations

• Translation

• Scaling

• Rotation• Rotation

– Homogeneous coordinates

– Matrix multiplications

– Combining transformations

Next time we’ll start to look at how we take

these abstract shapes etc and get them on-

screen

Page 60: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Exercises 1

y

5

6

Translate the shape below by (7, 2)

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

(2, 3)

(3, 2)(1, 2)

(2, 1)

Page 61: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Exercises 2

y

5

6

Scale the shape below by 3 in x and 2 in y

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

(2, 3)

(3, 2)(1, 2)

(2, 1)

Page 62: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Exercises 3

Rotate the shape below by 30° about the originy

5

6

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

(7, 3)

(8, 2)(6, 2)

(7, 1)

Page 63: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Exercise 4

Write out the homogeneous matrices for the

previous three transformations

______ ______ ______

Translation Scaling Rotation

______

______

______

______

______

______

______

______

______

Page 64: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Exercises 5

Using matrix multiplication calculate the rotation

of the shape below by 45° about its centre (5, 3)

y

5

(5, 4)

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

(5, 4)

(6, 3)(4, 3)

(5, 2)

Page 65: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Scratch

y

5

6

x01

1

2

2

3 4 5 6 7 8 9 10

3

4

Page 66: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Equations

Translation:

xnew = xold + dx ynew = yold + dy

Scaling:Scaling:

xnew = Sx × xold ynew = Sy × yold

Rotation

xnew = xold × cosθ – yold × sinθ

ynew = xold × sinθ + yold × cosθ

Page 67: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Shear

Helpful to add one more basic transformation

Equivalent to pulling faces in opposite directions

6

7

Page 68: Unit-III PPT Slides Text Books : 1.“Computer Graphics …vjit.ac.in/.../Computer-Graphics-Lecture-Notes-on-UNIT-3.pdfUnit-III PPT Slides Text Books : 1.“Computer Graphics C version”,

Shear Matrix

Consider simple shear along x axis

x’ = x + y cot θy’ = y

z’ = z

6

8

θ

1000

0100

0010

00cot 1

H(θ) =