Next: Example Up: Fairing of B-Spline Curves Previous: Examples
If a designer constructs a curve in a way that he splits this curve into a
set of Bézier- or B-splines, one possible solution to smooth these curves
is to handle each one separately and fix as much as needed control points at
the connections to hold the continuity. But by using this method it is not
possible to control the whole shape of the curve.
A further method is to convert the curves into one B-spline curve. This can
easily be done by using a knot-vector with multiple inner knots. If the degrees
of the curves are not all the same we have to do a degree elevation to the
highest one. By the way, this is also the procedure if you import a VDA-FS
file into your CAD system.
By fairing this B-spline curve with degree-folded inner knots the
result may look like the curve in figure 5.
Figure: The disturbed B-spline curve with multiple inner knots and the
faired one.
|
The shown segments of the curve are smooth (they are nearly lines) whereas the
whole curve is not smooth as the continuity of the segments is not
optimized. To avoid this, two possible extensions will be described:
- Remove as much as possible inner knots to get a minimum continuity of (or higher).
- Use an extended fairness functional which is a mixture of energy and
continuity.
The usual way to construct a set of splines is to obtain a continuity at the
connecting points of at least . If the curve has a continuity of at the degree-folded knot ,
,
must hold. In comparison with e.g. theorem 8 in [6] we see that this
knot can be removed exactly and the new control points are determined by
In the cases, the curve is not overall another possible procedure is
to remove as much as possible inner knots with the method described in
[6] to get a or higher continuity. Here, also an upper bound for
the maximum deviation can be given. Thereafter this curve can be faired with
the algorithm described before.
The second extension is to optimize not only the energy functional but also
the continuity at the inner knots. By doing so the extended fairness functional
is going to be used. Here denotes the multiplicity of the knot.
Because of the multiplicity of the knots, the left and right derivative in
(24) can be calculated easily. With
we obtain
|
|
|
|
(28) |
with the abbreviation
. Here we can already see
that we have to distinguish three cases: firstls, the control point is an inner point or the multiplicity is less than , secondly, the control
point lies at the segment connection point and thirdly, the control point is a
neighbour of the segment connection point.
To find the optimal control point
we have to solve
After some calculations and with the following abbreviations
|
(30) |
and
we do obtain the following formula for the new control point:
Another spelling for (31) is
with
where
and
are the new control
points obtained by minimizing only the energy functional () or
only the continuity (). The incorporation of the distance tolerance
(20) and the new control point is the same as described in
section 2.3.
In the special case of a cubic B-spline curve with an uniform knot vector,
the new control points are determined by (for ):
and
|