# Nonuniform rational B-spline

NURBS, short for nonuniform rational B-spline, is a computer graphics technique for drawing curves. A NURBS curve is defined by a set of weighted control points, the curve's order and a knot vector. NURBS are generalizations of both B-splines and Bézier curves, with the primary difference being the weighting of the control points which makes them rational (non-rational B-splines are a special case of rational B-splines, in practice most NURBS curves are non-rational).

NURBS curves are easily generalized into NURBS patches.

One of the first common uses of NURBS was in 3D modeling packages, notably Alias Wavefront's line starting in the early 1990s. NURBS are useful for a number of reasons: they

• offer one common mathematical form for both standard analytical shapes (e.g. conics) and free form shapes;
• provide the flexibility to design a large variety of shapes;
• reduce the memory consumption when storing shapes (compared to simpler methods);
• can be evaluated reasonably fast by numerically stable and accurate algorithms;
• are invariant under affine as well as perspective transformations;
• are generalizations of non-rational B-splines and non-rational and rational Bézier curves and surfaces.

The knot vector is a sequence of parameter values that determine the continuity along the NURBS curve. The number of knots is always equal to the number of control points plus the order of the curve.

The values of the knot vector must be in ascending order: the following vector is valid [0 0 1 2 3] while this one is not [0 0 2 1 3]. Also note that the only significant factor is the ratio of the values to each other: the knot vectors [0 0 1 2 3], [0 0 2 4 6] and [1 1 2 3 4] produce the same curve. There can be no more duplicate values than the degree: knots multiplicity <= degree. For degree 1 NURBS each knot is paired with a control point.

The order of the curve is greater or equal to 2, corresponding to a linear curve (order = 2), a quadratic curve (order = 3) and a cubic curve (order = 4). The curve is represented mathematically by a polynomial of same order, a cubic curve is represented by a degree 3 polynomial which order is 4. Besides, the number of control points must be equal to or greater than the order of the curve.

we need more on the "rational" aspect of NURBS, including a formula, and what distinguishes them from ordinary non-uniform B-splines

Refer to http://www.cs.bris.ac.uk/Teaching/Resources/COMS30115/all_9.pdf for an overview (especially chapters 1 and 2).

## References

• Les Piegl & Wayne Tiller: The NURBS Book, Springer-Verlag 1995-1997 (2nd ed). The main reference for Bézier, B-Spline and NURBS; chapters on mathematical representation and construction of curves and surfaces, interpolation, shape modification, programming concepts.
• Dr. Thomas Sederberg, BYU NURBS, http://www.tsplines.com/tutorials/ch5.pdf

• Art and Cultures
• Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
• Space and Astronomy