Is it possible to convert a B-Spline into a Bezier curve?

4.4k Views Asked by At

If so, do I lose any feature of the curve?

1

There are 1 best solutions below

5
On BEST ANSWER

A b-spline curve can be regarded as a chain of Bezier curves, joined end-to-end.

In the special case where the "chain" consists of just one Bezier curve, the conversion is trivial/unnecessary, of course.

If the chain has more than one Bezier curve, then conversion to a single Bezier curve can not be done exactly (in general). You have two choices: either you can construct a single Bezier curve that approximates the b-spline curve, or you can convert the b-spline curve (exactly) to a collection of Bezier curves.

If you want to do approximation, you'll need to tell us how you will judge the quality of the approximation. Then we can suggest suitable methods.

If you want to convert to multiple Bezier curves, then you can do this by knot insertion. If your b-spline curve has degree $m$, then you just add knots until each knot has multiplicity $m$. The control points of the new refined b-spline curve are then the control points of its Bezier "pieces". The algorithm is often known as "Boehm's Algorithm", after Wolfgang Boehm.