On-Line Geometric Modeling Notes

Bezier Control Polygons for Cubic Curves


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 tex2html_wrap_inline362 can be written as a Bézier curve. If we let tex2html_wrap_inline364 be the control points of the curve, then it can be written as
displaymath366
where the tex2html_wrap_inline368 are the cubic Bernstein polynomials. In this representation, tex2html_wrap_inline370 and tex2html_wrap_inline372.

tex2html_wrap564

The representation of the curve can be written in a matrix form by
 equation24
where
displaymath39
The matrix M defines the blending functions for the curve tex2html_wrap_inline376 - i.e. the cubic Bernstein polynomials. (In reality there are three equations here, one for each of the x, y and z components of tex2html_wrap_inline384.)


Reparameterization using the Matrix Form  

The control polygon tex2html_wrap_inline386 defines the unique cubic curve tex2html_wrap_inline388, and is most frequently used to represent the curve between t=0 and t=1, where tex2html_wrap_inline394 and tex2html_wrap_inline396. However, given an interval [a,b], there exists a unique control polygon tex2html_wrap_inline400 defining a Bézier curve tex2html_wrap_inline402, such that tex2html_wrap_inline404 and tex2html_wrap_inline406. 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 tex2html_wrap_inline408 where tex2html_wrap_inline410. If we define this new curve as tex2html_wrap_inline412, then we can define tex2html_wrap_inline414. It is straightforward to check that both tex2html_wrap_inline416 and tex2html_wrap_inline418 are cubic curves, and represent the same curve. We can calculate the control points for tex2html_wrap_inline420 by using our matrix form, that is
equation46
where the matrix tex2html_wrap_inline422 has columns whose entries are the coefficients of 1, t, tex2html_wrap_inline428 and tex2html_wrap_inline430 respectively in the polynomials 1, (b-a)t+a, tex2html_wrap_inline436, and tex2html_wrap_inline438, respectively. This can be rewritten as
equation64
where tex2html_wrap_inline440 is equal to
displaymath442
The new control points for the portion of the curve where t ranges from a to b can now be written as tex2html_wrap_inline450.


A Specific Example  

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 tex2html_wrap_inline452 when its parameter ranges from 1 to 2. In this case, we have
equation79
where
equation100
So the control polygon for that portion of tex2html_wrap_inline458 curve where t ranges from 1 to 2 is given by
 align138

Working with some algebra, and defining new temporary points tex2html_wrap_inline466, we see that
      align150
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 tex2html_wrap_inline468. If we consider the following figure, where we have displayed the control point tex2html_wrap_inline470, it is easy to locate the point tex2html_wrap_inline472.

tex2html_wrap566

By equation (2), tex2html_wrap_inline474 lies on an extension of the line tex2html_wrap_inline476 where the distance between tex2html_wrap_inline478 and tex2html_wrap_inline480, and between tex2html_wrap_inline482 and tex2html_wrap_inline484 are equal.

tex2html_wrap568

By equation (4), tex2html_wrap_inline486 lies on an extension of the line tex2html_wrap_inline488, where the lengths defined by tex2html_wrap_inline490 and tex2html_wrap_inline492 are equal - and as a result of this fact and equation (6), tex2html_wrap_inline494 lies on an extension of the line tex2html_wrap_inline496, where the lengths defined by tex2html_wrap_inline498 and tex2html_wrap_inline500 are equal. This enables us to construct tex2html_wrap_inline502.

tex2html_wrap570

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

tex2html_wrap572

The result of this exercise is that we can construct the control points of the curve tex2html_wrap_inline506 directly from the original control points for tex2html_wrap_inline508. These two functions represent the same curve.

An interesting exercise for the reader is to calculate the portion of the curve tex2html_wrap_inline510 as t ranges from 0 to 2. In this case, the new curve tex2html_wrap_inline518 can be defined as tex2html_wrap_inline520, and by substituting this into the matrix form, the resulting Bézier polygon should be tex2html_wrap_inline522. Try it out.


A Expanded Example  

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 tex2html_wrap_inline524 when t ranges between 1 and b, for an arbitrary value of b. In this case, we define the curve tex2html_wrap_inline534, where a=b-1 and use our matrix representation to calculate
equation181
where
equation202
So the control polygon for that portion of tex2html_wrap_inline538 curve where t ranges from 1 to b is given by
 equation228

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 tex2html_wrap_inline546. To accomplish this, we first write
equation241
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 tex2html_wrap_inline552, giving the portion of the tex2html_wrap_inline554 where t ranges from 1 to tex2html_wrap_inline560.

tex2html_wrap574


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

Comments to the Author

All contents copyright (c) 1996, 1997
Computer Science Department,
University of California, Davis
All rights reserved.



Ken Joy
Thu Jul 24 10:32:26 PDT 1997