CAGD-banner.gif
On-Line Geometric Modeling Notes
A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING


Overview

In the late 1960s, two European engineers independently developed a mathematical curve formulation which was extremely useful for modeling and design and also easily adaptable to use on a computer system. The primary feature of this method was that the controlling parameters of the curve were simply points in three-dimensional space, and each of these points had an influence on the curve. This curve, commonly called the Bézier curve, is the representation that is most frequently used in computer graphics and geometric modeling.

We present in these notes a form of the Bézier curve which can be developed through a simple divide-and-conquer, or subdivision method. This will not give us a rigorous definition of the Bézier curve, but will serve as motivation as it follows the general construction procedure for the curve.

pdficonsmall.gif To get a pdf version of these notes look here.


The Subdivision Procedure

This curve is defined by using three control points $ {\bf P} _0$, $ {\bf P} _1$, and $ {\bf P} _2 $. Whereas these points can be arbitrarily placed in three-dimensional space, we will illustrate the algorithm with the points below:

\includegraphics {figures/fig-quadratic-bezier-curve-1}

We will develop a method that uses these points to construct a curve. The curve will pass through the points $ {\bf P} _0$ and $ {\bf P} _2$ and will lie within the triangle $ \triangle {\bf P} _0 {\bf P} _1 {\bf P} _2$. $ {\bf P} _1$ will be a control point that serves as a ``handle'' or a ``influence'' on the curve. Our general procedure will split the curve into two segments, each of which is again specified by three control points. With this procedure, we can recursively generate many small segments of the curve, which can be eventually approximated by straight lines when the curve is to be drawn. The procedure is quite simple, the most complicated mathematics being the calculation of midpoints of the lines connecting control points.


The Basic Subdivision Procedure

The procedure to subdivide the curve into two segments can be described as follows:

We define $ {\bf P} _2^{(2)}$ to be a point on the curve. Note that we have created two new sets control points ( $ \left\{ {\bf P} _0, {\bf P} _{1}^{(1)}, {\bf P} _{2}^{(2)} \right\}$ and $ \left\{ {\bf P} _{2}^{(2)}, {\bf P} _{2}^{(1)}, {\bf P} _{2} \right\}$) which can be use to define the first and second portions of the subdivided curve, respectively. We now have define an additional point on the curve and two new sets of three control points that can be used to continue subdividing the curve.


Continuing the Subdivision

Performing the procedure again, we use the control points $ \left\{ {\bf P} _0, {\bf P} _{1}^{(1)}, {\bf P} _{2}^{(2)} \right\}$, relabeling them for convenience as $ {\bf P} _0$, $ {\bf P} _1$, and $ {\bf P} _2$ respectively, and apply our procedure

\includegraphics {figures/fig-quadratic-bezier-curve-1d}

We now define $ {\bf P} _2^{(2)}$ to be a point on the curve. This process produces another point on the curve, and creates two new sets of control points as was the case before.

If we consider the control points $ {\bf P} _{2}^{(2)}$, $ {\bf P} _{2}^{(1)}$, and $ {\bf P} _{2}$, generated in the first subdivision, and relabel them as $ {\bf P} _0$, $ {\bf P} _1$, and $ {\bf P} _2$ respectively, we can again apply the subdivision procedure

\includegraphics {figures/fig-quadratic-bezier-curve-1h}

We now have $ {\bf P} _2^{(2)}$ on the curve.


The Subdivision Algorithm

Three points have now been generated on the curve and four subcurves have been generated. The final curve, together with the points generated, is shown as follows:

\includegraphics {figures/fig-quadratic-bezier-curve-1l}

You should now see how to proceed. At each step the process creates both a point on the curve and two new sets of control points. This effectively subdivides the curve into two new curve segments, each of which can be handled separately.


Summary

This is a somewhat unique method to define a curve, and probably not previously seen by many students. It is a geometric method, as it uses only the midpoint formula as it's fundamental tool. It uses the basic computer science paradigm of (sub)divide and conquer to calculate points on the curve. The curve can be ``drawn'' using computer graphics by calculating a somewhat-dense set of points, and connecting them with straight lines.

The curve drawn by this method is a quadratic Bézier curve.


\begin{singlespace}
\noindent
\footnotesize\bfseries All contents copyright (c) ...
...ment, University of California, Davis \\
All rights reserved.
\end{singlespace}


Ken Joy
2000-11-28