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.