Math Review Week 1, Wed Jan 6

55
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2010 Tamara Munzner http://www.ugrad.cs.ubc.ca/~cs314/ Vjan2010 Math Review Week 1, Wed Jan 6

description

http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010. Math Review Week 1, Wed Jan 6. News. no class this Friday (Jan 8)! UBC CS Dept news. Department of Computer Science Undergraduate Events. Events this week How to Prepare for the Tech Career Fair Date: Wed. Jan 6 Time: 5 – 6:30 pm - PowerPoint PPT Presentation

Transcript of Math Review Week 1, Wed Jan 6

Page 1: Math Review Week 1, Wed Jan 6

University of British ColumbiaCPSC 314 Computer Graphics

Jan-Apr 2010

Tamara Munzner

http://www.ugrad.cs.ubc.ca/~cs314/Vjan2010

Math Review

Week 1, Wed Jan 6

Page 2: Math Review Week 1, Wed Jan 6

2

News

• no class this Friday (Jan 8)!

• UBC CS Dept news

Page 3: Math Review Week 1, Wed Jan 6

3

Department of Computer ScienceUndergraduate Events

Events this weekHow to Prepare for the Tech

Career FairDate: Wed. Jan 6Time: 5 – 6:30 pmLocation: DMP 110

Resume Writing Workshop (for non-coop students)

Date: Thurs. Jan 7Time: 12:30 – 2 pmLocation: DMP 201

CSSS Movie NightDate: Thurs. Jan 7Time: 6 – 10 pmLocation: DMP 310Movies: “Up” & “The Hangover”

(Free Popcorn & Pop)  

Drop-In Resume Edition SessionDate: Mon. Jan 11Time: 11 am – 2 pmLocation: Rm 255, ICICS/CS Bldg Industry PanelSpeakers: Managers from Google, IBM,

Microsoft, TELUS, etc.Date: Tues. Jan 12Time: Panel: 5:15 – 6:15 pm;

Networking: 6:15 – 7:15 pmLocation: Panel: DMP 110; Networking:

X-wing Undergrad Lounge Tech Career FairDate: Wed. Jan 13Time: 10 am – 4 pmLocation: SUB Ballroom

 

Page 4: Math Review Week 1, Wed Jan 6

4

Review: Computer Graphics Defined

• CG uses• movies, games, art/design, ads, VR,

visualization

• CG state of the art• photorealism achievable (in some cases)

http://www.alias.com/eng/etc/fakeorfoto/quiz.html

Page 5: Math Review Week 1, Wed Jan 6

5

Review: Rendering Capabilities

www.siggraph.org/education/materials/HyperGraph/shutbug.htm

Page 6: Math Review Week 1, Wed Jan 6

6

Today’s Readings

• FCG Chapter 2: Miscellaneous Math• except 2.7 (2.11 in 2nd edition)

• FCG Chapter 5: Linear Algebra• except 5.4 (not in 2nd edition)

Page 7: Math Review Week 1, Wed Jan 6

7

Notation: Scalars, Vectors, Matrices

• scalar• (lower case, italic)

• vector• (lower case, bold)

• matrix• (upper case, bold)

a

[ ]naaa ...21=a

⎥⎥⎥

⎢⎢⎢

=

333231

232221

131211

aaa

aaa

aaa

A

Page 8: Math Review Week 1, Wed Jan 6

8

Vectors

• arrow: length and direction• oriented segment in nD space

• offset / displacement• location if given origin

Page 9: Math Review Week 1, Wed Jan 6

9

Column vs. Row Vectors

• row vectors

• column vectors

• switch back and forth with transpose

⎥⎥⎥⎥

⎢⎢⎢⎢

=

n

col

a

a

a

...2

1

a

rowTcol aa =

[ ]nrow aaa ...21=a

Page 10: Math Review Week 1, Wed Jan 6

10

Vector-Vector Addition

• add: vector + vector = vector• parallelogram rule

• tail to head, complete the triangle

⎥⎥⎥

⎢⎢⎢

