|
Affine Invariance
Convex Hull Property
Locality properties
Continuity
Variation Diminishing Property
Affine Invariance
A B-spline curve has many nice properties. The first one we would
like
to show is affine invariance.
Translational Invariance: Suppose we translate the control polygon
first, and then produce a new curve based on this newly positioned
control
polygon. The new curve is exactly the same as the one if we translate
the old curve, for all the points on the curve, point by point. This
is called translation invariance.
Rotation Invariance: If we rotate the control polygon to produce a
new
curve, it will be the same as if we rotate the old curve. This is
called
rotation invariance.
Scaling Invariance: If we scale the control polygon to produce a
new
curve, it will be the same as if we scale the old curve. This is
called
scaling invariance. Invariance under translation, rotation and
scaling
are common examples of affine invariance. Earlier interpolating
methods
didn't have this property. Therefore, interpolants have to be
re-calculated
whenever they are transformed. This can be a particularly difficult
problem.
Convex Hull Property
A curve may lie within the convex hull formed by control vertices.
This is called convex hull property. One way to alter the shape of
the
curve is to keep the same set of basis functions but to change the
position
of the control vertices. Again, at all times, the curve lies within
the convex hull formed by control vertices. Note that each control
vertex has different effect contributing to the shape of the curve,
depending solely on its corresponding basis function. So far we have
seen only one evaluation interval.
Suppose now we have one extra control vertex and we effectively
have
two intervals such that the first set of control vertices define the
first piece of the curve together with the first set of basis, and
the
first segment lies entirely within the convex hull formed by the
first
set of control vertices. The next set of control vertices define the
second piece of the curve together with the second set of basis, and
the second segment lies entirely within the convex hull formed by the
second set of control vertices. Each piece of segment is a polynomial
curve so that they form a piecewise polynomial curve and they are
connected
in a smooth way such that they share control vertices and their knots
overlap. The point where segments are pieced together is often called
a joint or a junction point. It is a point in R2 which
always
corresponds to a knot position at the parameter space. We can have
three
segments, four segments, five segments, or more.
Let us traverse along the curve. On each evaluation interval, there
are exactly K basis functions that are non-zero where K is the order.
The basis functions always add up to 1. As a consequence, on each
evaluation interval, there are exactly K control vertices that can
have
contribution to the curve definition, and the curve segment lies
entirely
in the convex hull formed by every successive K vertices.
Locality Properties
The next property we would like to demonstrate is the locality
property.
Given a vertex associated with the basis function
which is non-zero over only the first four intervals, moving
the vertex will change only the first four segments of the curve.
Another
vertex is associated with the basis function
which is non-zero over the last four intervals, moving this
vertex will change only the last four segments of the curve. Another
vertex is associated with the basis function, but
its
support is truncated, therefore it is non-zero over the last two
intervals,
and moving this vertex will change the last two segments of the
curve.
As a conclusion, the locality of the control vertices indicates that
moving a control vertex will change at most K curve segments, where
K is the order, because its associated basis function can have, as
its
support, at most K intervals on which it is non-zero.
Locality of Knots
The next property we would like to demonstrate is another locality
property, the locality of knots. Let us try to a knot.
A knot sitting on the support of four basis functions
but influenced by only one basis function stops before the last
interval of the support of the basis function. Therefore, when
we move around this knot, only the first three segments will be
changed.
Let us try to move this knot. This knot sits on the support of four
basis functions, but its influence on the one basis
function starts after the first interval of the support of the next
basis function. Therefore, when we move around this knot, only the
last three segments are changed. This knot sits on the support of
five basis functions. The union of their support covers the entire
domain of this curve. Therefore moving this knot will change almost
the entire curve. As a conclusion, the locality of the knots
indicates
that moving a knot will change at most (K-1) intervals to its left
and at most (K-1) intervals to its right, where K is the order.
Continuity
Multiple knots may have impact on the continuity of the curve. A
B-spline
curve is infinitely differentiable, except possibly at knot
positions.
A curve may be C2 continuous at a point. C2
continuity
means the second derivatives are continuous. As a matter of fact, at
every point on this curve, a linear combination of C2
continuous
basis functions, the curve is at least C2 continuous. If
we move this
knot and make it collapse to its neighbor, the curve will be
Cl continuous
at this point. Cl continuity means the first derivatives
are continuous.
It can be proven that this point sits on the line connecting the
two vertices and the curvature is no longer continuous at this
point. The curve can't be C2, instead it is C1
continuous. Although
it seems that by stacking up two knots, the curve was changed from
containing
five segments to four segments, actually it can be interpreted as if
there are still five segments in this curve, except one of them is a
degenerated, zero-length segment which begins and ends at exactly the
same knot position. Now, let us move this knot to make a triple knot.
At this point, only one basis function is contributing, therefore,
it interpolates the vertex, and the curve is CO
continuous,
quite obviously. Let us make a quadruple knot. It is a jump discontinuity,
some people call it C-1 continuous. Let us traverse from
the left
side of the parameter. It passes through one vertex. As soon
as we move over to the other side, it jumps to the next vertex, and
moves on.
As a conclusion, a B-spline curve of order K is in general
CK-2
continuous. For instance, a cubic B-spline curve is C2
continuous.
But at a knot position, the continuity is CK-M-I, where K
is the
order, and M is the multiplicity of that knot.
Variation Diminishing Property
The next property we would like to illustrate is the variation
diminishing
property. The variation diminishing property says that a B-spline
curve
is no more wiggly than its control polygon. An intuitive illustration
of this is that a straight line will intersect the curve no more than
it does the control polygon. For instance, if we have a straight
line, it intersects the control polygon three times and
it intersects the curve also three times. In this case, it
intersects
the control polygon twice, but it intersects the curve only once. In
this case, it intersects the control polygon three times, but it
doesn't
intersect the curve at all.
|