computer graphic - transformations in 2d

47
COMPUTER GRAPHICS CH03 – TRANSFORMATIONS IN 2D

Upload: 2013901097

Post on 11-Apr-2017

14 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Computer Graphic - Transformations in 2D

COMPUTER GRAPHICSCH03 – TRANSFORMATIONS IN 2D

Page 2: Computer Graphic - Transformations in 2D

REPRESENTATION OF POINTS 2 x 1 matrix:

General Problem: [B] = [T] [A][T] represents a generic operator to be applied to

the points in A. T is the geometric transformation matrix.

If A & T are known, the transformed points are obtained by calculating B.

Page 3: Computer Graphic - Transformations in 2D

GENERAL TRANSFORMATION OF 2D POINTS

Solid body transformations – the above equation is valid for all set of points and lines of the object being transformed.

Page 4: Computer Graphic - Transformations in 2D

MULTIPLYING MATRICES

2x3 3x4 Since A is a 2x3 matrix and B is a 3x4 matrix, the product AB is a 2x4 matrix

Page 5: Computer Graphic - Transformations in 2D

SPECIAL CASES OF 2D TRANSFORMATIONS: IDENTITY MATRIX, SCALING & REFLECTION T= identity matrix:

a=d=1, b=c=0 => x’=x, y’=y. Scaling & Reflections:

b=0, c=0 => x' = a.x, y' = d.y; This is scaling by a in x, d in y.

If, a = d > 1, we have enlargement (scale up) & uniform scaling.

If, a ≠ d > 1, we have enlargement (scale up) & non uniform scaling.

If, 0 < a = d < 1, we have compression (scale down) & uniform scaling.

If, 0 < a ≠ d < 1, we have compression (scale down) & non uniform scaling.

Scale matrix let Sx= a, Sy=d:

1 0

0 1

Sx 0

0 Sy

Page 6: Computer Graphic - Transformations in 2D

EXAMPLE OF SCALING Let Sx= 3, Sy=2:

What if Sx and/or Sy are negative? Get reflections through an axis or plane.

Only diagonal elements are involved in scaling and reflections. (off diagonal = 0)

Page 7: Computer Graphic - Transformations in 2D

EXAMPLE OF SCALING EX: Let Sx= 5, Sy=5:

=

X’=5X, Y’=5Y so its scale up & uniform scale. EX: Let Sx= 1/5, Sy=1/5:

=

X’=5/X, Y’=5/Y so its scale down & uniform scale.

5 00 5

X’Y’

XY

X’Y’

1/5 0

0 1/5

XY

Page 8: Computer Graphic - Transformations in 2D

SPECIAL CASES OF REFLECTIONS

Reflection about Matrix T

Y = X X’ = Y Y’ = X EX: (3,4) => (4,3)

Y = -X X’ = -Y Y’ = -X EX: (3,4) => (-4,-3)

Y = 0 Axis (or X Axis) X’ = X Y’ = -Y EX: (3,4) => (3,-4)

X = 0 Axis (or Y Axis) X’ = -X Y’ = Y EX: (3,4) => (-3,4)

X = 0 and Y = 0 (Y axis & X axis)

X’ = -X Y’ = -Y EX: (3,4) => (-3,-4)

Page 9: Computer Graphic - Transformations in 2D

SHEARING

Off diagonal terms are involved in Shearing. y' depends linearly on x ; This effect is called shear.

Page 10: Computer Graphic - Transformations in 2D

ROTATIONS

Positive Rotations: counter clockwise about the origin.

Page 11: Computer Graphic - Transformations in 2D

ROTATIONS

With clockwise.

Page 12: Computer Graphic - Transformations in 2D

SPECIAL CASES OF ROTATIONS

θ (in degrees) Matrix T

90

180

270 or -90

360 or 0

Page 13: Computer Graphic - Transformations in 2D

EXAMPLE OF ROTATIONS Rotate the following shape by θ=270 anticlockwise

Page 14: Computer Graphic - Transformations in 2D

TRANSLATIONS B = A + Td , where Td = [tx ty]T. x’= x + tx , y’= y + ty. Where else are translations introduced?1. Rotations - when objects are not centered at the

