I found that both Bezier curves and B-splines are described with a formula

$p(t)=\sum\limits_{i=0}^d B^i_m p_i$

but in the case of B-splines $B^i_m$ are B-spline blending functions, while for Bezier curve these are Bernstein polynomials.

Also I found, that perspective transform can easily be applied to NURBS, which is similar to B-spline but each control point is associated with weight, which can also be represented in homogeneous coordinates

$p_i = \left( \begin{array}{c} x_iw_i \\ y_iw_i \\ w_i \end{array} \right)$

And the plot will be the follows:

$p(t)=\frac{\sum\limits_{i=0}^d B^i_m p_i}{\sum\limits_{i=0}^d B^i_m w_i}$

(is this correct?)

My question is: how important is replacing B-spline blending function to Bernstein polinomials?

Can I transform Bezier curves by applying the same technique?

And also direct formulas would be appreciated :)


Also I am not sure about summation indice. In Bezier formula, the order of polynomial coincides with the number of control points, while in B-spline is not.

Even on Wolfram's page the formula for "rational Bezier curve" is given with free order index:

enter image description here

Does this mean that Stephen also not sure about polynomials? :)


Your formula for a NURB curve is not quite correct. You missed out the $w_i$ in the numerator. It should be $$ p(t)=\frac{\sum\limits_{i=0}^d B^i_m(t) w_ip_i}{\sum\limits_{i=0}^d B^i_m(t) w_i} $$

You can apply perspective projections to either Bezier curves or b-spline curves in the same way.

Bezier curves are actually just a special case of b-spline curves. Suppose you are working with curves of degree $m$, and you use the knot sequence consisting of $m+1$ zeros followed by $m+1$ ones: $(0,0,\ldots, 0,1,1,\ldots, 1)$. The b-spline basis functions constructed from this knot sequence are actually Bernstein polynomials, so the associated b-spline curve will actually be a Bezier curve.

The limits in the summations are directly related to the numbers of control points. If a b-spline curve has $d+1$ control points $P_0, \ldots, P_d$, the summation runs from $0$ to $d$, regardless of its degree. A Bezier curve of degree $m$ has $m+1$ control points, so the summation runs from $0$ to $m$.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.