Fairing point sets using curvature
Introduction
Continuous and fair curves are a requirement in many design applications, such as digital shape reconstruction [1], [2], [3], in particular where an object may have been scanned along specific lines [4], product styling [5], where mainly planar curves can be used by a designer to intuitively create free-form 3D shapes, image processing [6], [7] and motion fairing [8].
Most existing curve fairing algorithms work under the assumption that the curve is already in parametric form (thus any continuity conditions may have already been met and, if derived from point sets, some de-noising has probably occurred). In such algorithms two classes of measures of fairness are commonly used. One class comprises methods based on curvature conditions where B-spline control points are adjusted to ensure the curvature plot is continuous and suitably monotone [9], [10], [11], [12], [13], [14], [15], [16], [17]. In the other class are methods based on an energy function, where a combination of bending and elastic tension energies are minimised [18], [19], [20], [21]. There are also some approaches which are hybrid in that they use curvature plots to identify the areas to be faired and use energy minimisation for the fairing itself [22], [23].
In this paper, the process of fairing a planar curve “suggested” by a sequence of points is investigated. Although there are other applications, the main area of interest is that of styling. It is assumed that the defining points represent the designer’s intention for a curve. However, they may not represent it to a desired quality of fairness and may also possess some noise particularly if derived from a crude digitisation.
Little work has looked at fairing curves implied by discrete points. Renz [24] claims that giving a CAD engineer access to the tangent and curvature plots of a curve is a useful tool in the design environment and it can be seen that most fairing algorithms are totally reliant on user interrogation of the curvature plot for final quality control [25]. However, the curvature plot remains a function of the Euclidean position of the curve and the process of smoothing the curvature plot is always achieved through relocation of discrete points or control points. A more intuitive method for fairing the curve is to allow direct user manipulation of the curvature plot, either manually or through tools such as Fourier analysis, curve fitting or utilising a curvature based fairing heuristic such as the discrete single/multiple bad point (SBP/MBP) technique [26], or the equivalent heuristics found in [10], [25], [15], [22].
The approach used in this paper is shown in the flow diagram of Fig. 1. It starts with an initial collection of points “representing” a curve. An initial parametrisation is imposed based on an approximation to arc length as determined by the spacing of the points. From this an initial curvature plot is derived and displayed for the user. The points within this curvature plot can then be adjusted manually or with a degree of automation to create satisfactory curvature characteristics. Next the user can declare any points which are required to be fixed in Euclidean space and a new improved curve is grown between all the fixed points based on the curvature data. Discontinuities on the original curvature plot may represent design features or noise. The approach detailed has the advantage of allowing the user to identify these and deal with them as an integrated and coherent part of the fairing process and not as a final quality control inspection as found in several other fairing algorithms [13], [17], [20], [21], [25]. This process can of course continue iteratively.
Intrinsic coordinates are used and the approach is an extension of one used in the early days of CAD [27], [28], [29]. Intrinsic coordinates are reviewed in Section 2, and, in Section 3, they are used to generate the initial curvature plot by obtaining values at each discrete point. These can be interpolated to create a full curvature plot [28], [33]. In Section 4 techniques are given for refining the curvature plot to ensure the actual curve has a measure of fairness (based on curvature) acceptable to the user.
Section 5 discusses the reconstruction of a fairer curve from the improved curvature values at the discrete points. This works by integrating twice and using a shooting method. This effectively starts from one of the fixed points and works towards the other. There is potentially a dependence upon which end is used as the starting point. However, it is shown in Section 6 that the same result is obtained by working from either end. Some examples are given in Section 7.
Section snippets
Intrinsic coordinates
The basic theory of intrinsic coordinates is well known [30]. It is reviewed here briefly in order to establish the notation for later work.
Consider a planar curve defined in the -plane. This is assumed to be parametrised in terms of the arc length starting from some initial point on the curve. The angle that the tangent makes with the positive -axis is denoted by so that , as in Fig. 2. Let be the curvature at a general point, and this is the reciprocal of the radius of
Curvature function for discrete points
Suppose that a sequence of points, , is given in the (complex) plane. The aim is to create a discrete curvature plot based on the location data.
A distance function can be created for the sequence of points. Starting at any one of them (usually a fixed point) and labelling it zero, define as the sum of the distances between consecutive points.
Suppose that a function has been fitted exactly through the given points so that for all . Values for the first and
Refining the curvature function
In practice the plot of the curvature function against is likely to be spiky. This is particularly so if the original points have been obtained by some form of digitisation. Means of producing a better curvature function which represents that of a fair curve are now discussed. It is expected that some interaction with the user is required. As the aim is partly to generate an aesthetically pleasing curve, it is likely that some trial and error work is required and this can involve
Recreating the curve
Once a satisfactory curvature plot has been obtained, a new curve needs to be recovered from the curvature function.
The case of a single segment between two fixed points is now considered. As well as the points themselves being known, it is assumed also that the slopes at the ends of the segment are given. These are in terms of the angles made by the tangent with the positive -axis. Suitable values for these angles can be obtained from (the approximation to) the first derivative vector at
Symmetry
When using the shooting method the algorithm starts at and works towards . It is now shown that using the method working from generates the same sequence of points.
Asterisk superscripts are used to denote variables associated with the curve generated starting from . The curvature function for the reverse curve is the following
The discrete curvature values along the reverse curve are then as follows with the subscript numbering starting at the end
The
Examples
Three examples are considered. The first is effectively a unit fillet radius inserted where two straight lines meet at right angles. The original data is specified in terms of 39 points as shown on the left of part (a) of Fig. 3. Three fixed points are used: the two ends and the middle point of the circular arc. The curvature plot that these points provide is a step function (with irregularities where the straight lines join the arc) and this is seen as in the middle of part (a) of the figure.
A
Conclusions
In looking at the fairness of a curve, it is natural to try to seek measures based upon properties of the curve itself rather than those dependent upon the way it is represented. Curvature is a natural choice and intuitively, if the curvature varies smoothly, one would expect the curve itself to be smooth.
It has been seen that it is possible to use ideas from intrinsic coordinates to reconstruct a curve from a knowledge of its curvature as a function of arc length. This allows an iterative
Acknowledgements
This work is supported in part by the Innovative Manufacturing Research Centre (IMRC) at the University of Bath funded by the Engineering and Physical Sciences Research Council (EPSRC); this support is gratefully acknowledged.
References (33)
- et al.
Reconstruction of surfaces of revolution from measured points
Computers in Industry
(2000) - et al.
Reverse engineering of geometric models — an introduction
Computer-Aided Design
(1997) Improvement of free-form surfaces for product styling applications
Computer-Aided Design
(2002)- et al.
The crust and the beta-skeleton: Combinatorial curve reconstruction
Graphical Models and Image Processing
(1998) - et al.
Curve reconstruction: Connecting dots with good reason
Computational Geometry. Theory and Applications
(2000) - et al.
Automatic fairing algorithm for B-spline curves
Computer-Aided Design
(1990) - et al.
Automatic interpolation by fair, shape preserving, space curves
Computer-Aided Design
(1997) - et al.
An automated curve fairing algorithm for cubic B-spline curves
Journal of Computational and Applied Mathematics
(1999) - et al.
Designing fair curves using monotone curvature pieces
Computer Aided Geometric Design
(2004) - et al.
Convexity-preserving fairing
Computer-Aided Design
(1996)