B-Spline Curves

The de Bohr Algorithm

Algorithm Overview

Given control points \(\mathbf{d}_0,\ldots,\mathbf{d}_{m-1}\) and knot vector \(T=(t_i)\) of a B-spline curve \(F(u)=\sum_{i=0}^{m-1}N_i^n(u)\,\mathbf{d}_i\) and a parameter interval \(t_j\leq u < t_{j+1}\).

Evaluate \(F\) at \(u\):

\[ \newcommand{\d}{\mathbf{d}} \begin{align} \d_i^0 &:=\d_i\,,\qquad i = j-n, \ldots , j\\ \d_i^k &:=\frac{t_{i+n+1-k}-u}{t_{i+n+1-k}-t_i}\,\d_{i-1}^{k-1}+\frac{u-t_i}{t_{i+n+1-k}-t_i}\,\d_i^{k-1}\,,\\ &\mbox{with} \quad k = 1, \ldots, n \quad\mbox{and} \quad i = j-n+k, \ldots, j \end{align} \]

Then: \(F(u) = \mathbf{d}^n_j\)



The JavaScript Code