origin.2. Scaling - when objects/lines are not centered at

the origin. if line intersects the origin then no translation.

Note: we cannot directly represent translations as matrix multiplication, as we know so far.

We can represent translations in our general transformation by using homogeneous coordinates.

Page 15: Computer Graphic - Transformations in 2D

EXAMPLE - TRANSLATIONS

Page 16: Computer Graphic - Transformations in 2D

HOMOGENEOUS COORDINATES

Use a 3 x 3 matrix: x' = ax + cy + tx

y' = bx + cy + ty w’ = w Each point is now represented by a triplet: (x, y, w). (x/w, y/w) are called the Cartesian coordinates of the

homogeneous points.

Page 17: Computer Graphic - Transformations in 2D

HOMOGENEOUS COORDINATES

EX: Given 4 homogeneous points P0=(3,4,2,.5) P1=(24,32,16,4) P2=(9,12,6,1) P3=(18,24,12,3)

Which of the homogeneous points represent a different 3d point?

P0= (3/.5,4/.5,2/.5)= (6,8,4) P1=(24/4,32/4,16/4)= (6,8,4) P2=(9/1,12/1,6/1)= (9,12,6) P3=(18/3,24/3,12/3)= (6,8,4) So p2 is different

Page 18: Computer Graphic - Transformations in 2D

HOMOGENEOUS COORDINATES General Purpose 2D transformations in homogeneous coordinate representation:

Parameters involved in scaling, rotation, reflection and shear are: a, b, c, d.

For translation:If [B]=[T][A] then p,q are translation Parameter.if [B]=[A][T] then m,n are translation parameter.

Page 19: Computer Graphic - Transformations in 2D

TRANSLATION ABOUT AN ARBITRARYPOINT P IN SPACE There are three steps for translation about an arbitrary point in space:

1. Translate by (-Tx, -Ty).2. Scale by Sx, Sy, where Sx = new coordinate for x/

old Sy = new coordinate for y/ old3. Translate back by (Tx, Ty)

Page 20: Computer Graphic - Transformations in 2D

TRANSLATION ABOUT AN ARBITRARYPOINT P IN SPACE EX: Apply translation to the matrix according to the shape below.

1 0 16

0 1 4

0 0 1

1 0 -2

0 1 -2

0 0 1

8 0 0

0 2 0

0 0 1

XYZ

Page 21: Computer Graphic - Transformations in 2D

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE There are three steps for scaling about an arbitrary point in space:

1. Translate by (-Tx, -Ty)2. Scale by Sx, Sy

3. Translate back by (Tx, Ty)

Page 22: Computer Graphic - Transformations in 2D

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE

Page 23: Computer Graphic - Transformations in 2D

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE EX: Apply Scaling up to the matrix such that Tx= 1, Ty= 2, Sx= 4, Sy= 12.

=

= =

x’= x+7w y’=y+16w w’=w

1 0 -1

0 1 -2

0 0 1

X’Y’Z’

4 0 0

0 12 0

0 0 1

1 0 4

0 1 12

0 0 1

XYZ1 0

30 1

40 0

1

1 0 4

0 1 12

0 0 1

XYZ

1 0 7

0 1 16

0 0 1

XYZ

Page 24: Computer Graphic - Transformations in 2D

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE EX: Apply Scaling down to the matrix such that Tx= 1, Ty= 2, Sx= 4, Sy= 12.

=

1 0 -4

0 1 -12

0 0 1

X’Y’Z’

1/4 0 0

0 1/6 0

0 0 1

1 0 1

0 1 2

0 0 1

XYZ

Page 25: Computer Graphic - Transformations in 2D

ROTATION ABOUT AN ARBITRARYPOINT P IN SPACE There are three steps for rotation about an arbitrary point in space:

1. Translate by (-Px, -Py).2. Rotate.3. Translate back by (Px, Py)

Page 26: Computer Graphic - Transformations in 2D

ROTATION ABOUT AN ARBITRARYPOINT P IN SPACE

Page 27: Computer Graphic - Transformations in 2D

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE EX: Apply rotation to the matrix such that Px= 1, Py= 4 by θ = 90 .

=

1 0 -1

