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)


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


There are three main steps in the PIA algorithm.
1. Compute the knot vector via the chord-length parametrization
Then define the knot vector
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
[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.

Mathematica »
The #1 tool for creating Demonstrations
and anything technical.
Wolfram|Alpha »
Explore anything with the first
computational knowledge engine.
MathWorld »
The web's most extensive
mathematics resource.
Course Assistant Apps »
An app for every course—
right in the palm of your hand.
Wolfram Blog »
Read our views on math,
science, and technology.
Computable Document Format »
The format that makes Demonstrations
(and any information) easy to share and
interact with.
STEM Initiative »
Programs & resources for
educators, schools & students.
Computerbasedmath.org »
Join the initiative for modernizing
math education.
Step-by-Step Solutions »
Walk through homework problems one step at a time, with hints to help along the way.
Wolfram Problem Generator »
Unlimited random practice problems and answers with built-in step-by-step solutions. Practice online or make a printable study sheet.
Wolfram Language »
Knowledge-based programming for everyone.
Powered by Wolfram Mathematica © 2018 Wolfram Demonstrations Project & Contributors  |  Terms of Use  |  Privacy Policy  |  RSS Give us your feedback
Note: To run this Demonstration you need Mathematica 7+ or the free Mathematica Player 7EX
Download or upgrade to Mathematica Player 7EX
I already have Mathematica Player or Mathematica 7+