[Math] How to apply perspective transform to Bezier curve

bezier-curvegeometrytransformation

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:

enter image description here

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$.