Cubic polynomial curve modeling with Bézier handles is ubiquitous, but it provides no practical mechanism for achieving curvature continuity. We present two distinct solutions for this problem. The first one is continuity-enhancing degree elevation that offers a general solution to achieve any level of continuity by converting the given curve to a polynomial of a higher degree. Our second solution is continuity-enhancing splits, which is specific to cubic curves and achieves curvature continuity by splitting the curve pieces but maintaining the piecewise cubic polynomial form. Both of these solutions utilize a local optimization process with a closed-form solution, achieving continuity enhancement with a constant computation overhead per piece.We also explain how to incorporate linearity constraints to seamlessly form linear curve pieces, when desired. Our solutions are effective in extending the popular curve modeling interface with Bézier handles to splines with curvature (or higher) continuity. Furthermore, we show that our solutions can also be used for defining new interpolating curve formulations with desirable properties, and they can be used with higher-dimensional curves or surfaces.
You can find a JavaScript and HTML implementation of our Continuity-Enhancing Degree Elevation and Splits methods here.
The original Utah Teapot has C1 continuity, so its reflections are discontinuous where its different patches join (see the path connecting the two blue arrows). Our continuity enhancement to G2 eliminates these discontinuities, so there is no discernable line between the two arrows.