Download presentation
Presentation is loading. Please wait.
Published byDominick McBride Modified over 9 years ago
1
25 May 201525 May 201525 May 2015Week 5-2D Transformations1 2D Transformations By: KanwarjeetSingh
2
25 May 201525 May 201525 May 2015Week 5-2D Transformations2 Matrix math Is there a difference between possible representations?
3
25 May 201525 May 201525 May 2015Week 5-2D Transformations3 Pick a convention 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 (to use some library, for instance)? How could we do that?
4
25 May 201525 May 201525 May 2015Week 5-2D Transformations4 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 = p x + t x p ' y = p y + t y or in matrix form: P' = P + T
5
25 May 201525 May 201525 May 2015Week 5-2D Transformations5 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. We can write the components: p ' x = p x cos – p y sin p ' x = p x cos – p y sin p ' y = p x sin + p y cos p ' y = p x sin + p y cos or in matrix form: P' = R P
6
25 May 201525 May 201525 May 2015Week 5-2D Transformations6 More rotation Another convention, we’ll take to be counterclockwise, as in our example. R, the rotation matrix, looks like:
7
25 May 201525 May 201525 May 2015Week 5-2D Transformations7 Scaling Scaling alters the size of an object. Scales are about the the origin. Scale factors between 0 and 1 shrink objects. Scale factors greater than 1 enlarge objects. We can write the components: p ' x = s x p x p ' x = s x p x p ' y = s y p y or in matrix form: P' = S P The scale factors need not be the same in each direction.
8
25 May 201525 May 201525 May 2015Week 5-2D Transformations8 More scaling We write a scale matrix as: Scaling also translates objects; away from the origin if the scale factor is greater than 1, or towards the origin if the scale factor is less than 1. What does scaling by 1 do? What is that matrix called? What does scaling by a negative value do?
9
25 May 201525 May 201525 May 2015Week 5-2D Transformations9 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.
10
25 May 201525 May 201525 May 2015Week 5-2D Transformations10 A less than obvious solution 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 ). We can always map back to the original 2D point by dividing by 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. x,y w (0,0,0) w = 1 (x,y,1)
11
25 May 201525 May 201525 May 2015Week 5-2D Transformations11 So what? Well, now we can wedge some addition into our multiplicative matrix. Our point now has three coordinates. So our matrix is needs to be 3x3. We want a matrix which gives us:
12
25 May 201525 May 201525 May 2015Week 5-2D Transformations12 Now what?
13
25 May 201525 May 201525 May 2015Week 5-2D Transformations13 And? Rotations:Scales:
14
25 May 201525 May 201525 May 2015Week 5-2D Transformations14 What of it? We can represent any of our three 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?
15
25 May 201525 May 201525 May 2015Week 5-2D Transformations15 Is matrix multiplication associative?
16
25 May 201525 May 201525 May 2015Week 5-2D Transformations16 Is matrix multiplication commutative?
17
25 May 201525 May 201525 May 2015Week 5-2D Transformations17 Order of operations So, it does matter. Let’s look at an example:
18
25 May 201525 May 201525 May 2015Week 5-2D Transformations18 Useful compositions Rotate about a pivot point: T(pivot) R( ) T(–pivot) P Scale about a fixed point: T(fixed) S(scale) T(–fixed) P General scaling directions: R(– ) S(scale) R( ) P
19
25 May 201525 May 201525 May 2015Week 5-2D Transformations19 Other transformations Reflection: x-axisy-axis x-axisy-axis
20
25 May 201525 May 201525 May 2015Week 5-2D Transformations20 Other transformations Reflection: origin line x=y origin line x=y
21
25 May 201525 May 201525 May 2015Week 5-2D Transformations21 Other transformations Shear: x-direction y-direction
22
25 May 201525 May 201525 May 2015Week 5-2D Transformations22 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
23
25 May 201525 May 201525 May 2015Week 5-2D Transformations23 Matrix multiplication So we can do a lot with one basic operation. We’d better make this operation as fast as possible. Let’s start with the form of the matrix: Why haven’t we used the bottom row of the matrix?
24
25 May 201525 May 201525 May 2015Week 5-2D Transformations24 Matrix multiplication Since we don’t use the bottom row of the 2D transformation matrix, we could have a special transform composition operation:
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.