Offseting a Bezier curve

The article you cited is wrong (or, at best, misleading). In general, the offset of a Bezier curve can not be represented exactly as another Bezier curve (of any degree). But, on the other hand, there are many situations where you don't need an exact offset, you only need a decent approximation. In my view, the definitive works in this area are the following two papers:

Farouki and Neff: Analytic properties of plane offset curves, CAGD 7 (1990), 83-99

Farouki and Neff: Algebraic properties of plane offset curves, CAGD 7 (1990), 101-127

For a good comparison of available approximation techniques, look at this paper: http://www.cs.technion.ac.il/~gershon/papers/offset-compare.pdf

Regarding special cases: Bezier curves that happen to be straight lines can obviously be offset exactly, as you observed. Also, so-called Pythagorean Hodograph curves have offsets that are rational Bezier curves, at least, but not polynomial ones. Ask again if you're interested in these.

The 90 degree idea is not very useful, even as an approximation guideline. As an example, consider the curve that has control points (0,0), (2,1), (0,1), (2,0). It satisfies the given conditions, but it's very difficult to offset accurately.


On a quick glance, it looks like the article you link to is concerned with finding a visually acceptable approximation to the offset curve rather than a mathematically exact offset curve.

If the exact offset from a Bézier curve is smooth (that is, if the curvature of the original does not get so large that the offset curve begins self-intersecting), it is not possible for the offset curve to be representable as a Bézier curve only part of the way. This is because Bézier curves are analytic, and therefore so is the orthogonal distance between one curve and the other. If this distance is constant over an entire parameter interval, it would stay constant if we simply extended the offset curve with the same polynomials until it covered the entire length of the original curve.

Since we must be talking about approximations anyway, the 90° threshold would be more a rule of thumb than a condition with an exact significance.