𝜅-Curves: Interpolation at Local Maximum Curvature Nothing Zhipei Yan1, Stephen Schiller2, Gregg Wilensky3, Nathan Carr2, Scott Schaefer1 1Texas A&M University, 2Adobe Research, 3Adobe
Problems with Interpolation Catmull-Rom Spline Try to provide tool. Rare people use , shape problems…. Curvature geometric feature.
“… human visual system is sensitive to minima and maxima of curvature …” “… all curvature extrema should coincide with the given control points …” [Levien 2009]
Desired Properties Interpolate all control points Max curvatures (salient points) only occur at control points ---- No cusps except at control points Curvature continuous
Clothoid Linear curvature Not continuous with motion of control points Pics texts.
Quadratic spline
Quadratic Bezier Curve 𝑐 𝑡 = 1−𝑡 2 𝑃 0 +2 1−𝑡 𝑡 𝑃 1 + 𝑡 2 𝑃 2 𝑃 1 location 𝑃 2 𝑃 0
Quadratic Bezier Curvature 𝜅 𝑡 = det( 𝑐 ′ 𝑡 , 𝑐 ′′ 𝑡 ) || 𝑐 ′ 𝑡 || 3 = Δ( 𝑃 0 , 𝑃 1 , 𝑃 2 ) | 1−𝑡 (𝑃 1 − 𝑃 0 +𝑡 𝑃 2 − 𝑃 1 || 3 𝜅 ′ 𝑡 =0⇒ 𝑡 𝑚𝑎𝑥 = 𝑃 0 − 𝑃 1 ⋅( 𝑃 0 − 2𝑃 1 + 𝑃 2 ) 𝑃 0 − 2𝑃 1 + 𝑃 2 ⋅( 𝑃 0 − 2𝑃 1 + 𝑃 2 ) 𝜅 𝑡 𝑚𝑎𝑥 = max 𝜅(𝑡) 𝑃 1 𝑃 2 𝑃 0 spacing
Interpolation at Max Curvature
Interpolation at Max Curvature
Quadratic Time Parameter 𝑃 1 𝑞 𝑃 0 𝑃 2 𝑞= 1−𝑡 2 𝑃 0 +2 1−𝑡 𝑡 𝑃 1 + 𝑡 2 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑞 𝑃 0 𝑃 2 Know p0, q, p2. Want to compute p1 𝑃 1 = 𝑞− 1−𝑡 2 𝑃 0 − 𝑡 2 𝑃 2 2 1−𝑡 𝑡
Quadratic Time Parameter 𝑃 1 𝑡=0.3 𝑞 𝑃 0 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑡=0.4 𝑞 𝑃 0 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑡=0.5 𝑞 𝑃 0 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑡=0.6 𝑞 𝑃 0 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑡=0.7 𝑞 𝑃 0 𝑃 2
Quadratic Time Parameter 𝑃 1 𝑞 𝑃 0 𝑃 2 Unique 𝑡∈(0,1) from 𝑃 0 , 𝑞, and 𝑃 2
Computation of Max Curvature Time 𝑃 1 = 𝑞− 1− 𝑡 𝑚𝑎𝑥 2 𝑃 0 − 𝑡 𝑚𝑎𝑥 2 𝑃 2 2 1− 𝑡 𝑚𝑎𝑥 𝑡 𝑚𝑎𝑥 (1) 𝑡 𝑚𝑎𝑥 = 𝑃 0 − 𝑃 1 .( 𝑃 0 − 2𝑃 1 + 𝑃 2 ) 𝑃 0 − 2𝑃 1 + 𝑃 2 .( 𝑃 0 − 2𝑃 1 + 𝑃 2 ) (2) Substitute (1) into (2) a 𝑡 𝑚𝑎𝑥 3 +𝑏 𝑡 𝑚𝑎𝑥 2 +𝑐 𝑡 𝑚𝑎𝑥 +𝑑=0 Unique 𝑡 𝑚𝑎𝑥 ∈(0,1) as a function of 𝑃 0 , 𝑞, and 𝑃 2
Related works [Schaback 1989]
Related works [Schaback 1989] Use input points as splliting points
Related works [Feng et al. 1995] Interpolate tangent vectors at control points No curvature control. Interpolation scheme. Properties. No curvature control.
G2 Condition
G2 Condition
G2 Condition
G2 Condition D C B A C=(1-λ)B+λD E
G2 Condition 𝜆=0.3
G2 Condition 𝜆=0.5
G2 Condition 𝜆=0.7
Curvature
G2 Condition 𝜆=0.40
G2 Joint C 𝐶= 1−𝜆 𝐵+𝜆𝐷 𝜆= Δ 𝐴,𝐵,𝐷 Δ 𝐴,𝐵,𝐷 + Δ 𝐵,𝐷,𝐸 ∈(0,1) D B A E
Inflection Point Curvatures have different signs 𝜆= |Δ 𝐴,𝐵,𝐷 | |Δ 𝐴,𝐵,𝐷 |+ |Δ 𝐵,𝐷,𝐸 | ∈(0,1) E C D B normals A
Inflection Point No matter how many segments
Optimization
Optimization Input
Optimization Initialization
Optimization
Optimization Iteration 0 pi ci,2 ci,0 ti
Optimization Iteration 0 ci,1 ci+1,1 λi ci,0 ci+1,2
Optimization ci,2 ci,1 ci,0 Iteration 0 ti 1− 𝑡 𝑖 2 𝑐 𝑖,0 +2 1− 𝑡 𝑖 𝑐 𝑖,1 + 𝑡 2 𝑐 𝑖,2 = 𝑝 𝑖 ci,0 ti 𝑐 𝑖,2 = 1− 𝜆 𝑖 𝑐 𝑖,1 + 𝜆 𝑖 𝑐 𝑖+1,1 Only 𝑐 𝑖,1 is variable.
Step 2 𝑎11 𝑎12 𝑎1𝑛 𝑎21 𝑎22 𝑎23 𝑎32 ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ 𝑎𝑛−1,𝑛 𝑎𝑛1 𝑎𝑛,𝑛−1 𝑎𝑛𝑛 𝑐1,1 𝑐2,1 𝑐3,1 ⋮ ⋮ 𝑐𝑛,1 𝑝1 𝑝2 𝑝3 ⋮ ⋮ 𝑝𝑛 =
Optimization Iteration 1
Optimization Iteration 2
Optimization Iteration 3
Optimization Iteration 4
Optimization Iteration 5
Optimization Iteration 10
Curves with Boundaries
Local support in practice Explain. Loop.
Results and Examples
Adobe Illustrator
Adobe Illustrator
Adobe Illustrator
Conclusions Quadratic spline G2 continuous (G1 at inflection points) Max curvatures only appear at control points Cusps only appear at control points Local support in practice
Future work Kappa curve can suit any curve primitives which have unique max curvature point High degree like cubic curve Rational curves Integral curves Curves in 3D