Nonuniform rational B-splines (NURBS)

These are used in many engineering design systems to allow convenient design and adjustment of curved surfaces, in applications such as aircraft or automobile body design. In contrast to semi-algebraic models, which are implicit equations, NURBS and other splines are parametric equations. This makes computations such as rendering easier; however, others, such as collision detection, become more difficult. These models may be defined in any dimension. A brief 2D formulation is given here.

A curve can be expressed as

$\displaystyle C(u) = {\displaystyle\strut \sum_{i=0}^n w_i P_i N_{i,k}(u) \over \displaystyle\strut \sum_{i=0}^n w_i N_{i,k}(u) },$ (3.18)

in which $ w_i \in {\mathbb{R}}$ are weights and $ P_i$ are control points. The $ N_{i,k}$ are normalized basis functions of degree $ k$, which can be expressed recursively as

$\displaystyle N_{i,k}(u) = \bigg(\frac{u - t_i}{t_{i+k} - t_i} \bigg) N_{i,k-1}(u) + \bigg( \frac{t_{i+k+1} - u}{t_{i+k+1} - t_{i+1}} \bigg) N_{i+1,k-1}(u) .$ (3.19)

The basis of the recursion is $ N_{i,0}(u) = 1$ if $ t_i \leq u <
t_{i+1}$, and $ N_{i,0}(u)= 0$ otherwise. A knot vector is a nondecreasing sequence of real values, $ \{t_0,t_1,\ldots,t_m\}$, that controls the intervals over which certain basic functions take effect.

Steven M LaValle 2012-04-20