computer graphic - transformations in 2d

Post on 11-Apr-2017

14 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

COMPUTER GRAPHICSCH03 – 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.

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.

MULTIPLYING MATRICES

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

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

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)

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

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)

SHEARING

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

ROTATIONS

Positive Rotations: counter clockwise about the origin.

ROTATIONS

With clockwise.

SPECIAL CASES OF ROTATIONS

θ (in degrees) Matrix T

90

180

270 or -90

360 or 0

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

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.

EXAMPLE - TRANSLATIONS

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.

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

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.

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)

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

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)

SCALING ABOUT AN ARBITRARYPOINT P IN SPACE

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

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

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)

ROTATION ABOUT AN ARBITRARYPOINT P IN SPACE

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

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

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.

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

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

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

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

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

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

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

T1 T2Translation TranslationScaling ScalingRotation RotationUniform Scaling Rotation

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

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

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

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

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

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.

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.

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.

MAPPING WINDOW TO VIEWPORTTRANSFORMATION

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

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

top related