4. Bezier curves

So far we have only considered defining curves wholly in terms of the points through which they pass. This is a logical way of thinking, though it does suffer from drawbacks. We wish to make arbitrarily complex curves. Using just one equation to get more and more complex curves leads to higher degrees of polynomial and becomes mathematically awkward. One solution is to create complex curves out of many simpler curves. We call these patches. The key to creating curves in this way is how we match the end of one curve to the start of the next. It is not acceptable to match just the end points; we must match gradients as well. Defining curves by the points through which they pass does not lend itself very well to patching.

Bezier curves are defined using four control points, known as knots. Two of these are the end points of the curve, while the other two effectively define the gradient at the end points. These two points control the shape of the curve. The curve is actually a blend of the knots. This is a recurring theme of approximation curves; defining a curve as a blend of the values of several control points. The diagram below shows a bezier curve; you can see how the shape of the curve is affected by changing the knots.

You need Java enabled to view this applet.
Figure 4.1 - Bezier Curve (interactive)

Bezier curves are more useful than any other type we have mentioned so far; however, they still do not achieve much local control. Increasing the number of control points does lead to slightly more complex curves, but as you can see from the following diagram, the detail suffers due to the nature of blending all thecurve points together.

You need Java enabled to view this applet.
Figure 4.2 - Bezier Curve from six points (interactive)

Up to now the diagrams have showed just one curve. I mentioned earlier that we can join up many simple curves to form a more complex one. The following diagram demonstrates this by showing two bezier curves being changed as one. No matter how you change the control points, the join always seems smooth. (When you move the joining point itself, the applet assumes you are moving the red curve, so the red curve's second knot remains stationary while the blue curve's second knot reflects your movement).

You need Java enabled to view this applet.
Figure 4.3 - Patching two Bezier Curves Together (interactive)