Scattered Points Interpolation with Globally Smooth B-Spline Surface using Iterative Knot Insertion
Xin Jiang,Bolun Wang,Guanying Huo,Cheng Su,Dong-Ming Yan,Zhiming Zheng
DOI: https://doi.org/10.1016/j.cad.2022.103244
2022-07-01
Abstract:Highlights•We introduce a new method to interpolate scattered 3D data points with a single B-spline surface patch, whose knot vectors are generated according to the parametrization of the scattered data points by iteratively inserting knots to the knot vectors. The generated knot vectors guarantee the existence of interpolation surfaces, while often using fewer control points.•Our method introduces a novel parameter δ to improve the stability of control point solving. By increasing δ, the interpolation errors will be reduced.•Since our knot vector construction algorithm guarantees the existence of the interpolation surface, the control points can be solved by a global fairing energy minimization procedure with strict interpolation constraints. Thus, a globally smooth B-spline surface can be generated.We introduce a new method to interpolate scattered 3D data points with a single B-spline surface patch which is globally smooth. Given a set of scattered 3D data points and their corresponding parametrization, our method first constructs a set α of B-spline bases using a weighted strategy, and inserts knots to the knot vectors based on α. Then, the knot insertion procedure is iterated until a set β of B-spline bases exists, which indicates the existence of the interpolation surface. Finally, by applying the fairing energy minimizing with interpolation constraints, a globally smooth B-spline surface which interpolates the data points can be produced. Experimental results demonstrate that the generated B-spline surfaces often have fewer control points than those of traditional methods, while keeping the scattered data points interpolated accurately. The implementation of our algorithm and the scripts to reproduce all the results are available at https://github.com/wangbolun300/sparse_data.
computer science, software engineering