
(1) Increasing or decreasing w
i
will increase or decrease b which pulls the curve
toward p
i
or pushes it away from p
i
, respectively.
(2) Increasing or decreasing w
i
will push the curve away from p
j
or pull it toward
p
j
, j π i, respectively.
(3) The points q
i
lie on the line segment [q,p
i
].
(4) As q
i
approaches p
i
, b approaches 1 and w
i
approaches infinity.
We finish by listing a few of the important properties of NURBS curves.
11.5.3.2 Theorem. Let p(u) be a NURBS curve of order k with domain [0,1], knots
u
i
, control points p
i
, and weights w
i
> 0.
(1) The rational basis functions R
i
(u) for p(u) satisfy R
i
(u) ≥ 0 and
(2) The curve p(u) interpolates the first and last point. More precisely, p(0) = p
0
and p(1) = p
n
.
(3) (Local control) Changing the control point p
i
or weight w
i
only changes the
formula for p(u) over the interval (u
i
,u
i+k
).
(4) (Projective invariance) If the curve p(u) is transformed by a projective trans-
formation, the formula for the new curve is gotten simply by transforming the homo-
geneous control points (equation (11.102) and then projecting back to R
3
to get
another formula like equation (11.103).
(5) (Local convex hull property) The curve p(u) satisfies a strengthened convex
hull property like the ordinary B-splines, namely, for each i, p([u
i
,u
i+1
]) is contained
in the convex hull of the control points p
i-k+1
, p
i-k+2
,..., p
i
.
(6) (Variation diminishing property) A plane (line in planar case) intersects the
curve p(u) in no more points than it intersects the control polygon.
Proof. See [PieT95]. The projective invariance property is stronger than affine
invariance. Ordinary B-splines are affinely invariant but not projectively invariant.
Finally, although rational Bézier and B-spline curves are defined as projections
of ordinary Bézier and B-spline curves in R
4
to the plane w = 1, it turns out that the
associated correspondence between ordinary splines in R
4
and ordinary splines in R
3
is not as natural as one might want. For example, not every C
1
Bézier and B-spline
curve p(u) in R
3
with simple knots is a projection of a spline curve q(u) in R
4
with
simple knots. To find a curve q(u) that projects to p(u) we would have to allow q(u)
to have multiple knots. See [Fari89] for a discussion of this and the condition that
guarantees that a C
1
curve with simple knots is a projection of a C
1
curve with simple
knots.
11.5.4 Efficient B-Spline and NURBS Curve Algorithms
As mentioned earlier, B-spline and NURBS curves are used a lot. Fortunately, although
their definitions seem somewhat complicated and it is certainly more work than
Ru
i
i
n
()
=
=
Â
0
1.
436 11 Curves in Computer Graphics