next up previous
Next: Computation of the new Up: index Previous: Knot removal - knot


Energy fairing

In principle, the energy fairing works similarly to the knot removal - knot reinsertion method. The main difference is the relation to fairness criterion (C1) meaning the local minimization of an energy integral.

Before going into details, we introduce at first some useful notations which allow a distinction of the different stages of the curve:

  1. The given curve which is to be faired:
    \begin{displaymath}
{\mbox{\bf x}}(t) = \sum_{i=0}^n {\mbox{\bf d}}_i \cdot N_{i,k}(t)
\;\;\; , \;\;\;
t \in [t_{k-1}, t_{n+1}]\;\;\;.
\end{displaymath}
    (9)

  2. The B-spline curve which has already been faired by a certain number of iterations:
    \begin{displaymath}
\bar{\mbox{\bf x}}(t) = \sum_{i=0}^n \bar{\mbox{\bf d}}_i \cdot N_{i,k}(t)
\;\;\; , \;\;\;
t \in [t_{k-1}, t_{n+1}]\;\;\;.
\end{displaymath}
    (10)

  3. The new curve in the next iteration step:
    \begin{displaymath}
\widetilde{\mbox{\bf x}}(t) = \sum_{\stackrel{\scriptstyle i...
...dot N_{r,k}(t)
\;\;\; , \;\;\;
t \in [t_{k-1}, t_{n+1}]\;\;\;.
\end{displaymath}
    (11)

Then we consider the following local minimization problem: find a new location $\widetilde{\mbox{\bf d}}_r \in \ifmmode{I\hskip -3pt R} \else{\hbox{$I\hskip -3pt R$}}\fi ^s$ of $\bar{\mbox{\bf d}}_r$ in order to minimize the energy integral depending on $\widetilde{\mbox{\bf d}}_r$

\begin{displaymath}
E_l(\widetilde{\mbox{\bf d}}_r) \;=\; \int_{t_{k-1}}^{t_{n+1...
...t_{n+1}}
\left(
\widetilde{\mbox{\bf x}}^{(l)}(t)
\right)^2 dt
\end{displaymath}
(12)

where $\;l=2\;$ or $\;l=3\;$ are appropriate choices, as already mentioned in the introduction.

In addition, the deviation from the original curve $\mbox{\bf x}$ has to be controlled by a prescribed tolerance $\delta $, so we always have to satisfy the constraint

\begin{displaymath}
\max \{ \vert {\mbox{\bf x}}(t) - \widetilde{\mbox{\bf x}}(t) \vert
\; : \;
t \in [t_{k-1},t_{n+1}] \} \le \delta
\;\;\;.
\end{displaymath}
(13)


Now, before we can state the actual fairing algorithm it is necessary to investigate the following aspects in more detail:

a)
how to compute the minimal solution $\widetilde{\mbox{\bf d}}_r$,
b)
how to fulfil the distance tolerance $\delta $,
c)
how to rank all control points $\{ \bar{\mbox{\bf d}}_i \}$ of $\bar{\mbox{\bf x}}$ in order to find the location with the best fairing effect in the next step.


Finally, it should be remarked that the integrals (12) obviously enforce some kind of continuity in order to be well defined. Doing so, the most convenient way is to allow at least $(k-l)$-fold knots in the underlying knot sequence of the spline curves since the curve is then at least $C^{l-1}$ continuous everywhere. If the knot sequence, however, contains knots with higher multiplicity then the curve should be split at these knots by treating the resulting pieces separately.



Subsections