1 / 66

Transformations

Transformations. Dr. Amy Zhang. Reading. • Hill, Chapter 4, Section 4.5 • Hill, Chapter 5. Vectors and Points Recap. Vectors, basis, frames, and points:. Geometric Transformations. Functions to map points from one place to another Geometric transformations can be applied to:

tiara
Download Presentation

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 Dr. Amy Zhang

  2. Reading • • Hill, Chapter 4, Section 4.5 • • Hill, Chapter 5

  3. Vectors and Points Recap • Vectors, basis, frames, and points:

  4. Geometric Transformations • Functions to map points from one place to another • Geometric transformations can be applied to: • Drawing primitives (lines, triangles) • Pixel coordinates of an image

  5. Use of Transformations • Map points from one coordinate system to points in another coordinate system • Change the shape of objects • Position objects in a scene • Create multiple copies of objects in the scene • Projection for virtual cameras • Animations

  6. Outline • Matrix Algebra * • Linear Transformations • Multiple Transformations • OpenGL Geometry Transformations

  7. Matrices • Matrix: An array of elements that follow certain rules. • We use uppercase letters to indicate a matrix: • A matrix that has n rows and m columns is said to be of order n x m. • We always mention the numbers of rows first.

  8. Square Matrices • A matrix is square if the number of row equals the number of columns, i.e., if n = m. • Common square matrices: • Zero matrix: a square matrix with all 0’s. • Identity matrix: all 0’s, except elements along the main diagonal which are 1’s. • The diagonal of a square matrix:

  9. Row and Column Vectors • A 1 x n matrix is called a row vector. • A n x 1 matrix is called a column vector. • We will use lower case bold letters to indicate vectors. • In graphics (and in this class) we mostly use column vectors.

  10. Transpose of a Matrix • The transpose of A is written as AT. • ATis formed by interchanging rows and columns of matrix A. • The transpose of a row vector is a column vector.

  11. Addition and Subtraction • Addition and subtraction of matrices is defined by addition and subtraction of their corresponding elements. • Note: We can only add / subtract matrices of the same order.

  12. Multiplication by a Scalar • To multiply a matrix by a scalar, we multiply each element of the matrix by the number. • Examples:

  13. Matrix x Vector Multiplication • If v is a column vector, M goes on the left: • If v is a row vector, MTgoes to the right: • We will use column vectors.

  14. Matrix x Column Vector • We say the column vector v is pre‐multiplied by M. • The number of rows in M is equal to the number of elements in v.

  15. Matrix x Column Vector • The product Mv is a linear combination of the columns:

  16. Examples • Compute the matrix‐vector product:

  17. Matrix Multiplication • Just apply matrix‐vector multiplication a few times. • Remember: the new vector ( ) is a linear combination of columns.

  18. Just apply matrix‐vector multiplication a few times.

  19. Just apply matrix‐vector multiplication a few times.

  20. Matrix Multiplication • Examples:

  21. Properties of Matrix Multiplication • (AB) C = A (BC) • A (B + C) = AB + AC • A (sB) = sAB, where s is a scalar. • (AB)T = BT AT • But: • Example:

  22. Outline • Matrix Algebra • Linear Transformations • Multiple Transformations • OpenGL Geometry Transformations • The Viewing Transformation

  23. Linear Transformations • A linear transformation L of vectors is just a mapping from v to L(v) that satisfies the following properties: • We can use matrices to express linear transformations of points:

  24. Notational Convention • Consider the point P in frame • We will use M to mean “transformed” • The point is transformed with respect to the basis that appears immediately to the left of the transformation

  25. Translations glTranslatef(dx, dy, dz);

  26. Translations • We have already see how points can be displaced: • For every translation, there exists an inverse function which undoes the translation: • There also exists a special translation, called the identity, that leaves every point unchanged:

  27. Groups and Composition • For translations: • There exists an inverse mapping for each function • There exists an identity mapping • When these conditions are met by any class of functions, that class is closed under composition • i.e., any series of translations can be composed to a single translation with matrix multiplication • Mathematically speaking, translations form an algebraic group

  28. Rotations • Rotation about the origin glRotatef(theta, vx, vy, vz); theta in degrees, (vx, vy, vz) define axis of rotation

  29. Rotations • Counter‐clockwise rotation by about the z-axis: • Rotation about the x- and y-axis:

  30. Orthonormal Matrices • The rotation matrix M has certain properties: • The norm of each row/column is one: • The rows/columns are orthogonal: • We say that rotation matrices are orthonormal. • The inverse of an orthonormal matrix is its transpose

  31. Rotation about an Axis • • Rotation about an arbitrary unit vector k = [kx, ky, kz] (Rodrigues Formula):

  32. Rigid Body Transformations • The union of translation and rotation functions defines the Euclidean group, also known as rigid body transformations • Properties of rigid body transformations: • They preserve distances • They preserve angles

  33. Scaling • Scaling about the origin: glScalef( sx, sy, sz); • Each vertex is moved: • sx times farther from the origin in x‐direction • sy times farther from the origin in y‐direction • sz times farther from the origin in z‐direction

  34. Uniform Scaling • Uniform scaling by:

  35. Reflection about X and Y • Reflection about x-axis: • Reflection about y-axis: • Reflection about x- and y-axis:

  36. Similarity Transformations • Add reflections and uniform scaling to the rigid body transformations • Properties of similarity transformations: • Angles are preserved • Distances between points are changed by a fixed ratio • Maintains a “similar” shape (similar triangles, circles map to circles, etc.)

  37. Non‐Uniform Scaling • An unbalanced scaling distorts shape:

  38. Skews or Shears • Along x: Along y: • Shears matrices have a determinant of 1: • The area of the sheared figure stays the same.

  39. 3D Shears • Shears along different planes: along y-z plane, along x-z plane, along x-y plane • Shears parallel to different axis: along x-axis, along y-axis, along z-axis

  40. No OpenGL statement: we can load and multiply by arbitrary matrices glLoadMatrixf(m) glMultMatrixf(m) • The matrix m is a one dimension array of 16 elements which are the components of the desired 4 x 4 matrix stored by columns • In glMultMatrixf, m multiplies the existing matrix on the right

  41. Matrix Stacks • In many situations we want to save transformation matrices for use later • Traversing hierarchical data structures • Avoiding state changes when executing display lists • OpenGL maintains stacks for each type of matrix • Access present type (as set by glMatrixMode) by glPushMatrix() glPopMatrix()

  42. Affine Transformations • Affine transformations add non-uniform scales and shears to the similarity transformations • Properties of affine transformations: • They preserve our selected plane (sometimes called the affine plane) • They preserve parallel lines • Affine transformations are what we will mostly deal with • Are there other linear transformations?

  43. Projective Transformation • The most general linear transformation that can be applied to 2D points • There is something different about this group of Transformations

  44. Types of Transformations • Rigid Body (preserve distances) • Translation and rotations • Similarity (preserve angles) • Reflections • Uniform scale • Affine (preserve parallel lines) • Non-uniform scales • Shears • Projective (lines remain lines) • Non-linear (lines become curves) • Twists, bends, warps, morphs, ...

  45. Outline • Matrix Algebra • Linear Transformations • Multiple Transformations • OpenGL Geometry Transformations

  46. Multiple Transformations • It is quite frequent that we want to apply more than one transformation. • Example: • Translate by vector t. • Rotate by degrees about the origin. • If we call these transformations T and R, and the resulting transformation Q, we get:

  47. Combined Matrix Expression • Each transformation is expressed in matrix form: • We can compute the combined matrix as follows: • The matrices appear in reverse order of how the transformations are applied

  48. Matrix Multiplication • The new, combined matrix is: • Again: This means we are performing the translation with MT first, followed by the rotation with MR • The order matters AB is unequal to BA

  49. The Order Matters

  50. 2D Rotation about a Point • Translate by t = [‐h, ‐k] • Rotate CCW around origin by . • Translate by t’ = [h, k]

More Related