COMP 175 COMPUTER GRAPHICS. Lecture 04: Transform 1. COMP 175: Computer Graphics February 9, Erik Anderson 04 Transform 1

Similar documents
CSE 167: Introduction to Computer Graphics Lecture #2: Linear Algebra Primer

CSE 167: Introduction to Computer Graphics Lecture #2: Linear Algebra Primer

Course 2BA1: Hilary Term 2007 Section 8: Quaternions and Rotations

Notes on multivariable calculus

Problem Set # 1 Solution, 18.06

(arrows denote positive direction)

x 1. x n i + x 2 j (x 1, x 2, x 3 ) = x 1 j + x 3

Review of Coordinate Systems

Transformations. Chapter D Transformations Translation

Mathematics for 3D Graphics

Hilbert s Metric and Gromov Hyperbolicity

CS123 INTRODUCTION TO COMPUTER GRAPHICS. Linear Algebra /34

Lagrange Multipliers

4.1 Distance and Length

Vector Geometry. Chapter 5

Exam 1 Review SOLUTIONS

Course MA2C02, Hilary Term 2010 Section 4: Vectors and Quaternions

Math 3108: Linear Algebra

03 - Basic Linear Algebra and 2D Transformations

Matrix-Vector Products and the Matrix Equation Ax = b

1 Matrices and matrix algebra

Chapter 8. Rigid transformations

Definitions and Properties of R N

Lecture 4: Affine Transformations. for Satan himself is transformed into an angel of light. 2 Corinthians 11:14

Linear Algebra March 16, 2019

THE RING OF POLYNOMIALS. Special Products and Factoring

Solutions to Selected Questions from Denis Sevee s Vector Geometry. (Updated )

Span and Linear Independence

Group, Rings, and Fields Rahul Pandharipande. I. Sets Let S be a set. The Cartesian product S S is the set of ordered pairs of elements of S,

Rotation of Axes. By: OpenStaxCollege

Chapter 2. Vectors and Vector Spaces

CS123 INTRODUCTION TO COMPUTER GRAPHICS. Linear Algebra 1/33

MAE 323: Lecture 1. Review

Matrices and Deformation

MAC Module 5 Vectors in 2-Space and 3-Space II

Midterm 1 Review. Distance = (x 1 x 0 ) 2 + (y 1 y 0 ) 2.

NOTES ON LINEAR ALGEBRA CLASS HANDOUT

- 1 - Items related to expected use of technology appear in bold italics.

Volume in n Dimensions

3 Algebraic Methods. we can differentiate both sides implicitly to obtain a differential equation involving x and y:

(A B) 2 + (A B) 2. and factor the result.

2 Systems of Linear Equations

8-1: Backpropagation Prof. J.C. Kao, UCLA. Backpropagation. Chain rule for the derivatives Backpropagation graphs Examples

Mathematics 308 Geometry. Chapter 2. Elementary coordinate geometry

6. Linear Transformations.

Lecture 8: Coordinate Frames. CITS3003 Graphics & Animation

Topic 14 Notes Jeremy Orloff

Homework 1/Solutions. Graded Exercises

LINEAR ALGEBRA: THEORY. Version: August 12,

Designing Information Devices and Systems I Spring 2019 Lecture Notes Note 2

A DARK GREY P O N T, with a Switch Tail, and a small Star on the Forehead. Any

Linear transformations

Linear Algebra I. Skills, Concepts and Applications. Gregg Waterman Oregon Institute of Technology

Computer Graphics: 2D Transformations. Course Website:

A geometric interpretation of the homogeneous coordinates is given in the following Figure.

