Theory#
SplineBox implements uniform splines of the form
where
\(r: \mathbb{R} \mapsto \mathbb{R}\) is a piecewise-continuous function referred to as spline
\(t \in \mathbb{R}\) is a continuous parameter
\(c[k] \in \mathbb{R}, k = 0,...,M-1\) are coefficients referred to as control points
\(\phi: \mathbb{R} \mapsto \mathbb{R}\) is a function referred to as basis
One can intuitively think of \(r\) being built by summing \(M\) copies of \(\phi\) centered at integer locations \(k=0,...,M-1\), each of them scaled by corresponding weights \(c[k]\). We refer to each \(t \in [k, k+1[, k=0,...,M-1\) as intervals.
We call junction points between the intervals knots \(n[k] = r(k)\). The relationship bewtween knots and control points is discussed on the page about the Basis function.
The function \(r\) can be made periodic by either \(M\)-periodizing the sequence of \(\{ c[k] \}_{k=0,...,M-1}\) such that \(c[0]=c[M]\), or by \(M\)-periodizing \(\phi\) and replacing it in (1) by its periodized version
The model (1) allows building 1D functions, planar parametric curves, and parametric curves embedded in 3D with the following modifications:
\(c[k] \in \mathbb{R}\) results in \(r: \mathbb{R} \mapsto \mathbb{R}\) (function);
\(\mathbf{c}[k] \in \mathbb{R}^2\) results in \(\mathbf{r}: \mathbb{R} \mapsto \mathbb{R}^2\) (planar parametric curve);
\(\mathbf{c}[k] \in \mathbb{R}^3\) results in \(\mathbf{r}: \mathbb{R} \mapsto \mathbb{R}^3\) (parametric curve in 3D).