Title: Interpolating Splines: Which is the fairest of them all
1Interpolating SplinesWhich is the fairest of
them all?
- Raph Levien, Google
- Carlo Séquin, UC Berkeley
2Approaches to 2D Curve Design
- Bézier curves
- Approximating splines
- Useful if noisy data
- ? Interpolating splines
3What is the best interpolating spline?
- How do you define best?
- Fairness (smoothness)
- Locality (ripples and wiggles)
- Robustness (does it always converge?)
- Stability (perturbation ? small change)
- NOT Compute cost !
4Minimal Energy Curve
- Idealized thin elastic strip that goes through
the data points - The curve that minimizes bending energy
5Problems with MEC
6Does MEC optimize the wrong functional?
- Is there a better functional?
- Tweaks to fix roundness
- Scale-Invariant MEC
- MVC
- Space of all possible functionals is a pretty
big zoo - How to choose one?
7Properties of MEC worth preserving
- These hold for any sane variational spline
- Extensionality
- Adding an on-curve point preserves shape.
- Direct consequence of variational definition.
- G2-continuity
- Known splines with higher continuity have worse
locality. - G2 is fair enough (for drawn curves).
82-Parameter Splines
- Each curve segment determined by a2-dimensional
parameter space, - Modulo scaling, rotation, translation
- Two parameters are tangent angles
9MEC is cut piecewise from a fixed curve
- Known as the rectangular elastica
10A Major New Result
- All 2-parameter, extensible splines have
segments cut from a generator curve! - (With scaling, rotation, translation to fit)
11Generator ? Extensional Spline
- Conversely, start with a curve and use it to
generate a spline. - Relationship between ?/?2 and ?/?3 must be
single-valued. - Preserve G2-continuity across points.
12Euler Spiral
- Curvature is linear in arc-length
- Aka Cornu spiral, Fresnel integrals, Clothoid,
Railroad transition curve . . .
13Euler Spiral Spline
- A really good curve Euler spiral
- Fixes roundness problem
- Far more robust
- Some solution always seems to exist.
- Mentioned by Birkhoff de Boor, 1965
- Implemented by Mehlum, 70s
- Why is it not more popular?
14Which generating curve looks best?
- Much simpler than Which functional is best?
- We can employ empirical testing.
- Aesthetic curve family is promising.
15Empirical Study Aesthetic Curves
MECminimum
popularvotes
Exponent of Aesthetic Curve
164-Parameter Splines (MVC)
- G4-continuity
- Locality is poorer
- 2-parameter is sparser (experience from font
design)
17Fairness/Locality Tradeoff
Exponential falloff factor
Exponent of Aesthetic Curve
18Applications for Font Design
- Euler spiral spline
- Sparse control points
- Interactive editing
- G2 straight-to-curve transitions
- Several fonts drawn
- Inconsolata
19Efficient Implementation
- Can just use 2-D LUT to compute curvature from
tangent angles. - Newton solver to enforce G2 globally.
- Drawing is not much more expensive than de
Casteljau. - Can convert to concise Bézier curves.
20Bézier Representation of Font
- Euler spiral master
- Optimized conversion to Béziers
- Error tolerance lt 10-3
- Compatible with industry standard font formats
21Conclusions
- Best 2D spline is cut piecewise from some
generating curve. - Euler spiral is a very good choice.
- Aesthetic curves may be slightly better.
- Efficient and practical implementations.