When to choose Bezier curve over B-Spline curve

bezier-curvecurvesspline

I am reading about Bézier curves and B-Spline curves. I have understood both mathematically and intuitively that the big difference between these two kind of curves is that when dealing with Bézier curves, a modification of a control point results to the alteration of the whole shape whereas when dealing with B-Spline curves, a modification of a control point will only affect the segment at which this specific control point refers to.

Now, I am trying to come up with an example where one of the two curves would be more appropriate to use in contrast with the other and the opposite as well. Any thought would be really appreciated!

Best Answer

Moving a control point of a b-spline curve will affect a few nearby segments, not just one, but will generally not impact the entire curve.

Typically, people who design high-quality surfaces (like the exterior surfaces of car bodies) prefer Bézier curves and surfaces. They are suspicious of the joints where the segments of a b-spline curve connect together. If the b-spline surfaces are cubics (as they often are), then the suspicion is justified, because the joins will be visible in surface reflections. For these sorts of folks, the local nature of b-spline editing is a disadvantage, because it destroys the "character" of the curve and often leads to local undulations and even inflexions.

On the other hand, if you're doing approximation, then b-splines are probably a better choice, in many situations. The only way to get more degrees of freedom (and a better approximation) with Bézier curves is to increase the degree. A string of low-degree segments (i.e. a spline curve) is often preferable to a single segment with high degree. Mostly because this makes evaluation of curve points and derivatives less expensive.

People will tell you that high-degree polynomials (i.e. Bézier curves) are a bad idea because they tend to "wiggle". This is numerical analysis folklore, but according to Trefethen and Higham (who ought to know), the bad rep is undeserved, and the problems are avoidable. Anyway, there is no chance that high-degree curves defined by Bézier control points will oscillate badly -- the variation-diminishing property of Bézier curves guarantees this. So, no need to be afraid of the wiggling horror stories.

And, in case you're wondering, NURBS (rational curves, as opposed to polynomial ones) are now considered to be a bad idea even by the people who first proposed them.

Related Question