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 B-spline curve of degree p 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:
We can treat this Pi as a homogeneous coordinate. Since multiplying the coordinates of a point (in homogeneous form) with a non-zero number does not change its position, let us multiply the coordinates of Pi with a weight wi to obtain a new form in homogeneous coordinates:
Note that Pwi and Pi represent the same point in homogeneous coordinate. Plugging this new homogeneous form into the equation of the above B-spline curve, we obtain the following:
Therefore, point Cw(u) is the original B-spline curve in homogeneous coordinate form. Now, let us convert it back to Cartesian coordinate by dividing Cw(u) with the fourth coordinate:
Finally, we have a clean form as follows:
This is the NURBS curve of degree p 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, weight wi is 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 C(u) for any u (i.e., Pi is "disabled"). Moreover, zero weights also have a very useful interpretations called infinite control points.
In the discussion of a geometric interpretation of homogeneous coordinates, dividing the the first three coordinate components by 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 four-dimensional space. Therefore, if we know B-spline curves well, we should be able to know NURBS curves easily.