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 🙂
UPDATE
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:
Does this mean that Stephen also not sure about polynomials? 🙂
Best Answer
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$.