1 / 84

Transformations

Transformations. We want to be able to make changes to the image larger/smaller rotate move This can be efficiently achieved through mathematical operations known as transformations. Transformations. We will transform the endpoints only

poolek
Télécharger la présentation

Transformations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Transformations • We want to be able to make changes to the image • larger/smaller • rotate • move • This can be efficiently achieved through mathematical operations known as transformations

  2. Transformations • We will transform the endpoints only • If we then draw the (new) lines between the transformed endpoints, we get the transformed image • This only works for certain types of transformations known as affine transformations • Such transformations preserve lines and distances and relative proportions • i.e., points on the same line before remain on the same line after an affine transformation

  3. Transformations • Three transformations that fall into this category are • Scaling • Rotation • Translation

  4. But First… • We’re going to need a bit of math… • … just enough to get the general idea

  5. Matrices • Matrix • 2 dimensional array (of numbers) • m x n matrix • m rows • n columns

  6. Matrices • Matrix • 2 dimensional array (of numbers) • m x n matrix • m rows • n columns • xij is the entry at row I, column j 2 rows 3 columns

  7. Some Examples • a 2 x 1 matrix • A 3 x 3 matrix • 1 x 2 matrix • 2 x 2 matrix

  8. Matrix Multiplication • In matrix multiplication, elements in the result matrix are obtained by taking the sums of the products of the elements of a row of the first with a column of the second • Calculating the sum of products of the ith row with the jth column produces the element at location [i][j]

  9. Matrix Multiplication

  10. Matrix Multiplication • In order to calculate a sum of products, the length of a row of the first matrix must be equal to the length of a column in the second matrix • length of a row = # columns • length of a column = # rows 3 columns row column 3 rows

  11. Matrix Multiplication • Can therefore only multiply m x k matrix with a k x n matrix • # of columns of first operand = # rows of second operand • Results in an m x n matrix 3 rows 3 rows 2 rows 4 columns 2 columns 4 columns

  12. An Example

  13. An Example (1  1) + (2  5) = 1 + 10 = 11

  14. An Example (1  2) + (2  6) = 2 + 12 = 14

  15. An Example (1  3) + (2  7) = 3 + 14 = 17

  16. An Example (1  4) + (2  8) = 4 + 16 = 20

  17. An Example (3  1) + (4  5) = 3 + 20 = 23

  18. An Example (3  2) + (4  6) = 6 + 24 = 30

  19. An Example (3  3) + (4  7) = 9 + 28 = 37

  20. An Example (3  4) + (4  8) = 12 + 32 = 44

  21. An Example (5  1) + (6  5) = 5 + 30 = 35

  22. An Example (5  2) + (6  6) = 10 + 36 = 46

  23. An Example (5  3) + (6  7) = 15 + 42 = 57

  24. An Example (5  4) + (6  8) = 20 + 48 = 68

  25. The Algorithm multiply(a, b) // a = M x K b = K x N result = new Matrix(m, n) for i = 1, M // M rows in a for j = 1, N // N columns in b result[i][j] = 0 for k = 1, K // K columns in a, rows in b result[i][j] += a[i, k] * b[k, j] return result

  26. What’s this got to do with us? • Matrices are a convenient and powerful way of expressing transformations • Allows complex sequences of complex transformations to be easily expressed and calculated • Let’s look at one simple transformation and see how

  27. Scaling • Transformation that enlarges or reduces image

  28. Scaling • Scaling can be done in the x-coordinate …

  29. Scaling • … in the y-coordinate …

  30. Scaling • … or in both …

  31. Scaling • We could simply say that • To scale in the x-coordinate, multiply by the scaling factor • that is, to scale to double the size in the x-coordinate, simply multiply the x-coordinate of all endpoints by 2 • Similarly to reduce the size • Similarly in the y-direction

  32. Simple enough • The above works and is totally adequate to scale • Why complicate matters? • Why even consider doing anything else?

  33. Multiple Transformations • Will want to • scale and rotate • translate, rotate and translate again • etc,… • Don’t want to have to apply each transformation individually

  34. Using Matrices • Let’s represent a point as a 1 x 2 matrix • We often call a 1 x n matrix a vector • Let’s reexamine multiplying this vector with a 2 x 2 matrix

  35. Applying Matrix Multiplication • We can think of the above multiplication taking the point (x, y) and producing a new point (x', y') where • x' = ax + cy • y' = bx + dy

  36. Transformation Matrix • We see that when a 2 x 2 matrix • is multiplied with a 1 x 2 vector representing a point … • … a new 1 x 2 vector is produced … • … that can be though of as representing a new point • We thus call the 2 x 2 matrix a transformation matrix • The matrix when applied to the original point transforms it into the new point

  37. Where Matrix Multiplication Comes In • Looking at the above we can get a sense of how the 2 x 2 matrix transforms the point: y' x' b: the effect of the original x-value on the new y-value a: the effect of the original x-value on the new x-value d: the effect of the original y-value on the new y-value c: the effect of the original y-value on the new x-value

  38. An Trivial Example • Following this line of thought, the matrix: b: the original x-value has no effect on the new y-value a: the original x-value has an identity effect on the new x-value d: the original y-value has an identity effect on the new y-value c: the original y-value has no effect on new x-value should transform the original point back to itself

  39. A Trivial Example • To see that this is so: • The matrix • is called the identity matrix

  40. Applying this to Scaling • Using this approach, let’s try to produce some transformation matrices for scaling • Let’s first scale the x-coordinate alone • We’d like • the new (transformed) x-value • to be a factor of the original x-value • not be affected by the original y-value • the new (transformed) y-value • to be identical to the original x-value • (not be affected by the original x-value)

  41. Doubling the Size in the x-Direction • As an example, to double the x-value • We’d like • the new (transformed) x-value • to be 2 times the original x-value • not be affected by the original y-value • the new (transformed) y-value • to be identical to the original x-value • (not be affected by the original x-value)

  42. The Effect of the Transformation Matrix • By recalling how the transformation matrix affects the original point, we can come up with the following ‘educated’ guess b: the effect of the original x-value on the new y-value a: the effect of the original x-value on the new x-value d: the effect of the original y-value on the new y-value c: the effect of the original y-value on the new x-value

  43. Checking Our Guess • So we see indeed, our hunch was correct! • Doing the multiplication produces

  44. Other Scaling Matrices • The same line of reasoning produces • The general transformation matrix for scaling in the x-direction alone • The general transformation matrix for scaling in the y-direction alone • The general transformation matrix for scaling in both directions For practice, verify these by doing the matrix multiplications!!

  45. Applying Multiple Transformations • If we multiply the ‘scale x’ matrix and the ‘scale y’ matrix, we obtain the scale matrix for both

  46. Applying Multiple Transformations • Similarly, if we multiply the ‘double size’ matrix and the ‘half size’ matrix, we obtain the identity matrix

  47. Applying Multiple Transformations • Although we won’t prove it, it can be shown that multiplying two transformation matrices produces a transformation matrix whose effect is the first transformation followed by the second! • This result extends to three or more as well

  48. Applying Multiple Transformations • This is a valuable result because it means we can achieve the effect of several transformation by applying a single matrix to our image rather than having to perform a sequence of transforms.

  49. Rotations About the Origin • The next transformation involves rotating the endpoints (and therefore the line) about the point (0, 0)

  50. Rotations About the Origin • Again, we will try to derive the transformation matrix • This one is a bit more involved and requires some trigonometry and geometry

More Related