+++

=+

33

22

11

vu

vu

vu

vu

)0,6,5()1,1,3()1,5,2(

)6,9()4,6()2,3(

=−+=+

vu +

u

v

geometric algebraic

examples:

Page 11: Math Review Week 1, Wed Jan 6

11

Vector-Vector Subtraction

• subtract: vector - vector = vector

⎥⎥⎥

⎢⎢⎢

−−−

=−

33

22

11

vu

vu

vu

vu

)2,4,1()1,1,3()1,5,2(

)2,3()4,6()2,3(

−=−−−−=−

=−vu

u

v

v−

)( vu −+

Page 12: Math Review Week 1, Wed Jan 6

12

Vector-Vector Subtraction

• subtract: vector - vector = vector

⎥⎥⎥

⎢⎢⎢

−−−

=−

33

22

11

vu

vu

vu

vu

)2,4,1()1,1,3()1,5,2(

)2,3()4,6()2,3(

−=−−−−=−

=−vu

u

v

v−

)( vu −+

vu + v

u uv−v

uargument reversal

Page 13: Math Review Week 1, Wed Jan 6

13

Scalar-Vector Multiplication

• multiply: scalar * vector = vector• vector is scaled

)*,*,*(* 321 uauauaa =u

)5,.5.2,1()1,5,2(*5.

)4,6()2,3(*2

==

u*a

u

Page 14: Math Review Week 1, Wed Jan 6

14

Vector-Vector Multiplication

• multiply: vector * vector = scalar• dot product, aka inner product vu •

( ) ( ) ( )332211

3

2

1

3

2

1

vuvuvu

v

v

v

u

u

u

∗+∗+∗=

⎥⎥⎥

⎢⎢⎢

⎡•

⎥⎥⎥

⎢⎢⎢

Page 15: Math Review Week 1, Wed Jan 6

15

Vector-Vector Multiplication

• multiply: vector * vector = scalar• dot product, aka inner product vu •

( ) ( ) ( )332211

3

2

1

3

2

1

vuvuvu

v

v

v

u

u

u

∗+∗+∗=

⎥⎥⎥

⎢⎢⎢

⎡•

⎥⎥⎥

⎢⎢⎢

⎡( ) ( ) ( )332211

3

2

1

3

2

1

vuvuvu

v

v

v

u

u

u

∗+∗+∗=

⎥⎥⎥

⎢⎢⎢

⎡•

⎥⎥⎥

⎢⎢⎢

Page 16: Math Review Week 1, Wed Jan 6

16

Vector-Vector Multiplication

• multiply: vector * vector = scalar• dot product, aka inner product

u1

u2

u3

⎢ ⎢ ⎢

⎥ ⎥ ⎥•

v1

v2

v3

⎢ ⎢ ⎢

⎥ ⎥ ⎥= u1∗v1( ) + u2 ∗v2( ) + u3 ∗v3( )

vu •

θcosvuvu =•

u

• geometric interpretation• lengths, angles• can find angle between two vectors

Page 17: Math Review Week 1, Wed Jan 6

17

Dot Product Geometry• can find length of projection of u onto v

• as lines become perpendicular,

θcosvuvu =• u

θcosu0→• vu

v

vuu

•=θcos

Page 18: Math Review Week 1, Wed Jan 6

18

Dot Product Example

19676)3*2()7*1()1*6(

3

7

1

2

1

6

=++=++=⎥⎥⎥

⎢⎢⎢

⎡•

⎥⎥⎥

⎢⎢⎢

u1

u2

u3

⎢ ⎢ ⎢

⎥ ⎥ ⎥•

v1

v2

v3

⎢ ⎢ ⎢

⎥ ⎥ ⎥= u1∗v1( ) + u2 ∗v2( ) + u3 ∗v3( )

Page 19: Math Review Week 1, Wed Jan 6

19

Vector-Vector Multiplication, The Sequel

• multiply: vector * vector = vector• cross product

• algebraic

⎥⎥⎥

⎢⎢⎢

−−−

=⎥⎥⎥

⎢⎢⎢

⎡×

⎥⎥⎥

⎢⎢⎢

1221

3113

2332

3

2

1

3

2

1

vuvu

vuvu

vuvu

v

v

v

u

u

u

Page 20: Math Review Week 1, Wed Jan 6

20

Vector-Vector Multiplication, The Sequel

• multiply: vector * vector = vector• cross product

• algebraic

⎥⎥⎥

⎢⎢⎢

−−−

=⎥⎥⎥

⎢⎢⎢

⎡×

⎥⎥⎥

⎢⎢⎢

1221

3113

2332

3

2

1

3

2

1

vuvu

vuvu

vuvu

v

v

v

u

u

u

Page 21: Math Review Week 1, Wed Jan 6

21

Vector-Vector Multiplication, The Sequel

• multiply: vector * vector = vector• cross product

• algebraic

⎥⎥⎥

⎢⎢⎢

−−−

=⎥⎥⎥

⎢⎢⎢

⎡×

⎥⎥⎥

⎢⎢⎢

1221

3113

2332

3

2

1

3

2

1

vuvu

vuvu

vuvu

v

v

v

u

u

u

blah blah

3

1

2

Page 22: Math Review Week 1, Wed Jan 6

22

Vector-Vector Multiplication, The Sequel

• multiply: vector * vector = vector• cross product

• algebraic

• geometric

• parallelogramarea

• perpendicularto parallelogram

⎥⎥⎥

⎢⎢⎢

−−−

=⎥⎥⎥

⎢⎢⎢

⎡×

⎥⎥⎥

⎢⎢⎢

1221

3113

2332

3

2

1

3

2

1

vuvu

vuvu

vuvu

v

v

v

u

u

u

ba×

ba×

θsinvuba =×

θ

Page 23: Math Review Week 1, Wed Jan 6

23

RHS vs. LHS Coordinate Systems

• right-handed coordinate system

• left-handed coordinate system

xy

z

xyz

right hand rule: index finger x, second finger y;right thumb points up

left hand rule: index finger x, second finger y;left thumb points down

yxz ×=

yxz ×=

convention

Page 24: Math Review Week 1, Wed Jan 6

24

Basis Vectors

• take any two vectors that are linearly independent (nonzero and nonparallel)• can use linear combination of these to define

any other vector:

bac 21 ww +=

Page 25: Math Review Week 1, Wed Jan 6

25

Orthonormal Basis Vectors

• if basis vectors are orthonormal (orthogonal (mutually perpendicular) and unit length)• we have Cartesian coordinate system

• familiar Pythagorean definition of distance

0

,1

=•

==

yx

yx

orthonormal algebraic properties

Page 26: Math Review Week 1, Wed Jan 6

26

Basis Vectors and Origins

jiop yx ++=o

p

i

j

• coordinate system: just basis vectors• can only specify offset: vectors

• coordinate frame: basis vectors and origin• can specify location as well as offset: points

Page 27: Math Review Week 1, Wed Jan 6

27

Working with Frames

pFF11

FF11

i

jo

jiop yx ++=

Page 28: Math Review Week 1, Wed Jan 6

28

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

i

jo

jiop yx ++=

Page 29: Math Review Week 1, Wed Jan 6

29

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

i

jo

jiop yx ++=

FF11

Page 30: Math Review Week 1, Wed Jan 6

30

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

FF22

i

jo

jiop yx ++=

FF22

ijo

Page 31: Math Review Week 1, Wed Jan 6

31

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

FF22 p = (-1.5,2)p = (-1.5,2)

i

jo

jiop yx ++=

FF22

ijo

Page 32: Math Review Week 1, Wed Jan 6

32

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

FF22 p = (-1.5,2)p = (-1.5,2)

i

j

FF22

ijo

o

jiop yx ++=FF22

Page 33: Math Review Week 1, Wed Jan 6

33

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

FF22 p = (-1.5,2)p = (-1.5,2)

FF33

i

j

FF22

ijo

FF33

ijo

o

jiop yx ++=

Page 34: Math Review Week 1, Wed Jan 6

34

Working with Frames

pFF11

FF11 p = (3,-1)p = (3,-1)

FF22 p = (-1.5,2)p = (-1.5,2)

FF33 p = (1,2)p = (1,2)

i

j

FF22

ijo

FF33

ijo

o

jiop yx ++=

Page 35: Math Review Week 1, Wed Jan 6

35

Working with Frames

FF11 p = (3,-1)p = (3,-1)

FF22 p = (-1.5,2)p = (-1.5,2)

FF33 p = (1,2)p = (1,2)

pFF11

i

j

FF22

ijo

FF33

ijo

o

jiop yx ++=

FF33

Page 36: Math Review Week 1, Wed Jan 6

36

Named Coordinate Frames

• origin and basis vectors• pick canonical frame of reference

• then don’t have to store origin, basis vectors• just• convention: Cartesian orthonormal one on

previous slide

• handy to specify others as needed• airplane nose, looking over your shoulder, ...• really common ones given names in CG

• object, world, camera, screen, ...

),,( cba=p

zyxop cba +++=

Page 37: Math Review Week 1, Wed Jan 6

37

Lines

• slope-intercept form• y = mx + b

• implicit form• y – mx – b = 0

• Ax + By + C = 0

• f(x,y) = 0

Page 38: Math Review Week 1, Wed Jan 6

38

Implicit Functions

• find where function is 0• plug in (x,y), check if

• 0: on line• < 0: inside• > 0: outside

• analogy: terrain• sea level: f=0• altitude: function value• topo map: equal-value

contours (level sets)

Page 39: Math Review Week 1, Wed Jan 6

39

Implicit Circles•

• circle is points (x,y) where f(x,y) = 0

• • points p on circle have property that vector from c to p

dotted with itself has value r2

• • points points p on the circle have property that

squared distance from c to p is r2

• • points p on circle are those a distance r from center

point c

222 )()(),( ryyxxyxf cc −−+−=

0)()(:),(),,( 2 =−−•−== ryxcyxp cc cpcp

022 =−− rcp

0=−− rcp

Page 40: Math Review Week 1, Wed Jan 6

40

Parametric Curves

• parameter: index that changes continuously• (x,y): point on curve

• t: parameter

• vector form•

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡)(

)(

th

tg

y

x

)(tf=p

Page 41: Math Review Week 1, Wed Jan 6

41

2D Parametric Lines

• •

• start at point p0,

go towards p1,according to parameter t

• p(0) = p0, p(1) = p1

x

y

⎣ ⎢

⎦ ⎥=x0 + t(x1 − x0)

y0 + t(y1 − y0)

⎣ ⎢

⎦ ⎥

)()( 010 pppp −+= tt)()( dop tt +=

Page 42: Math Review Week 1, Wed Jan 6

42

Linear Interpolation

• parametric line is example of general concept•

• interpolation• p goes through a at t = 0• p goes through b at t = 1

• linear• weights t, (1-t) are linear polynomials in t

)()( 010 pppp −+= tt

Page 43: Math Review Week 1, Wed Jan 6

43

Matrix-Matrix Addition

• add: matrix + matrix = matrix

• example

⎥⎦

⎤⎢⎣

⎡++++

=⎥⎦

⎤⎢⎣

⎡+⎥

⎤⎢⎣

22222121

12121111

2221

1211

2221

1211

mnmn

mnmn

nn

nn

mm

mm

⎥⎦

⎤⎢⎣

⎡−=⎥

⎤⎢⎣

⎡+++−+

=⎥⎦

⎤⎢⎣

⎡−+⎥

⎤⎢⎣

⎡59

81

1472

53)2(1

17

52

42

31

Page 44: Math Review Week 1, Wed Jan 6

44

Scalar-Matrix Multiplication

• multiply: scalar * matrix = matrix

• example

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

2221

1211

2221

1211

**

**

mama

mama

mm

mma

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡153

126

5*31*3

4*32*3

51

423

Page 45: Math Review Week 1, Wed Jan 6

45

Matrix-Matrix Multiplication

• can only multiply (n,k) by (k,m):number of left cols = number of right rows• legal

• undefined⎥⎥⎥

⎢⎢⎢

⎥⎦

⎤⎢⎣

ml

kj

ih

gfe

cba

⎥⎦

⎤⎢⎣

⎥⎥⎥

⎢⎢⎢

kj

ih

q

g

p

f

o

e

cba

Page 46: Math Review Week 1, Wed Jan 6

46

Matrix-Matrix Multiplication

• row by column

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

2221

1211

2221

1211

2221

1211

pp

pp

nn

nn

mm

mm

2112111111 nmnmp +=

Page 47: Math Review Week 1, Wed Jan 6

47

Matrix-Matrix Multiplication

• row by column

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

2221

1211

2221

1211

2221

1211

pp

pp

nn

nn

mm

mm

2112111111 nmnmp +=

2122112121 nmnmp +=

Page 48: Math Review Week 1, Wed Jan 6

48

Matrix-Matrix Multiplication

• row by column

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

2221

1211

2221

1211

2221

1211

pp

pp

nn

nn

mm

mm

2112111111 nmnmp +=

2212121112 nmnmp +=2122112121 nmnmp +=

Page 49: Math Review Week 1, Wed Jan 6

49

Matrix-Matrix Multiplication

• row by column

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

2221

1211

2221

1211

2221

1211

pp

pp

nn

nn

mm

mm

2112111111 nmnmp +=

2212121112 nmnmp +=2122112121 nmnmp +=

2222122122 nmnmp +=

Page 50: Math Review Week 1, Wed Jan 6

50

Matrix-Matrix Multiplication

• row by column

• noncommutative: AB != BA

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

2221

1211

2221

1211

2221

1211

pp

pp

nn

nn

mm

mm

2112111111 nmnmp +=

2212121112 nmnmp +=2122112121 nmnmp +=

2222122122 nmnmp +=

Page 51: Math Review Week 1, Wed Jan 6

51

Matrix-Vector Multiplication• points as column vectors: postmultiply

• points as row vectors: premultiply

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

h

z

y

x

mmmm

mmmm

mmmm

mmmm

h

z

y

x

44434241

34333231

24232221

14131211

'

'

'

'

Mpp'=

[ ] [ ]

T

mmmm

mmmm

mmmm

mmmm

hzyxhzyx

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

44434241

34333231

24232221

14131211

''''TTT Mpp' =

Page 52: Math Review Week 1, Wed Jan 6

52

Matrices

• transpose

• identity

• inverse• not all matrices are invertible

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢

44342414

43332313

42322212

41312111

44434241

34333231

24232221

14131211

mmmm

mmmm

mmmm

mmmmT

mmmm

mmmm

mmmm

mmmm

⎥⎥⎥⎥

⎢⎢⎢⎢

1000

0100

0010

0001

IAA =−1

Page 53: Math Review Week 1, Wed Jan 6

53

Matrices and Linear Systems

• linear system of n equations, n unknowns

• matrix form Ax=b

125

1342

4273

=++−=−−

=++

zyxzyxzyx

⎥⎥⎥

⎢⎢⎢

⎡−=

⎥⎥⎥

⎢⎢⎢

⎥⎥⎥

⎢⎢⎢

⎡−−

1

1

4

125

342

273

z

y

x

Page 54: Math Review Week 1, Wed Jan 6

54

Readings for Next Time

• Mon Jan 11• RB Chap Introduction to OpenGL• RB Chap State Management and Drawing

Geometric Objects• RB App Basics of GLUT (Aux in v 1.1)

• RB = Red Book = OpenGL Programming Guide

• http://fly.cc.fer.hr/~unreal/theredbook/

Page 55: Math Review Week 1, Wed Jan 6

55

Re-Reminder

• no class this Friday (Jan 8)!