Piecewise curvilinear approximation of planar curves is a useful technique in many engineering applications. The general goal is to represent a curve by a sequence of circular arcs and straight-line segments, within a given tolerance. The advantage of such an approximation is that it allows a curve to be represented by a (typically) comparatively small number of arcs and line segments, thus achieving a noise reduction and data compression.

From a practical point of view, it is particularly desirable to achieve tangent-continuous approximations: NC machining as well as rapid prototyping benefit from the availability of so-called G1 curves. In particular, high-speed machining greatly depends on smooth tool paths.

As part of Eibl's diploma (MSc) thesis, Johannes Eibl and
Martin Held
worked on the
approximation of polygonal curves by biarc curves. Given a simple (planar)
polygon, our biarc approximation algorithm finds a tangent-continuous
approximation curve *A* that consists of biarcs (and straight-line
segments). The approximation curve *A* is required to lie within a
specified tolerance zone relative to *P*, thus guaranteeing a bounded
maximum deviation of *A* from *P*. If requested by the user, the
algorithm can also guarantee that *P* lies in a tolerance zone relative
to *A*.

We studied both symmetric and asymmetric tolerance zones. In particular,
the tolerance zone may lie completely at one side of *P*, e.g., in the
interior of *P*. Dealing with asymmetric or one-sided tolerances is of
importance for applications which do not tolerate approximation errors on both
sides of *P*. For instance, in NC machining it is often preferred to
drive the tool such that any approximation error results in under-cutting
rather than in over-cutting.

Our approximation algorithm also guarantees the approximation curve *A*
to be simple. In particular, the algorithm shrinks the tolerance appropriately
at constrictions of *P*. Thus, the approximation curve *A* does
not contain any self-intersections, and is globally valid.

later on, Martin Heimlich and I designed a second approximation
algorithm that relies on the Voronoi diagram of the input for computing (what
we call) tolerance bands as subsets of the tolerance zones. We also added
support for additional approximation primitives: our new algorithm can
approximate sets of closed simple polygons by straight-line segments, circular
biarcs, elliptic arcs, elliptic biarcs, and cubic Bezier curves. (That is,
this algorithm can also be used for transforming an *N*-vertex polygon
into an *M*-vertex polygon such that *N*<<*M* and
approximation tolerances are met.) Of course, also our new algorithm maintains
the topology of the input and can handle asymmetric or even one-sided
tolerances.

Extensive experiments with synthetic and real-world data sets show that this new algorithm generates approximation curves with significantly fewer approximation primitives than previously proposed algorithms, including the t-part based approach of Eibl and myself. This difference becomes the more prominent the larger the tolerance threshold is or the more severe the noise in the input is. In particular, no heuristic is needed for smoothing noisy input prior to the actual approximation. Rather, our approximation algorithm can be used to smooth out noise in a reliable manner.

More recently, Dominik Kaaser and I introduced an efficient algorithm for computing C2 approximations of a set of planar curvilinear profiles by means of uniform cubic B-splines. The resulting approximations are guaranteed to lie within a user-specified tolerance of the input profiles, with asymmetric and even one-sided tolerances being supported by our algorithm. Furthermore, as in the work with Martin Heimlich, the input topology is reflected by our approximation. The input profiles may consist of straight-line segments and circular arcs.

We use a top-down fitting scheme to generate a (hopefully) small number of
B-spline segments. This allows our approximation algorithm to run in
O(*N* log *N*) time and O(*N*) space,
where *N* denotes the number of input segments
and arcs that form the profiles. Extensive experiments with synthetic and
real-world data sets show that our algorithm works very nicely in practice. In
particular, it supports the approximation of profiles with up to $10\,000$
input segments and arcs in less than ten seconds on a standard PC.

Work on this project was supported by the Austrian Science Foundation (FWF) within FWF Project L43-N12.

M. Held,
D. Kaaser (2014):

"C2 Approximation of Planar Curvilinear Profiles by Cubic B-Splines".

Computer-Aided Design and Applications,
11(2):206-219, 2014.

M. Held,
D. Kaaser (2013):

"Curvature-Continuous Approximation of Planar Curvilinear Profiles".

Proc. 10th Annual CAD Conference, p. 90-91,
Bergamo, Italy, June 2013.

M. Heimlich,
M. Held (2007):

"Biarc Approximation, Simplification and Smoothing of Polygonal Curves by
Means of Voronoi-based Tolerance Bands".

Int. J. of Computational Geometry and Applications,
18(3):221--250, June 2008.

M. Held,
J. Eibl (2005):

"Biarc Approximation of Polygons Within Asymmetric Tolerance Bands".

Computer-Aided Design,
37(4): 357--371, April 2005.

J. Eibl,
M. Held (2002):

"On a Simple Algorithm for Approximating Polygons by Biarc Curves Within
Asymmetric Tolerance Bands".

SoCGMA'02, Vienna, Austria.

Our biarc approximation code was tested on hundreds of synthetic and real-world data sets. The following images show biarc approximations which were computed by means of our code. (Click on an image icon in order to see the full-size image. The full-size images have roughly 800x800 pixels.)

file last modified: Friday, 26-Feb-2016 12:34:25 CET
Copyright © 2017 Martin Held. All rights reserved. |