Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mengxia Zhu
Fall 2007
Objective
Review vector arithmetic
Distinguish points and vectors
Relate geometric concepts to their
algebraic representation
Describe point, line, and planes
Exploit the dot product and cross product
and their applications in Graphics
Basic Entities
Coordinate system: has an origin and some mutually
perpendicular axes emanating from the origin.
Q
Point P: a location in space V P
{2, 3, 9}
V=Q-P
Vector v : with length and direction, physical entities,
such as force, and velocity. Vector has no fixed location,
seen as points displacement
y y
z
Right-hand system
Left-hand system
x x
z
Vector-scalar multiplication
Vector permits two fundamental operations: add them, multiply them
with real number
Multiplication gives a vector v
Has the same direction as that of v
v 2.5v
-v
Vector addition v1 v1-v2
Sum of two vectors
Subtraction of two vectors
Adding and subtraction of v2
corresponding components of two
vectors gives a new vector
v1+v2 v1+v2
v1
v1-v2
v1 v1
v2
v2 v2
Linear Combination and Affine
Combination
A linear combination of vectors
W = a1v1+a2v2 + a3v3 ++anvn: all weights are scalars.
A linear combination is affine combination of
vectors if the sum of all coefficients add up to
unity.
A convex combination poses a further restriction
on affine combination. Not only must the
coefficients sum to unit, but each must also be
non-negative
Linear Combination of Vectors
The combination is Convex if the coefficients sum
to 1, and are not negative. Partition of unit
m
v a v
i 1
i i v=a1v1 + a2v2 +(1-a1-a2)v3
v3
v2 v=(1-a)v1 + av2
= V1+a(V2-V1)
a(V2-V1) v2 v1
v1
Normalize a vector
v is represented by n-tuple ( v1,v2,vn)
Magnitude (length): the distance from the tail to the
head.
v v v2 ... vn
1
2 2 2
u
v u
The Angle between Two Vectors
Hence, dot product varies as the cosine of
the angle from u to v.
u gv u v cos v vgv
v u gv 0
u
v v u u gv 0
u v u u gv 0
Cross Product
a = (a1, a2, a3), b=(b1, b2, b3)
Ordinary coordinate system, points and vectors are represented the same. However, they
are quite different.
Points have location, no direction and size. Vector has no location, but with direction and
size.
Homogeneous representation cont
Represent both points and
vector using the same set of v1
basic underlying objects,
v2
v av1 bv2 cv3 a, b, c,
One of the hallmarks of v3
computer graphics, keep
straight the distinction between 0
points and vectors with a p1
compact notation. Easy to
program p2
P ap1 bp2 cp3 (a, b, c, )
p3
We view points location as an 1
offset from the origin by a
certain amount a, b, c,
Homogeneous representation
OpenGL uses 4D homogeneous
. coordinates for all its vertices.
B B
B
C C
C
Parametric Representation Line
When t varies, the
point P trace out all of L(t ) C bt
the points on the line
defined by C and B. b B C
t>1
B
L t=1
C
t=0
t<0
Parametric Plane
Heavy use of polygons in 3D graphics,
planes seem to appear everywhere.
Three point form
Parametric representation
Point normal form
Parametric form
Equation
P(s,t) = C + as + bt
b B
a = A-C, b = B-C a
C A
Given any values of s
and t, we can identify
the corresponding
point on the plane.
Three point form of Plane
P(s,t) = sA+tB+(1-s-t)C
Point Normal form
Plane can be specified by n
a single point B, that lies
within it and direction n,
normal to the plane. B
Normal n is perpendicular
to any line lying in the
plane.
R is any point on the
plane, it satisfies: ng( R B ) 0
Tweening for Art and Animation
The affine combination of points
P = A(1-t) + Bt, performs a linear
interpolation between the points A and B.
Interesting animation can be created that
show one figure being tweened into
another. The procedure if simplest if the
two figures are polylines based on the
same number of points.
Tweening
void drawTween ( Point A[], Point B[], int n, float t)
{
for (int i= 0; i< n; i++)
{
Point p;
P = Tween(A[i], B[i], t);
if ( i == 0 ) moveTo (Px, Py);
else lineTo (Px, Py);
}
}