0 1 -4

0 0 1

X’Y’Z’

0 -1 0

1 0 0

0 0 1

1 0 1

0 1 4

0 0 1

XYZ

Page 28: Computer Graphic - Transformations in 2D

REFLECTION ABOUT AN ARBITRARYPOINT P IN SPACE There are five steps for reflection about an arbitrary point in space:

1. Translate line to the origin.2. Rotation about the origin.3. Reflection matrix.4. Reverse the rotation.5. Translate line back. If the line pass the origin we need only 3 steps (remove step 1 and step 5).

Page 29: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS If we want to apply a series of transformations T1, T2, T3 to a set of points, we can do it in two ways:

1. We can calculate p'=T1*p, p''= T2*p', p'''=T3*p''2. Calculate T=T1*T2*T3 then p'''=T*p. Translations: Translate the points by tx1, ty1, then by tx2, ty2. Scaling: Similar to translations. Rotations: Rotate by θ1, then by θ2 and its done by 2 ways:

1. Replace θ1, θ2 by θ=θ1+θ2.2. calculate T1 for θ1, then T2 for θ2 then multiply them.

Page 30: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS EX: Apply two scaling to the matrix such that Sx1= 2, Sy1= 3, Sx2=4, Sy2=2.

Way #1

P’= =

P’’= =

2 0 0

0 3 0

0 0 1

1 0 0

0 2 0

0 0 1

1 0 0

0 2 0

0 0 1

2 0 0

0 6 0

0 0 1

4 0 0

0 2 0

0 0 1

2 0 0

0 6 0

0 0 1

8 0 0

0 12 0

0 0 1

Page 31: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS Way #2

T = =

P’’= =

2 0 0

0 3 0

0 0 1

4 0 0

0 2 0

0 0 1

8 0 0

0 6 0

0 0 1

8 0 0

0 6 0

0 0 1

1 0 0

0 2 0

0 0 1

8 0 0

0 12 0

0 0 1

Page 32: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS EX: Find the new coordinate for the point (3,7,1) if you rotate the point by 180 degree then by 90 degree with clockwise.

Composite rotation : 180 + 90 = 270 degree Since w=1 the Cartesian coordinate for the point is (3,7)

1 0 -3

0 1 -7

0 0 1

Cos270 Sin270 0-Sin270 Cos270 0

0 0 1

1 0 3

0 1 7

0 0 1

Page 33: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS EX: Suppose you have the point (2,4),rotate the point by 90 degree then by 180 degree the by 45 degree then by 45 degree then scale it by Sx=2 and Sy=4.

Composite rotation : 90+180+45+45 = 360 degree

2 0 0

0 4 0

0 0 1

Cos360 Sin360 0-Sin360 Cos360 0

0 0 1

2 4 1

Page 34: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS EX: Transform the point from left to right.

Sx1= 4/2= 2, Sy1= 5/2= 2.5, Sx2= 7/4, Sy2= 8/5 Sx= 2*7/4= 3.5, Sy= 2.5*8/5= 41 0 -

20 1 -

20 0

1

3.5 0 0

0 4 0

0 0 1

1 0 7

0 1 8

0 0 1

Page 35: Computer Graphic - Transformations in 2D

COMPOSITE TRANSFORMATIONS EX: Transform the point from left to right.

Sx= 3/1= 3, Sy= 3/1= 31 0 -1

0 1 -1

0 0 1

3 0 00 3 00 0

1

1 0 3

0 1 3

0 0 1

Page 36: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS Cases where T1 * T2 = T2 * T1:

T1 T2Translation TranslationScaling ScalingRotation RotationUniform Scaling Rotation

Page 37: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS EX: If we scale, translate to origin then translate back is it equivalent to translate to origin, scale then translate back? (Sx=2, Sy=3, tx=3, tx=2)

Answer: No, the order of matrix is important.

=

=

2 0 0

0 3 0

0 0 1

1 0 -3

0 1 -2

0 0 1

1 0 3

0 1 2

0 0 1

2 0 0

0 3 0

0 0 1

2 0 0

0 3 0

0 0 1

1 0 -3

0 1 -2

0 0 1

1 0 3

