Multi-Res Modeling Group People Research Demos
Publications Software
Multi-Res Modeling Group Multi-Res Modeling Group

Drawing Smooth Curves through Corner Cutting Given some set of points in the plane there are a number of different ways to draw curves which interpolate or approximate the points.

For an example of interpolation see the 4 Point Algorithm. Here we'll consider one of the simplest approximating subdivision schemes.

The simplest way would be to connect the points with straight lines or piecewise linear approximation. This is often not smooth enough. An interesting idea was proposed by Chaikin. Define a sequence of piecewise linear line approximations by cutting off the corners of a given polyline. Then repeat the process ad infinitum. The surprise is that if one does this in the right way a smooth curve results. Well, maybe this is not surprising: if you keep cutting the corners of a polyline you should end up with something that has no corners anymore, i.e., is smooth!

Here is a little applet to allow you to play with this concept. It is a very simple curve editor. The controls at the top influence the editing behavior. Clicking the mouse button in the drawing area will allow you to add, delete or move points. At the bottom are curve drawing controls. The behavior at the endpoints can be interpolating, open, or periodic. The level control will set the number of successive corner cuttings to perform, while the weight controller allows you to control the cut ratio. Normally corners are cut at 1/4 and 3/4 respectively along the way of an edge (default weight 3). This ratio is changed to 1/(1+weight) and weight/(1+weight) respectively. Try and it out and see how the curve changes.

Copyright © 1997 Peter Schröder Last modified: Wed Oct 1 18:14:33 PDT 1997