Download - Math Review Week 1, Wed Jan 6

Transcript
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)!