210 likes | 371 Views
Interpolating Splines: Which is the fairest of them all?. Raph Levien, Google Carlo S équin, UC Berkeley. Approaches to 2D Curve Design. B é zier curves Approximating splines Useful if noisy data Interpolating splines. What is the best interpolating spline?. How do you define “best”?
E N D
Interpolating Splines:Which is the fairest of them all? Raph Levien, Google Carlo Séquin, UC Berkeley
Approaches to 2D Curve Design • Bézier curves • Approximating splines • Useful if noisy data Interpolating splines
What 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 !
Minimal Energy Curve • Idealized thin elastic strip that goes through the data points; • The curve that minimizes bending energy:
Problems with MEC • Lack of convergence • Lack of roundness
Does 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?
Properties 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).
2-Parameter Splines • Each curve segment determined by a2-dimensional parameter space, • Modulo scaling, rotation, translation • Two parameters are tangent angles
MEC is cut piecewise from a fixed curve • Known as the “rectangular elastica”
A Major New Result: • All 2-parameter, extensible splines have segments cut from a generator curve! (With scaling, rotation, translation to fit)
Generator 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.
Euler Spiral • Curvature is linear in arc-length • Aka: Cornu spiral, Fresnel integrals, Clothoid, Railroad transition curve . . .
Euler 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?
Which generating curve looks best? • Much simpler than: Which functionalis best? • We can employ empirical testing. • Aesthetic curve family is promising.
Empirical Study: Aesthetic Curves MECminimum popularvotes Exponent of Aesthetic Curve
Exponential falloff 4-Parameter Splines (MVC) • G4-continuity • Locality is poorer • 2-parameter is sparser(experience from font design)
Fairness/Locality Tradeoff Exponential falloff factor Exponent of Aesthetic Curve
Applications for Font Design • Euler spiral spline • Sparse control points • Interactive editing • G2 straight-to-curve transitions • Several fonts drawn • Inconsolata
Efficient 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.
Bézier Representation of Font • Euler spiral master • Optimized conversion to Béziers • Error tolerance < 10-3 • Compatible with industry standard font formats
Conclusions • 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.