affine transformations
play

Affine transformations Brian Curless CSE 557 Fall 2015 1 Reading - PowerPoint PPT Presentation

Affine transformations Brian Curless CSE 557 Fall 2015 1 Reading Required: Shirley, Sec. 2.4, 2.7 Shirley, Ch. 5.1-5.3 Shirley, Ch. 6 Further reading: Foley, et al, Chapter 5.1-5.5. David F. Rogers and J. Alan Adams,


  1. Affine transformations Brian Curless CSE 557 Fall 2015 1

  2. Reading Required:  Shirley, Sec. 2.4, 2.7  Shirley, Ch. 5.1-5.3  Shirley, Ch. 6 Further reading:  Foley, et al, Chapter 5.1-5.5.  David F. Rogers and J. Alan Adams, Mathematical Elements for Computer Graphics , 2 nd Ed., McGraw- Hill, New York, 1990, Chapter 2. 2

  3. Geometric transformations Geometric transformations will map points in one space to points in another: ( x' , y‘ , z‘ ) = f ( x , y , z ) . These transformations can be very simple, such as scaling each coordinate, or complex, such as non- linear twists and bends. We'll focus on transformations that can be represented easily with matrix operations. 3

  4. Vector representation We can represent a point , p = ( x, y ), in the plane or p = ( x, y, z ) in 3D space   x   x    as column vectors   y     y     z   x y  as row vectors   x y z 4

  5. Canonical axes 5

  6. Vector length and dot products 6

  7. Vector cross products 7

  8. Representation, cont. We can represent a 2-D transformation M by a matrix   a b     c d If p is a column vector, M goes on the left:  p' M p      ' x a b x            y ' c d y If p is a row vector, M T goes on the right:  T p' p M   a c      x ' y ' x y     b d We will use column vectors . 8

  9. Two-dimensional transformations Here's all you get with a 2 x 2 transformation matrix M :      x ' a b x            y ' c d y So:   x ' ax by   y ' cx dy We will develop some intimacy with the elements a, b, c, d … 9

  10. Identity Suppose we choose a = d = 1, b = c = 0:  Gives the identity matrix:   1 0    0 1   Doesn't move the points at all 10

  11. Scaling Suppose we set b = c = 0 , but let a and d take on any positive value:  Gives a scaling matrix:   a 0     0 d  Provides differential (non-uniform) scaling in x and y :  x ' ax  y ' dy   2 0    0 2    1 2 0    0 2  11

  12. ______________ Suppose we keep b = c = 0 , but let either a or d go negative. Examples:      1 0 1 0          0 1 0 1 12

  13. ____________ Now let's leave a = d = 1 and experiment with b . . . The matrix   1 b     0 1 gives:   x ' x by  y ' y   1 1    0 1  13

  14. Effect on unit square Let's see how a general 2 x 2 transformation M affects the unit square:   a b        p q r s p' q' r' s'   c d       0 1 1 0 0 a b a a b b             c d 0 0 1 1 0 c c d d 14

  15. Effect on unit square, cont. Observe:  Origin invariant under M  M can be determined just by knowing how the corners (1,0) and (0,1) are mapped  a and d give x - and y -scaling  b and c give x - and y -shearing 15

  16. Rotation From our observations of the effect on the unit square, it should be easy to write down a matrix for “rotation about the origin”:    1     0    0     1 Thus,           M R ( )      16

  17. Degrees of freedom For any transformation, we can count its degrees of freedom – the number of independent (though not necessarily unique) parameters needed to specify the transformation. One way to count them is to add up all the apparently free variables and subtract the number of equations that constrain them. How many degrees of freedom does an arbitrary 2X2 transformation have? How many degrees of freedom does a 2D rotation have? 17

  18. Linear transformations The unit square observations also tell us the 2x2 matrix transformation implies that we are representing a point in a new coordinate system:  p' p M    a b x        c d y   x    u v     y     u v x y where u =[ a c ] T and v =[ b d ] T are vectors that define a new basis for a linear space . The transformation to this new basis (a.k.a., change of basis) is a linear transformation . 18

  19. Limitations of the 2 x 2 matrix A 2 x 2 linear transformation matrix allows  Scaling  Rotation  Reflection  Shearing Q : What important operation does that leave out? 19

  20. Affine transformations In order to incorporate the idea that both the basis and the origin can change, we augment the linear space u , v with an origin t . We call u , v , and t (basis and origin) a frame for an affine space . Then, we can represent a change of frame as:      p' x u y v t This change of frame is also known as an affine transformation . How do we write an affine transformation with matrices? 20

  21. Homogeneous coordinates Idea is to loft the problem up into 3-space, adding a third component to every point:   x   x      y     y     1 Adding the third “ w ” component puts us in homogenous coordinates . And then transform with a 3 x 3 matrix:         x ' x 1 0 t x x            y ' T ( ) t y 0 1 t y        y                 w ' 1 0 0 1 1   1 0 1   0 1 1 2      0 0 1  . . . gives translation ! 21

  22. Anatomy of an affine matrix The addition of translation to linear transformations gives us affine transformations . In matrix form, 2D affine transformations always look like this:   a b t   A x   t     M c d t   y  0 0 1     0 0 1  2D affine transformations always have a bottom row of [0 0 1]. An “affine point” is a “linear point” with an added w -coordinate which is always 1:   x   p     lin p   y   aff   1     1 Applying an affine transformation gives another affine point:    A p t   lin M p  aff  1  22

  23. Rotation about arbitrary points Until now, we have only considered rotation about the origin. With homogeneous coordinates, you can specify a rotation,  , about any point q = [ q x q y ] T with a matrix. 1. Translate q to origin 2. Rotate 3. Translate back Note: Transformation order is important!! 23

  24. Points and vectors Vectors have an additional coordinate of w = 0. Thus, a change of origin has no effect on vectors. Q : What happens if we multiply a vector by an affine matrix? These representations reflect some of the rules of affine operations on points and vectors:  vector + vector   scalar vector  point - point  point + vector  point + point One useful combination of affine operations is:   p ( ) t p t u o Q : What does this describe? 24

  25. Barycentric coordinates A set of points can be used to create an affine frame. Consider a triangle ABC and a point P : We can form a frame with an origin C and the vectors from C to the other vertices:      u B A v C A t A We can then write P in this coordinate frame:      u v t P  The coordinates (  ,  ,  ) are called the barycentric coordinates of P relative to A , B , and C . 25

  26. Computing barycentric coordinates Writing out the barycentric combination of points         A B C P x x x x                      A B C P A B C P         y y y y          1   1   1   1  rearrange the left-hand side into matrix form                  A B C A B C A B C x x x x x x x x x                         A B C A B C A B C            y y y y y y y y y                   1   1   1     1 1 1   to get a system of linear eqations       A B C P x x x x               A B C P A B C P      y y y y        1 1 1    1  and solve for the unknowns with Cramer’s Rule: P B C A P C A B P x x x x x x x x x P B C A P C A B P y y y y y y y y y 1 1 1 1 1 1 1 1 1       A B C A B C A B C x x x x x x x x x A B C A B C A B C y y y y y y y y y 1 1 1 1 1 1 1 1 1 26

Recommend


More recommend