
On-Line Geometric Modeling Notes
Overview
B-Spline curves are piecewise Bézier curves. To develop B-splines, and to do so in a continuous smooth way, we must discover the conditions on which two Bézier curves can be pieced together. To examine this process, we will first consider a single cubic curve and show how to construct the many Bézier control polygons that represent the curve. These control polygons, and their geometric constraints, are paramount in the definition of the B-spline curve.
To get a postscript version of these notes look here.
A Matrix Equation for a Cubic Curve
A cubic polynomial curve
can be written as a Bézier curve. If
we let
be the control points of the curve, then
it can be written as

where the
are the cubic
Bernstein polynomials.
In this representation,
and
.

The representation of the curve can be written in a matrix form by

where

The matrix M defines the blending functions for the curve
- i.e. the
cubic Bernstein polynomials.
(In reality
there are three equations here, one for each of the x, y and z
components of
.)
Reparameterization using the Matrix Form
The control polygon
defines the unique cubic curve
, and is most frequently used to
represent the curve between t=0 and t=1, where
and
. However, given an
interval [a,b], there exists a unique control polygon
defining a Bézier curve
, such that
and
.
These control polygons, called Bézier polygons can be generated by
reparameterization and by manipulating the matrix representation above.
Suppose that we wish to find the Bézier polygon for the portion of
the curve
where
.
If we define this new curve as
, then we can define
. It is straightforward to check that both
and
are cubic curves, and represent the same
curve.
We can calculate the control points for
by using our matrix
form, that is

where the matrix
has columns whose entries are the
coefficients of 1, t,
and
respectively in the polynomials
1, (b-a)t+a,
, and
, respectively. This can be rewritten as

where
is equal to
![]()
The new control points for the portion of the curve where t ranges
from a to b can now be written as
.
An example of this which will be useful to us in learning how to piece
together two Bézier curves is to find the control polygon for the
curve
when its parameter ranges from 1 to 2.
In this case, we have

where

So the control polygon for that portion of
curve where t
ranges from 1 to 2 is given by

Working with some algebra, and defining new temporary points
, we see that

Using these equations,
these new control points can be analyzed geometrically and as a result each
can be calculated by a simple geometric process using only the initial
control polygon
.
If we consider the following figure, where we have displayed
the control point
, it is
easy to locate the point
.

By equation (2),
lies on an extension of the line
where the distance between
and
, and between
and
are equal.

By equation (4),
lies on an extension of the line
, where the lengths defined by
and
are equal - and as a result of this fact and
equation (6),
lies on an extension of the line
, where the lengths defined by
and
are equal. This enables us to construct
.

Similarly, using equations (3), (4),
(5), and (7), we can construct
as in the
the following illustration

The result of this exercise is that we can
construct the control points of the curve
directly from the
original control points for
. These two functions represent
the same curve.
An interesting exercise for the reader is to calculate the portion of
the curve
as t ranges from 0 to 2. In this case, the
new curve
can be defined as
, and by
substituting this into the matrix form, the resulting Bézier polygon should
be
. Try it out.
The example above illustrated the fact that there are many Bézier
polygons that can represent a cubic curve. However the geometric
construction process generated by this example did not quite
illustrate the fine details of the algorithm. To see the necessary
characteristics of the algorithm, we will use the following example:
Find the control polygon for the portion of the curve
when
t ranges between 1 and b, for an arbitrary value of b.
In this case, we define the curve
,
where a=b-1
and use our matrix representation to calculate

where

So the control polygon for that portion of
curve where t
ranges from 1 to b is given by

These new control points can again be analyzed geometrically and as
a result each
can be calculated by a simple geometric process using only the initial
control polygon
.
To accomplish this, we first write

where the last calculation can be done with some algebra.
The important factor here is the a term. Each of these points is on
an extension of a line of the original control polygon, or the
extension of a constructed line. The factor a determines how much
to extend. The following illustration shows the construction for our
previous Bézier curve with
, giving the portion of the
where t ranges from 1 to
.

Summary
We have shown here that for a cubic curve, there are many control polygons that can define the curve. Using our matrix representation, we have shown how to determine the control polygon that covers an arbitary interval [c,d] of the original curve. Our examples will be very useful when we discuss how to piece two or more Bézier curves together.
|
This document maintained by
Ken Joy
All contents copyright (c) 1996, 1997 |
|