Elsevier

Computer-Aided Design

Volume 39, Issue 1, January 2007, Pages 27-34
Computer-Aided Design

Fairing point sets using curvature

https://doi.org/10.1016/j.cad.2006.09.002Get rights and content

Abstract

Planar curves “suggested” by sequences of points are considered. A method is discussed for refining the sequence iteratively so that the fairness of the curve is improved while maintaining the basic form and features. This involves the use of intrinsic coordinates and works by smoothing the curvature plot and then integrating twice to recover the curve. Modifications are made during this process to ensure that individual subsegments run correctly between their end points and join smoothly.

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 xy-plane. This is assumed to be parametrised in terms of the arc length s starting from some initial point on the curve. The angle that the tangent makes with the positive x-axis is denoted by ψ so that tanψ=dy/dx, as in Fig. 2. Let κ=κ(s) 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, rj, 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 sj=k=0j1|rkrk+1| as the sum of the distances between consecutive points.

Suppose that a function r(s) has been fitted exactly through the given points so that r(sj)=rj for all j. Values for the first and

Refining the curvature function

In practice the plot of the curvature function κ(s) against s 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 x-axis. Suitable values for these angles can be obtained from (the approximation to) the first derivative vector r at

Symmetry

When using the shooting method the algorithm starts at r0 and works towards rn. It is now shown that using the method working from rn generates the same sequence of points.

Asterisk superscripts are used to denote variables associated with the curve generated starting from rn. The curvature function for the reverse curve is the following κ(s)=κ(sns).

The discrete curvature values along the reverse curve are then as follows with the subscript numbering starting at the rn end κj=κnj.

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)

  • H. Nowacki et al.

    Fairing composite polynomial curves with constraints

    Computer Aided Geometric Design

    (1994)
  • X. Yang et al.

    Planar point set fairing and fitting by arc splines

    Computer-Aided Design

    (2001)
  • C. Zhang et al.

    Fairing spline curves and surfaces by minimizing energy

    Computer-Aided Design

    (2001)
  • W. Renz

    Interactive smoothing of digitized point data

    Computer-Aided Design

    (1982)
  • G.H. Liu et al.

    Adaptive fairing of digitized point data with discrete curvature

    Computer-Aided Design

    (2002)
  • A. Schechter

    Synthesis of 2D curves by blending piecewise linear curvature profiles

    Computer-Aided Design

    (1978)
  • Cited by (0)

    View full text