Algorithm for Cubic Nonuniform B-Spline Curve Interpolation

This Demonstration shows how to interpolate a set of points in the plane via a cubic nonuniform B-spline curve and progressive-iterative approximation (PIA) technique. See Details for full implementation details.
  • Contributed by: Shutao Tang
  • (Northwestern Polytechnical University, Xi'an, China)

SNAPSHOTS

  • [Snapshot]
  • [Snapshot]
  • [Snapshot]

DETAILS

There are three main steps in the PIA algorithm.
1. Compute the knot vector via the chord-length parametrization
where
.
Then define the knot vector
,
where
2. Do the iteration.
At the beginning of the iteration, let
First, generate a cubic nonuniform B-spline curve by the control points :
.
The first adjustment of the control point is
,
then let
Again, this gives a cubic nonuniform B-spline curve with the control points , that is
.
In general, if the cubic nonuniform B-spline results from iterating times, let the adjustment of the control point be
.
Also, let
This gives the cubic nonuniform B-spline curve via the control points .
Finally, the set of curves is defined. Lin [1] has proved that these curves converge to the points, namely that
,
3. The error is given by
.
Reference
[1] 蔺宏伟, 王国瑾, 董辰世. 用迭代非均匀 B-spline 曲线(曲面)拟合给定点集[J]. 中国科学, 2003, 33(10), pp. 912–923.
H. Lin et al., "Use Iterative Non-Uniform B-Spline Curve (Surface) to Fitting Given Point Set [J]." China Science, 33(10), 2003 pp. 912–923 (in Chinese).
    • Share:

Embed Interactive Demonstration New!

Just copy and paste this snippet of JavaScript code into your website or blog to put the live Demonstration on your site. More details »

Files require Wolfram CDF Player or Mathematica.