Title: Splines II
1Splines II Interpolating Curves
- based on
- Michael Gleicher Curves, chapter 15 in
- Fundamentals of Computer Graphics, 3rd ed.
- (Shirley Marschner)
- Slides by Marc van Kreveld
2Polynomial pieces
Canonical form of a polynomial of degree n
defined with vector coefficients ai
Generalized form of a polynomial defined with
vector coefficients ci that are blended by the m
polynomials bi(t) The degree is the max of the
degrees of the bi(t)
Using blending polynomials is the way to make
splines
3Recall Basis and constraint matrices
- Specifications of a curve give a constraint
matrix p0 f(0) a0 0 a1 02
a2 p1 f(0.5) a0 0.5 a1
0.52 a2 p2 f(1) a0 1 a1
12 a2 - Its inverse B C1 is the basis matrix
(quadratic curve)
4Blending functions
- Blending functions (or basis functions) are
functions of u and specify how to mix the
specified constraints (points to pass through,
derivatives, ) - Let u 1 u u2 u3 un be the powers of
u - b(u) u B, a vector whose elements are the
blending functions
5Blending functions
- u 1 u u2 u3 un
- b(u) u B so we obtain for the usual quadric
example with three points specified
6Blending functions
- We can now blend the control points
7Blending functions
We see the contributions of each point depending
on u
For fixed u, we linearly interpolate the three
points
8Blending functions
1
0
1
0.5
u
9Blending functions
- Note the sum of the contributions
10Polynomials for interpolation
- Given points p (p0, p1, , pn) and increasing
para-meter values t (t0, t1, , tn), we can
make a poly-nomial of degree n that passes
through pi exactly at parameter value ti so
f(ti) pi
p1
p2
p5
p4
p0
p3
11Polynomials for interpolation
- Given points p (p0, p1, , pn) and increasing
para-meter values t (t0, t1, , tn), we can
make a poly-nomial of degree n that passes
through pi exactly at parameter value ti so
f(ti) pi
p1
p2
p5
p4
p0
p3
the brown curve has t1 gt t1 and t4 lt t4
12Polynomials for interpolation
- Method
- Set up constraint matrix as before
- Invert to get basis matrix, giving the n1 basis
functions bi(t) and the polynomial f(t) - Alternative method (Lagrange form)
13Why not use polynomials to interpolate 5 or more
points
- Polynomials of higher degree have
- extra wiggles
- overshoots
- non-locality moving the point pn changes the
curve even near p0 also when we add a point
at the end
14Why not use polynomials to interpolate 5 or more
points
- This gets worse with higher degree (more points)
15Blending again
- A piecewise-linear curve (polygonal line) can
also be defined using blending functions
1
0 ? u ? 0.5
0.5 ? u ? 1
p1
p0
p2
0
1
u
0.5
16Piecewise cubic polynomials
- Allows position and derivative at each end
- Allows C2 continuity
- Are in a sense the most smooth curve minimum
curvature over its length (curvature second
derivative)
curvature low
curvature 0
curvature high
17Cubic polynomials
- f(u) a0 a1 u a2 u2 a3 u3 in
canonical form - Four control points (points or derivatives on
curve) needed - For piecewise cubic curves n pieces require 4n
control points, but C0 continuity already fixes
n 1 of them
18Cubic polynomials
- The ideal properties
- Each piece is cubic
- The curve interpolates the control points
- The curve has local control
- The curve has C2 continuity
- We can have any three but not all four
properties - Natural cubics do not have local control
- Cubic B-splines do not interpolate the control
points - Cardinal splines are not C2
19Natural cubics
- The first piece specifies start and end
positions, and the first and second derivative at
the start - For each other piece, the position, first and
second derivative match with the piece before
it? only the endpoint can be specified freely - A curve with n pieces has n3 control points in
total (n1 points and 2 derivative specifications)
p1
p2
p0
p3
20Natural cubics
- We get (with f(u) a0 u a1 u2 a2 u3
a3) p0 f (0) a0 0 a1 02
a2 03 a3 p1 f(0) 1 a1
2?0 a2 3?02 a3 p2 f(0)
2 a2 6?0 a3 p3 f (1)
a0 1 a1 12 a2 13 a3
constraint matrix
21Natural cubics
- When you modify your natural cubic, for instance
by changing the derivative at the start of the
first piece, then the whole curve changes? not
local
22Hermite cubics
- Specifies positions of start and end, and the
derivatives at these points - C1 continuous since the start position of a piece
must be the same as the end position of the
previous piece, and the same is true for the
derivatives - A curve with n pieces has 2n2 control points
in total
p1
p2
p3
p0
23Hermite cubics
- Local control changing the position or
derivative of any point influences only the piece
before and the piece after that point - See slides 34-35 of Curves I lecture
24Cardinal cubics
- Specifies positions only the derivatives at each
point are determined by the points before and
after it - C1 continuous
- A curve with n pieces has n3 control points in
total
p1
p2
p3
p0
p1 p3
p0 p2
25Cardinal cubics
- A tension parameter t ? 0,1) determines the
strength of bending - Each derivative vector pi-1 pi1 is scaled by (1
t)/2
p1
p1
p2
p2
p0
p0
p3
p3
t 0.5
t 0 (Catmull-Rom splines)
26Cardinal cubics
???
scaling factor related, not the tension t
27Cardinal cubics
- We can set up the constraints f(0)
p1 f(1) p2 f(0) ½ (1 t) (p2
p0) f(1) ½ (1 t) (p3 p1) - Rewrite to get expressions for p0, p1, p2 and p3
- The first and last control points are not
interpolated no derivative would be specified - Therefore, n pieces require n3 points
28Summary
- Piecewise cubic curves are popular for modeling
- We want C2 continuity, locality, and
interpolation we can get only two of these with
cubics - Natural cubics do not have locality
- Hermite cubics are only C1 continuous
- Cardinal cubics are only C1 continuous
- The splines that follow next (Bezier and
B-spline) will not interpolate but approximate
the control points