On-Line Geometric Modeling Notes

Quadratic Bezier Curves


Overview

The Bézier curve representation is one that is utilized most frequently in computer graphics and geometric modeling. The curve is defined geometrically, which means that the parameters have geometric meaning - they are just points in three-dimensional space. It was developed by two competing European engineers in the late 1960s to attempt to draw automotive components.

In these notes, we develop the quadratic Bézier curve. This curve can be developed through a divide-and-conquer approach whose basic operation is the generation of midpoints on the curve. However, this time we develop the curve by calculating points other than midpoints - resulting in a useful parameterization for the curve.

To get a postscript version of these notes look here.


Development of the Quadratic Bézier Curve  

Given three control points tex2html_wrap_inline271 tex2html_wrap_inline273 and tex2html_wrap_inline275 we develop a divide procedure that is based upon a parameter t, which is a number between 0 and 1 (the illustrations utilize the value t=.75). This proceeds as follows:

This is a similar procedure to the divide-and-conquer method in that geometric means are used to define points on the curve. Each time a new point is calculated, the control points are subdivided into two sets, each of which may be use to generate new subcurves. The method is identical to the divide-and-conquer method in the case tex2html_wrap_inline299.


Developing the Equation of the Curve

There is a different way of looking at this procedure - because there is a parameter involved. Each one of the points tex2html_wrap_inline301, tex2html_wrap_inline303, and tex2html_wrap_inline305 is really a function of the parameter t - and tex2html_wrap_inline309 can be equated with tex2html_wrap_inline311 since it is a point on the curve that corresponds to the parameter value t. In this way, tex2html_wrap_inline315 becomes a functional representation of the Bézier curve.

Writing down the algebra, we see that
equation52
where
equation59
(Note that we have now denoted tex2html_wrap_inline317 and tex2html_wrap_inline319 as functions of t.) Substituting these two equations back into the original, we have
equation68
This is quadratic polynomial (as it is a linear combination of quadratic polynomials), and therefore it is a parabolic segment. Thus, the quadratic Bézier curve is simply a parabolic curve.


Properties of the Quadratic Curve  

The quadratic Bézier curve has the following properties, which can be easily verified.

  1. tex2html_wrap_inline323 and tex2html_wrap_inline325, so the curve passes through the control points tex2html_wrap_inline327 and tex2html_wrap_inline329.
  2. The curve tex2html_wrap_inline331 is continuous and has continuous derivatives of all orders. (This is automatic for a polynomial.)
  3. We can differentiate tex2html_wrap_inline333 with respect to t and obtain
    equation77
    Thus tex2html_wrap_inline337, is the tangent vector at t=0 and tex2html_wrap_inline341 is the tangent vector at t=1. This implies that the slope of the curve at t=0 is the same as that of the vector tex2html_wrap_inline347 and the slope of the curve at t=1 is the same as that of the vector tex2html_wrap_inline351.
  4. The functions tex2html_wrap_inline353, 2t(1-t), and tex2html_wrap_inline357 that are used to ``blend'' the control points tex2html_wrap_inline359, tex2html_wrap_inline361 and tex2html_wrap_inline363 together are the degree-2 Bernstein Polynomials They are all non-negative functions and sum to one. Clearly
    displaymath89
  5. The curve is contained within the triangle tex2html_wrap_inline365.

    Since the blending functions are non-negative and add to one, P(t) is an affine combination of the points tex2html_wrap_inline369, tex2html_wrap_inline371, and tex2html_wrap_inline373. Thus tex2html_wrap_inline375 must lie in the convex hull of the control points for all tex2html_wrap_inline377. The convex hull of a triangle is the triangle itself.

  6. If the points tex2html_wrap_inline379, tex2html_wrap_inline381 and tex2html_wrap_inline383 are colinear, then the curve is a straight line.

    If the points are colinear, then the convex hull is a straight line, and the curve must lie within the convex hull.

  7. The process of calculating one tex2html_wrap_inline385 subdivides the control points into two sets tex2html_wrap_inline387, and tex2html_wrap_inline389, each of which can be used to define another curve, as in our subdivision process above.
  8. All the points, generated from the divide-and-conquer method, lie on this curve.

    Clearly tex2html_wrap_inline391 is the first point calculated by the divide and conquer method.

    Lets show that tex2html_wrap_inline393 is exactly the point obtained by performing the divide-and-conquer method, on the control points tex2html_wrap_inline395, tex2html_wrap_inline397 and tex2html_wrap_inline399 which were generated in the first step of the divide-and-conquer method. If we call this point tex2html_wrap_inline401, then by the divide-and-conquer method
    equation113
    and by substituting for the tex2html_wrap_inline403s, and similifying
    equation141
    If we calculate tex2html_wrap_inline405 with tex2html_wrap_inline407, we have
    equation196
    So tex2html_wrap_inline409 is exactly the point constructed in from the divide-and-conquer algorithm. Similar calculations exist for all other points generated in the divide and conquer method - each point generated by the method will correspond to one with a corresponding parameter of tex2html_wrap_inline411 for some k and n.


Summarizing the Development of the Curve

We now have two methods by which we can generate points on the curve. The first of which is geometrically based - points are found on the curve by selecting successive points on line segments. The other is an analytic formula, which expresses the curve in functional notation.


Summary

The quadratic curve serves as a good example for discussing the development of the Bézier curve, but really only generates parabolas. This eliminates the curve for many applications where smooth curves with inflection points are necessary. The problem can be addressed by performing exactly the same steps as above, but utilizing the procedure on four control points - resulting in the cubic Bézier curve.


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 12:34:19 PDT 1997