CS 551 / 645: Introductory Computer Graphics Mathematical Foundations

advertisement
CS 551 / 645:
Introductory Computer Graphics
Mathematical Foundations
From last class…

U.S. film projectors play film at 24 fps
– Projectors have a shutter to block light during
frame advance
– To reduce flicker, shutter opens twice for each
frame – resulting in 48 fps flashing
– 48 fps is perceptually acceptable

European film projectors play film at 25 fps
– American films are played ‘as is’ in Europe,
resulting in everything moving 4% faster
– Faster movements and increased audio pitch are
considered perceptually acceptable
From last class…

Film to DVD transfer
– Problem: 24 film fps must be converted to television
interlaced 29.97 (30) fps

Use 3:2 Pulldown
– First frame of movie is broken into first three frames
– Next frame of movie is broken into next two frames
– Next frame of movie is broken into next three frames…
From last class…
Additional Displays

Display Walls (Princeton)
Additional Displays

Stereo
Mathematical Foundations


Hearn and Baker (A1 – A4) appendix gives
good review
I’ll give a brief, informal review of some of the
mathematical tools we’ll employ
– Geometry (2D, 3D)
– Trigonometry
– Vector spaces

Points, vectors, and coordinates
– Dot and cross products
– Linear transforms and matrices
2D Geometry

Know your high school geometry:
– Total angle around a circle is 360° or 2π radians
– When two lines cross:


Opposite angles are equivalent
Angles along line sum to 180°
– Similar triangles:

All corresponding angles are equivalent
Trigonometry




Sine: “opposite over hypotenuse”
Cosine: “adjacent over hypotenuse”
Tangent: “opposite over adjacent”
Unit circle definitions:
–
–
–
–
sin () = x
cos () = y
tan () = x/y
Etc…
(x, y)
Slope-intercept Line Equation
Slope = m = rise / run
Slope = (y - y1) / (x - x1) = (y2 - y1) / (x2 - x1)
Solve for y:
y = [(y2 - y1)/(x2 - x1)]x + [-(y2-y1)/(x2 - x1)]x1 + y1
or: y = mx + b
y
P = (x, y)
P2 = (x2, y2)
P1 = (x1, y1)
x
Parametric Line Equation


Given points P1 = (x1, y1) and P2 = (x2, y2)
x = x1 + t(x2 - x1)
y = y1 + t(y2 - y1)
When:
y
– t=0, we get (x1, y1)
– t=1, we get (x2, y2)
– (0<t<1), we get points
on the segment between
(x1, y1) and (x2, y2)
P2 = (x2, y2)
P1 = (x1, y1)
x
Other helpful formulas


Length = sqrt (x2 - x1)2 + (y2 - y1)2
Midpoint, p2, between p1 and p3
– p2 = ((x1 + x3) / 2, (y1 + y3) / 2))

Two lines are perpendicular if:
– M1 = -1/M2
– cosine of the angle between them is 0
Coordinate Systems
Grasp
z-axis with hand
Roll fingers from positive x-axis
towards positive y-axis
Thumb points in direction of z-axis
Y
Y
Z
X
X
Left-handed
coordinate
system
Z
Right-handed
coordinate
system
Points

Points support these operations
– Point-point subtraction:

Result is a vector pointing from P to Q
– Vector-point addition:

Q-P=v
P+v=Q
Q
Result is a new point
– Note that the addition of two points is not defined
v
P
Vectors

We commonly use vectors to represent:
– Points in space (i.e., location)
– Displacements from point to point
– Direction (i.e., orientation)
Vector Spaces

Two types of elements:
– Scalars (real numbers): a, b, g, d, …
– Vectors (n-tuples): u, v, w, …

Operations:
–
–
–
–
–
Addition
Subtraction
Dot Product
Cross Product
Norm
Vector Addition/Subtraction
– operation u + v, with:
 Identity 0
v+0=v
 Inverse v + (-v) = 0
– Vectors are “arrows” rooted at the origin
– Addition uses the “parallelogram rule”:
y
u+v
y
v
v
u
x
u
x
-v
u-v
Scalar Multiplication
– Scalar multiplication:

Distributive rule:
a(u + v) = a(u) + a(v)
(a + b)u = au + bu
– Scalar multiplication “streches” a vector, changing
its length (magnitude) but not its direction
Dot Product

The dot product or, more generally, inner product
of two vectors is a scalar:
v1 • v2 = x1x2 + y1y2 + z1z2 (in 3D)

Useful for many purposes
– Computing the length (Euclidean Norm) of a vector:
length(v) = ||v|| = sqrt(v • v)
– Normalizing a vector, making it unit-length: v = v / ||v||
– Computing the angle between two vectors:
u • v = |u| |v| cos(θ)
– Checking two vectors for orthogonality

u • v = 0.0
v
u
θ
Dot Product

Projecting one vector onto another
– If v is a unit vector and we have another vector, w
– We can project w perpendicularly onto v
w
v
u
– And the result, u, has length w • v
u  w cos( )
 vw
 w 
 v w
v w




Dot Product

Is commutative
– u•v=v•u

Is distributive with respect to addition
– u • (v + w) = u • v + u • w
Cross Product



The cross product or vector product of two
vectors is a vector:
 y1 z 2  y 2 z1 
v1  v 2   ( x1 z 2  x 2 z1)
 x1 y 2  x 2 y1 
The cross product of two vectors is
orthogonal to both
Right-hand rule dictates direction of cross
product
Cross Product Right Hand Rule

See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html

Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product


Cross Product Right Hand Rule

See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html

Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product


Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Cross Product Right Hand Rule




See: http://www.phy.syr.edu/courses/video/RightHandRule/index2.html
Orient your right hand such that your palm is
at the beginning of A and your fingers point in
the direction of A
Twist your hand about the A-axis such that B
extends perpendicularly from your palm
As you curl your fingers to make a fist, your
thumb will point in the direction of the cross
product
Triangle Arithmetic

b
Consider a triangle, (a, b, c)
– a,b,c = (x,y,z) tuples
a

Surface area = sa = ½ * ||(b –a) X (c-a)||

Unit normal = (1/2sa) * (b-a) X (c-a)
c
Vector Spaces

A linear combination of vectors results in a
new vector:
v = a1v1 + a2v2 + … + anvn



If the only set of scalars such that
a1v1 + a2v2 + … + anvn = 0
is
a1 = a2 = … = a3 = 0
then we say the vectors are linearly independent
The dimension of a space is the greatest number of
linearly independent vectors possible in a vector set
For a vector space of dimension n, any set of n
linearly independent vectors form a basis
Vector Spaces: Basis Vectors

Given a basis for a vector space:
– Each vector in the space is a unique linear
combination of the basis vectors
– The coordinates of a vector are the scalars from
this linear combination
– If basis vectors are orthogonal and unit length:

Vectors comprise orthonormal basis
– Best-known example: Cartesian coordinates
– Note that a given vector v will have different
coordinates for different bases
Conclusion


Read Chapters 1 – 3 of OpenGL
Programming Guide
Assignment 1 out today, due 8 days from
now, Wednesday the 12th
Download