Let us consider the way of introducing homogeneous coordinates to a B-spline curve and derive the NURBS definition.
Given n+1 control points P_{0}, P_{1}, ..., P_{n} and knot vector U = { u_{0}, u_{1}, ..., u_{m} } of m+1 knots, the B-spline curve of degree p defined by these parameters is the following:
Let control point P_{i} be rewritten as a column vector with four components with the fourth one being 1:
We can treat this P_{i} 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 P_{i} with a weight w_{i} to obtain a new form in homogeneous coordinates:
Note that P^{w}_{i} and P_{i} 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 C^{w}(u) is the original B-spline curve in homogeneous coordinate form. Now, let us convert it back to Cartesian coordinate by dividing C^{w}(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 P_{0}, P_{1}, ..., P_{n}, knot vector U = { u_{0}, u_{1}, ..., u_{m} }, and weights w_{0}, w_{1}, .., w_{n}. Note that since weight w_{i} is associated with control point P_{i} as its fourth component, the number of weights and the number of control points must agree.
In general, weight w_{i} is positive; but negative weights have interesting applications. If a weight, say w_{i}, becomes zero, the coefficient of P_{i} is zero and, consequently, control point P_{i} has no impact on the computation of C(u) for any u (i.e., P_{i} 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.