Dot product. The dot product is an inner product on a coordinate vector space (Definition 1, Theorem

Sometimes the domains X and Z will be the same, so this might be written:

FINAL EXAM STUDY GUIDE

LESSON 6.2 POLYNOMIAL OPERATIONS I

Section 1.8/1.9. Linear Transformations

Citation for published version (APA): Ruíz Duarte, E. An invitation to algebraic number theory and class field theory

August 23, 2017 Let us measure everything that is measurable, and make measurable everything that is not yet so. Galileo Galilei. 1.

Omm Al-Qura University Dr. Abdulsalam Ai LECTURE OUTLINE CHAPTER 3. Vectors in Physics

Vectors and Matrices Statistics with Vectors and Matrices

Contents. 1 Vectors, Lines and Planes 1. 2 Gaussian Elimination Matrices Vector Spaces and Subspaces 124

Notes on Linear Algebra I. # 1

Intro Vectors 2D implicit curves 2D parametric curves. Graphics 2012/2013, 4th quarter. Lecture 2: vectors, curves, and surfaces

1.1 Single Variable Calculus versus Multivariable Calculus Rectangular Coordinate Systems... 4

CSE4030 Introduction to Computer Graphics

Introduction - Motivation. Many phenomena (physical, chemical, biological, etc.) are model by differential equations. f f(x + h) f(x) (x) = lim

Mathematics 1EM/1ES/1FM/1FS Notes, weeks 18-23

Vectors. Vector Practice Problems: Odd-numbered problems from

LESSON 7.1 FACTORING POLYNOMIALS I

Let f(x) = x, but the domain of f is the interval 0 x 1. Note

Linear Algebra Review. Fei-Fei Li

Math 241, Exam 1 Information.

8.4. Systems of Equations in Three Variables. Identifying Solutions 2/20/2018. Example. Identifying Solutions. Solving Systems in Three Variables

Chapter 2: Matrices and Linear Systems

Problem 1: (3 points) Recall that the dot product of two vectors in R 3 is

Matrices Gaussian elimination Determinants. Graphics 2009/2010, period 1. Lecture 4: matrices

Why Transforms? Want to animate objects and camera Translations Rotations Shears And more.. Want to be able to use projection transforms

Chapter 3: Complex Numbers

Mathematics for Graphics and Vision

Vectors and Matrices

LESSON 6.2 POLYNOMIAL OPERATIONS I

Lecture 4: Affine Transformations. for Satan himself is transformed into an angel of light. 2 Corinthians 11:14

4.5 Integration of Rational Functions by Partial Fractions

Designing Information Devices and Systems I Fall 2017 Official Lecture Notes Note 2

MTH 306 Spring Term 2007

2011 Cayley Contest. The CENTRE for EDUCATION in MATHEMATICS and COMPUTING. Solutions. Thursday, February 24, (Grade 10)

Lecture 2: Vector-Vector Operations

A primer on matrices

11.1 Vectors in the plane

Updated: January 16, 2016 Calculus II 7.4. Math 230. Calculus II. Brian Veitch Fall 2015 Northern Illinois University

Matrices and Vectors

x n -2.5 Definition A list is a list of objects, where multiplicity is allowed, and order matters. For example, as lists

Stress, Strain, Mohr s Circle

Calculus Vector Principia Mathematica. Lynne Ryan Associate Professor Mathematics Blue Ridge Community College

CHAPTER 4 Stress Transformation

1 Last time: multiplying vectors matrices

Transcription:

Lecture 04: Transform COMP 75: Computer Graphics February 9, 206 /59

Admin Sign up via email/piazza for your in-person grading Anderson@cs.tufts.edu 2/59

Geometric Transform Apply transforms to a hierarchy of objects / vertices Specifically, translate (T), rotate (R), scale (S) 3/59

Concepts in Linear Algebra 3D Coordinate System Vectors and Points in 3D space Dot and Cross products Matrix notation and manipulation with other matrices, 3D vectors, and 3D points Homogeneous coordinates (x, y, z, w) Associativity prosperity of matrix multiplication (But NOT communicative property!!) Associative => (5 + 2) + = 5 + (2 + ) Commutative => 5 +2 + = + 2 + 5 Matrix transpose and inverse 4/59

Vector and Matrix Notation Let s say I need: 6 apples, 5 cans of soup, box of tissues, 2 bags of chips 4 Stores, A, B, C, and D (Stop and Shop, Shaw s, Trader Joe s, and Whole Foods) apple can of soup box of tissue bag of chips Stop and Shop $0.20 $0.93 $0.64 $.20 Shaw s $0.65 $0.82 $0.75 $.40 Trader Joe s $0.95 $.0 $0.52 $3.20 Whole Foods $.5 $0.20 $.25 $2.25 5/59

Shopping Example Which store do you go to? Find the total cost from each store Find the minimum of the four stores More formally, let q i denote the quantity of item i. Let A i be the unit price of item i at store A. Then: totalcost A = σ4 i= A i q i q = 6 q 2 = 5 q 3 = q 4 = 2 q q2 q3 q4 A $0.20 $0.93 $0.64 $.20 B $0.65 $0.82 $0.75 $.40 C $0.95 $.0 $0.52 $3.20 D $.5 $0.20 $.25 $2.25 Total_A = (0.2 * 6) + (0.93 * 5) + (0.64 * ) + (.20 * 2) = 8.89 6/59

Matrix Form q = 6 q 2 = 5 q 3 = q 4 = 2 : Let s rewrite that in matrix form: q = 6 5 2 q q2 q3 q4 A $0.20 $0.93 $0.64 $.20 B $0.65 $0.82 $0.75 $.40 C $0.95 $.0 $0.52 $3.20 D $.5 $0.20 $.25 $2.25 For the prices, let s also rewrite it: 0.20 0.93 0.64.20 0.65 0.82 0.75.40 0.95.0 0.52 3.20.5 0.20.25 2.25 7/59

Using the Matrix Notation P all = totalcost A totalcost B = totalcost C totalcost D 0.20 0.93 0.64.20 0.65 0.82 0.75.40 0.95.0 0.52 3.20.5 0.20.25 2.25 6 5 2 Determine totalcost vector using row-column multiplication Dot product is the sum of the pairwise multiplications Apply this operation to rows of prices and column of quantities a b c d x y z w = ax + by + cz + dw 8/59

Reminder: Matrix Multiplication Each entry in the resulting matrix L is the dot product of a row of M with a column of N: L = MN l xx l xy l xz l xw l yx l yy l yz l yw l zx l zy l zz l zw l wx l wy l wz l ww = m xx m xy m xz m xw m yx m yy m yz m yw m zx m zy m zz m zw m wx m wy m wz m ww n xx n xy n xz n xw n yx n yy n yz n yw n zx n zy n zz n zw n wx n wy n wz n ww l xy = m xx n xy + m xy n yy + m xz n zy + m xw n wy Does L = MN and L = NM the same? 9/59

Using the Matrix Notation P all = totalcost A totalcost B = totalcost C totalcost D 0.20 0.93 0.64.20 0.65 0.82 0.75.40 0.95.0 0.52 3.20.5 0.20.25 2.25 6 5 2 TotalCost_A = (0.2 * 6) + (0.93 * 5) + (0.64 * ) + (.20 * 2) = 8.89 0/59

Identity Matrix What if our price matrix is of the following? 0 0 0 0 0 0 0 0 0 0 0 0 P all = totalcost A totalcost B = totalcost C totalcost D 0 0 0 0 0 0 0 0 0 0 0 0 6 5 2 /59

Identity Matrix What if our price matrix is of the following? 0 0 0 0 0 0 0 0 0 0 0 0 P all = totalcost A totalcost B = totalcost C totalcost D 0 0 0 0 0 0 0 0 0 0 0 0 6 5 2 = 6 5 2 We call this matrix the identity matrix 2/59

Identity Matrix What if our price matrix is of the following? 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 P all = totalcost A totalcost B = totalcost C totalcost D 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 6 5 2 3/59

Identity Matrix What if our price matrix is of the following? 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 P all = totalcost A totalcost B = totalcost C totalcost D 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 6 5 2 = 2 0 2 4 So this is a scaling matrix 4/59

Note! P all = totalcost A totalcost B = totalcost C totalcost D 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 6 5 2 = 2 0 2 4 In this example, notice the first column of the matrix is only affecting the first value of the result Why is this important?? 5/59

Note! P all = totalcost A totalcost B = totalcost C totalcost D 2 0 0 0 0 2 0 0 0 0 2 0 0 0 0 2 6 5 2 = 2 0 2 4 In this example, notice the first column of the matrix is only affecting the first value of the result So each column acts like a basis vector 6/59

Matrix Multiplication Explained (Visually) Suppose we have some matrix, like 2 want to know what it ll do to a 2D point., and we First, we multiply this matrix by two unit basis vectors, the x-axis and the y-axis: 2 0 = 0 2 = 2 Notice the results are the two columns of the matrix So let s visualize how the x and y axes have been transformed using our matrix 7/59

Matrix Multiplication Explained (Visually) Original Coordinate System After we apply the transform 8/59

Matrix Multiplication Explained (Visually) Let s test the new coordinate We see what this looks like in the system on a new point 2 3. original Cartesian coordinate system: This demonstrates the concept of change of basis. The row vectors of the new matrix define the new basis 9/59

Questions? 20/59

Transformations in Computer Graphics Elemental Transformations: Translation Rotation Scaling Shearing Of the four, three of them are affine and linear: Rotation, Scaling, and Shearing One is affine but non-linear Translation 2/59

Definitions of Transformations Projective Affine Linear Meaning that all linear transforms are also affine transforms, which are also projective transforms. However, not all affine transforms are linear transforms, and not all projective transforms are affine. Definitions: Linear Transform: Preserves all parallel lines Acts on a line to yield either a line or a point The vector [0, 0] is always transformed to [0, 0] Examples: scale and rotate 22/59

Definitions of Transformations Definitions: Linear Transform: Preserves parallel lines Acts on a line to yield either a line or a point The vector [0, 0] is always transformed to [0, 0] Examples: scale and rotate Affine Transform: Preserves parallel lines Acts on a line to yield either a line or a point The vector [0, 0] is NOT always transformed to [0, 0] Examples: translate Projective Transform: Does NOT preserve parallel lines Acts on a line to yield either a line or a point Examples: perspective camera (assignment 2) 23/59

2D Scaling Component-wise scalar multiplication of vectors v = α റv Where α is a scalar, and v = v x v and v = v x y v y Without using a matrix, we would have: v x = αv x and v y = αv y What would we do with using a matrix? 24/59

2D Scaling Component-wise scalar multiplication of vectors v = S റv Where S is a 2x2 matrix s x 0 0 s y, and v = v x v y v = v x v y and Now: v x = s x v x + 0v y and v y = 0v x + s y v y 25/59

2D Scaling, An Example Given S = 3 0, what happens to the following 2 0 2 vertices of the house? Y 6 s s x y 3 2 5 4 3 2 0 2 2 3 3 4 5 6 7 8 9 0 X 26/59

2D Scaling, An Example Given S = 3 0 0 2, what happens to the following? Y 6 s s x y 3 2 5 4 3 2 0 2 2 6 9 3 2 2 3 4 5 6 7 8 9 0 X Uh Something looks wrong 27/59

2D Scaling, An Example Given S = 3 0 0 2, what happens to the following? Y 6 0 What s the problem? s s 3 2 Lengths of the edges are not preserved! Angles between edges are not preserved! Except if S x = S y x y 5 4 3 2 6 9 2 3 2 2 2 3 4 5 6 7 8 9 0 X 28/59

2D Rotation Rotation of vectors around an angle q v = R θ v, where v = v x v y and v = v x v y R θ = cos θ sin θ sin θ cos θ, which means v x = v x cos θ v y sin θ v y = v x sin θ + v y cos θ 29/59

2D Rotation, Proof Derive R Ө by determining how e and e2 should be transformed e = 0 cosθ sinθ, first column of R θ e2 = 0 sinθ cosθ, second column of R θ Thus we obtain R θ : cosθ sinθ sinθ cosθ 30/59

2D Rotation, Proof 2 3/59

2D Rotation, Proof 2. y = y + y 2. From the triangle EY P, y x = tan θ 3. So y = y + x tan θ 4. Multiply both sides by cos θ: y cos θ = y cos θ + x sin θ 5. Finally, from the triangle OYE, y = cos θ, or y = y cos θ y 6. Therefore: y = x sin θ + y cos θ 32/59

2D Rotation Example What would the outcome be? How would you do this in pseudo code? q 6 q 33/59

2D Rotation Example Result: Y 6 5 4 q 6 3 2 q 0 2 3 4 5 6 7 8 9 0 X 34/59

Recap For Scaling, we have: v = Sv where v = x y and v = x y, and S = S x 0 0 S y For Rotation, we have: v = R θ v where v = x y and v = x y, and R θ = cosθ sinθ sinθ cosθ Hmmm Maybe we can start stringing things together one s v becomes another s v More on that later We re still missing translation 35/59

Sets of Linear Equations and Matrices To translate, scale, and rotate vectors we need a function to give a new value of x, and a function to give a new value of y Examples: Rotation: v x = v x cos θ v y sin θ v y = v x sin θ + v y cos θ These are both of the form: x = ax + by y = cx + dy Scaling v x = s x v x + 0v y v y = 0v x + s y v y Since the transforms are given by a system of linear equations, they are called linear transformations, and is represented by the matrix: a b c d 36/59

2D Translation Goal: moving a house from location A to location B: R 2 Y 6 5 B = (7, 6) 4 3 2 A = (2, 3) 0 2 3 4 5 6 7 8 9 0 Pretty easy Just add 5 to x and 3 to y If there are multiple vertices in the house, apply the addition to each and every vertex X 37/59

Questions? 38/59

Refresher How do you multiply a (3x3) matrix by 3D vector? How do you multiply two 3x3 matrices? Given this matrix: basis vectors? How did you find those? 0.20 0.93 0.64.20 0.65 0.82 0.75.40 0.95.0 0.52 3.20.5 0.20.25 2.25, what are the 4 Matrix as a coordinate transform What happens if you have a 2x3 matrix (2 rows, 3 columns) and we multiply it by a 3D vector? What happens if we have a 3x2 matrix (3 rows, 2 columns) and we multiply it by a 3D vector? 39/59

Questions? 40/59

2D Translate In matrix notation, this means: v = v + t where v = x y, v = x y, and t = dx dy which means: x = x + dx and y = y + dy Translation: Preserves lengths (isometric) Preserves angles (conformal) dx = 2 dy = 3 Y 6 5 4 3 2 0 2 4 4 2 3 4 5 6 7 8 9 0 X 4/59

2D Translation Exercise: consider linear transformations x = ax + by y = cx + dy In matrix form: x y = a b c d Can translation be expressed as a linear transformation? x = x + dx y = y + dy x y Think back to the previous translation example 42/59

2D Translation Consider the example on the right: Moving a point from (2,3) to (7,6) implies a translation of (5,3) In matrix form: Or: x = x y y + dx dy 7 6 = 2 3 + 5 3 x = x + dx y = y + dy R 2 Y there = 6 (7, 6) 5 4 3 2 0 2 here = (2, 3) 3 4 5 6 7 8 9 0 X 43/59

2D Translation Let s rewrite this: x = x + dx y = y + dy As: x = x + 0 y + dx y = 0 x + y + dy Now can you write this in matrix form in the form of: v = Tv using the variables: x, y, x, y, dx, dy? 44/59

2D Translation Intuitively, what we want to write is: x y = 0 dx 0 dy x y But this doesn t work because the dimensions don t line up right! That is, the matrix is 2x3, and the vector is 2x But what if 45/59

2D Translation Intuitively, what we want to write is: x y = 0 dx 0 dy x y But this doesn t work because the dimensions don t line up right! That is, the matrix is 2x3, and the vector is 2x But what if x y = 0 dx 0 dy 0 0 x y 46/59

Composite Matrix Transform This is huge! Because now we can string together Scaling, Rotation, and Translation Recall, we had: For Scaling, we have: v = Sv For rotation, we have: v = R θ v Now we add: For translation, we have: v = Tv Except that the Translation matrix is slightly bigger What can we do? 47/59

Recap For Scaling, we have: v = Sv where x y = S x 0 0 0 S y 0 0 0 x y For Rotation, we have: v = R θ v where x y = cosθ sinθ 0 sinθ cosθ 0 0 0 For Translation, we have: v = Tv where x y = 0 dx 0 dy 0 0 x y x y 48/59

Questions? 49/59

Points vs. Vectors Question, we just said that we can represent a x vertex as v = y in our homogeneous coordinate system. How do we represent a vector? The same? Or different? 50/59

Points vs. Vectors As it turns out, we represent vectors differently For a point, we say: p = For a vector, we say: v = x y x y 0 Why do you think that s the case? 5/59

Find the values of x, y and w For Scaling, we have: v = Sv where x y w = S x 0 0 0 S y 0 0 0 x y 0 For Rotation, we have: v = R θ v where x y w = cosθ sinθ 0 sinθ cosθ 0 0 0 For Translation, we have: v = Tv where x y w = 0 dx 0 dy 0 0 x y 0 x y 0 52/59

Cool! What did we just find out? That a vector can be Scaled Rotated But NOT Translated Which fits our original definition of a vector! 53/59

Questions? 54/59

Uh, What Was That Again? What just happened to creating the Translation matrix? What does it mean to add the extra? This is called Homogeneous Coordinates: add an additional dimension, the w-axis, and an extra coordinate, the w-component Thus 2D->3D (effectively the hyperspace for embedding 2D space) 55/59

Addendum: Shearing / Skewing Shearing refers to the sliding or skewing effect Squares become parallelograms. E.g., x- coordinates skew to the right, y-coordinates stay the same. Consider the basis vectors for the y-axis That means we re turning the 90 degree angle between x- and y- axes into θ. Y 6 5 4 3 2 0 q 2 q 4 3 4 5 6 7 8 9 0 Skew θ = tan θ 0 2D non-homogeneous X 56/59

Homogeneous Coordinates Allows expression of all three 2D transforms as 3x3 matrices (Scaling, Rotation, Translation) We start with the point P 2d on the x-y plane, and apply a mapping to bring it to the w-plane in hyperspace: P 2d x, y P h wx, wy, w, w 0 The resulting x, y coordinates in our new point P h are different from the original x, y in that: x = wx, y = wy, P h x, y, w, w 0 57/59

Homogeneous Coordinates Once we have this point P h x, y, w, we can apply a homogenized version of our translation matrices to it to get a new point in hyperspace Finally, we want to obtain the resulting point in 2Dspace again, so we perform a reverse mapping to convert from hyperspace back to 2D space: P 2d x, y = P 2d x w, y w 58/59

Homogeneous Coordinates It s obvious that for our purposes, it s easiest to make w = So we say P 2d x, y is the intersection of the line determined by P h with the w = plane: To reiterate, the vertex v = x y is now represented as: x v = y And we represent our vertex on the hyperplane w = 59/59

Questions? 60/59