0 1 2

0 0 1

2 0 3

0 3 4

0 0 1

Page 38: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS EX: If we rotate the object by 90 degree then scale it ,is it equivalent to scale it then rotate it by 90 degree ? (Sx=2, Sy=3)

=

=

0 -1 0

1 0 0

0 0 1

2 0 0

0 3 0

0 0 1

0 -3 0

2 0 0

0 0 1

0 -1 0

1 0 0

0 0 1

2 0 0

0 3 0

0 0 1

0 -2 0

3 0 0

0 0 1

Page 39: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS EX: If we rotate the object by 90 degree then scale it ,is it equivalent to scale it then rotate it by 90 degree ? (Sx=4, Sy=4)

=

=

0 -1 0

1 0 0

0 0 1

4 0 0

0 4 0

0 0 1

0 -4 0

4 0 0

0 0 1

0 -1 0

1 0 0

0 0 1

4 0 0

0 4 0

0 0 1

0 -4 0

4 0 0

0 0 1

Page 40: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS EX: Prove that rotation then translation not equal to translation then rotation?

=

= not equal to the above

Cosθ -Sinθ 0

Sinθ Cosθ 0

0 0 1

1 0 -tx

0 1 -ty

0 0 1

Cosθ –Sinθ -txcosθ+tysinθ

Sinθ Cosθ -txsinθ-tycosθ

0 0 1

1 0 -tx

0 1 -ty

0 0 1

Cosθ -Sinθ 0

Sinθ Cosθ 0

0 0 1

Page 41: Computer Graphic - Transformations in 2D

COMMUTIVITY OF TRANSFORMATIONS EX: Given a solid object, if we apply uniform scale then translation to the body, is it the same as we apply translation then uniform scale?

=

=

Sx 0 0

0 Sy 0

0 0 1

1 0 tx

0 1 ty

0 0 1

Sx Sy Sxtx0 Sy Syty

0 0 1 1 0 tx

0 1 ty

0 0 1

Sx 0 0

0 Sy 0

0 0 1

Sx 0 tx0 Sy ty0 0 1

Page 42: Computer Graphic - Transformations in 2D

COORDINATE SYSTEM Screen Coordinates: The coordinate system used to address the screen (device coordinates).

World Coordinates: A user-defined application specific coordinate system having its own units of measure, axis, origin, etc.

Window: The rectangular region of the world that is visible.

Viewport: The rectangular region of the screen space that is used to display the window.

Page 43: Computer Graphic - Transformations in 2D

MAPPING WINDOW TO VIEWPORTTRANSFORMATION The Purpose is to find the transformation matrix that maps the window in world coordinates to the viewport in screen coordinates.

Window: (x, y space) denoted by: xmin, ymin, xmax, ymax.

Viewport: (u, v space) denoted by: umin, vmin, umax, vmax.

Page 44: Computer Graphic - Transformations in 2D

MAPPING WINDOW TO VIEWPORTTRANSFORMATION The overall transformation:

Translate the window to the origin.Scale it to the size of the viewport.Translate it to the viewport location.

Page 45: Computer Graphic - Transformations in 2D

MAPPING WINDOW TO VIEWPORTTRANSFORMATION

Page 46: Computer Graphic - Transformations in 2D

MAPPING WINDOW TO VIEWPORTTRANSFORMATION EX: Given (xmin=3, ymin=12, xmax=8, ymax=16) (umin=1, vmin=2, umax=2, vmax=4) Sx=1/5,Sy=1/2Map from window to view port.0 0 -

30 1 -

120 0

1

1/5 0 0

0 1/2 0

0 0 1

1 0 1

0 1 2

0 0 1

Page 47: Computer Graphic - Transformations in 2D

MAPPING WINDOW TO VIEWPORTTRANSFORMATION Map from window to view port.

(xmin=20, ymin=10, xmax=40, ymax=50) (umin=5, vmin=4, umax=10, vmax=12) Sx=(10-5)/(40-20)= 0.25, Sy=(12-4)/(50-10)=0.21 0 -

20 0 1 -10

0 0 1

.25 0 0

0 .2 0

0 0 1

1 0 5

0 1 4

0 0 1