B-Spline Curves
Multiple Knots
Multiple Knots are allowed, if the multiplicity of the knots is less or equal to the degree.
Generalized knot vector:
\[
t_0\leq{}t_1\leq\cdots\leq{}t_j\leq{}t_{j+1}\leq\cdots\leq{}t_{m+n}\,,\qquad t_j\lneq t_{j+n}
\]
Remark: The first and last knot might have multiplicity \(n+1\)
Recursive Definition of B-Splines with Multiple Knots
\[
N_i^0(u)=
\begin{cases}
1 & u\in[t_i,t_{i+1})\\
0 & \text{otherwise}
\end{cases}
\]
-
case \(t_{i+k}-t_i=0\), i.e. the multiplicity of \(t_i\) ist greater or equal to \(k+1\).
\[ N_i^k(u)=\frac{t_{i+k+1}-u}{t_{i+k+1}-t_{i+1}}\,N_{i+1}^{k-1}(u) \]
-
case \(t_{i+k+1}-t_{i+1}=0\), i.e. the multiplicity of \(t_{i+1}\) is greater or equal to
\(k+1\).
\[ N_i^k(u)=\frac{u-t_i}{t_{i+k}-t_i}\,N_i^{k-1}(u) \]
-
case \(t_{i+k+1}-t_{i}=0\), i.e. the multiplicity of \(t_{i}\) is greater or equal to \(k+2\),
i.e. support of \(N_i^k\): \(\text{supp}(N_i^k):=\{\overline{u\,|\,N_i^k(u)\neq 0}\}=[t_i,t_{i+k+1}]\) is empty.
\[N_i^k(u) \equiv 0\]
-
otherwise
\[
N_i^k (u)=
\frac{u-t_i}{t_{i+k}-t_i}\,N_i^{k-1} (u) +
\frac{t_{i+k+1}-u}{t_{i+k+1}-t_{i+1}}\,N_{i+1}^{k-1} (u)
\]
The JavaScript Code