NURBS: Definition

Let us consider the way of introducing homogeneous coordinates to a B-spline curve and derive the NURBS definition.

Given n+1 control points p0, p1, ..., pn and knot vector U = { u0, u1, ..., um } of m+1 knots, the degree p B-spline curve defined by these parameters is the following:

Let control point pi be rewritten as a column vector with four components with the fourth one being 1:

For homogeneous coordinates, multiplying the coordinates of a point with a non-zero number does not change its position. Let us multiply the coordinates of pi with wi to obtain a new form in homogeneous coordinates:

Plugging this new homogeneous form into the equation of a B-spline curve above, we obtain the following:

Therefore, point p(u) is also in a homogeneous coordinates form. Let us convert it back to Cartesian coordinate by dividing p(u) with the fourth coordinate:

Finally, we have a clean form as follows:

This is the degree p NURBS curve defined by control points p0, p1, ..., pn, knot vector U = { u0, u1, ..., um }, and weights w0, w1, .., wn. Note that since weight wi is associated with control point pi as its fourth component, the number of weights and the number of control points must agree.

In general, weights wi are positive; but negative weights have interesting applications. If a weight, say wi, becomes zero, the coefficient of pi is zero and consequently control point pi has no impact on the computation of p(u) for any u (i.e., pi is "disabled"). Moreover, zero weights also have a very useful interpretations called infinite control points. We shall discuss this concept later.

Two Immediate Results

Here are two results available immediately from the above definition.
  1. If all weights are equal to 1, a NURBS curve reduces to a B-spline curve.
    This is obvious because in this case control points in homogeneous form are identical with their conventional Cartesian form and the denominator is 1.
  2. NURBS Curves are Rational
    This is also obvious. The value multiplied to control point pi, Ni,p(u)wi, is a polynomial of degree p. The denominator is the sum of all coefficients and hence is also a polynomial of degree p. As a result, the coefficient of control point pi is the quotient of two degree p polynomials and function p(u) is rational.
These two results point out that B-spline curves are special cases of NURBS curves. Moreover, since NURBS curves are rational, circles, ellipses and many other curves which are impossible with B-spline curves are now possible with NURBS curves.

A Geometric Interpretation

Are NURBS curves special kinds of curves? It turns out that they are not. In fact, they are simply another face of B-spline curves. Consider control points pi = ( wixi, wiyi, wixi, wi ). This point has four components and can be treated as a point in the four dimensional space and, consequently, p(u) below becomes a B-spline curve in the four dimensional space:

In the discussion of a geometric interpretation of homogeneous coordinates, dividing the the first three coordinate components with the fourth one is equivalent to projecting a four dimensional point to the plane w = 1. Since the above curve is converted to a NURBS curve by dividing the first three coordinates with the fourth, we conclude that a NURBS curve in the three dimensional space is merely the projection of a B-spline curve in the four dimensional space. Therefore, if we know B-spline curves well, we should be able to know NURBS curves easily.