Abstract
The \(\kappa \)-curve is a recently published interpolating spline which consists of quadratic Bézier segments passing through input points at the loci of local curvature extrema. We extend this representation to control the magnitudes of local maximum curvature in a new scheme called extended- or \(\epsilon \kappa \)-curves.\(\kappa \)-curves have been implemented as the curvature tool in Adobe Illustrator® and Photoshop® and are highly valued by professional designers. However, because of the limited degrees of freedom of quadratic Bézier curves, it provides no control over the curvature distribution. We propose new methods that enable the modification of local curvature at the interpolation points by degree elevation of the Bernstein basis as well as application of generalized trigonometric basis functions. By using \(\epsilon \kappa \)-curves, designers acquire much more ability to produce a variety of expressions, as illustrated by our examples.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
1 Introduction
The \(\kappa \)-curve, proposed recently by [28], is an interpolating spline which is curvature-continuous almost everywhere and passes through input points at the local curvature extrema. It has been implemented as the curvature tool in Adobe Illustrator® and Photoshop® and is accepted as a favored curve design tool by many designers (see, e.g., [4, 6]).
We consider the reasons for the success of \(\kappa \)-curve to be:
-
1.
Information along contours is concentrated at local maxima of curvature.
-
2.
Curves of low degree have smooth distribution of curvature.
-
3.
\(G^2\)-continuous curves tend to look fairer than only \(G^1\)-continuous ones.
Attneave [1] suggested, based on his empirical study, that information along contours is concentrated in regions of high magnitude of curvature, as opposed to being distributed uniformly along the contour, and it is further concentrated at local maxima of curvature (see also [33]). Although Attneave never published the details of his methods, [20] conducted a similar experiment and obtained the same results. Levien and Séquin [12] argue similarly and assert that points of maximal curvature are salient features.
The curvature of a polynomial curve is given by a relatively complicated rational function [7], and its distribution might not be globally smooth. However, if the curve is of a low degree, the curvature distribution is more uniform and the curve is fairer, thus more suitable for illustration. The quadratic polynomial curve has the nice property that its curvature has only one local maximum, and its location is easily computable [28], which makes the handling of curvature extrema much easier.
Graphic designers often accept \(G^1\) continuity as good enough for illustration. However, discontinuity remains; for example, if you join a straight line and a circular arc with \(G^1\) continuity, the rhythm of the curve will be broken at the joint. For this reason, we give preference to \(G^2\)-continuous curves.
Nonetheless, \(\kappa \)-curves are not perfect, and their further investigation is necessary [29]. The following are two important shortcomings of \(\kappa \)-curves:
-
1.
They are not curvature-continuous everywhere: at inflection points only \(G^1\) continuity is guaranteed.
-
2.
Since the degree of freedom (DoF) of the quadratic segments is limited, it is impossible to control the magnitudes of local maximum curvature at the input points.
For the first shortcoming, Wang et al. [26] provided a solution through the use of log-aesthetic curves [15, 17] instead of polynomial curves. Log-aesthetic curves have a shape parameter (\(\alpha \)), which can be utilized to control the curvature distribution as shown in Fig. 1. Their method guarantees \(G^2\) continuity everywhere, including inflection points, since log-aesthetic curves with negative \(\alpha \) values can represent S-shaped curves with \(G^2\) continuity. (Note that these cannot be represented by quadratic Bézier curves.)
These curves, however, are defined by a Cesàro equation and thus take extra time to evaluate, making the interpolation method impractical for real-time design purposes.
Because of the second shortcoming, if the designer wants to increase or decrease the magnitude of the curvature extremum, she needs to add extra input points, as shown in Fig. 2. Yan et al. [27] proposed a piecewise rational, quadratic, interpolatory curve that is able to reproduce circles and other elliptical or hyperbolic shapes. Although their main intention was to reproduce circles, their method could also control the magnitude of local maximum curvature. However, only rational quadratic curves are applicable, and it is not possible to extend their method for other types.
In this paper, we propose a new method to solve the second shortcoming by degree elevation of the Bernstein basis functions, giving an extra DoF to each quadratic curve segment, providing control over the magnitudes of local maximum curvature at input points as shown in Fig. 3. In order to increase the designers’ possible choices, we also introduce a new trigonometric basis for which we can perform degree elevation. In addition, we propose a general method for bases with extra shape parameters. By adding one more parameter to each of the curve segments, the designers obtain more expressive power for their illustration. The family of this new curve is denoted as \(\epsilon \kappa \)-curves.
Log-aesthetic curves with various \(\alpha \) values [26]. Input points are depicted by black boxes, and green points correspond to positions of local maximum curvature. The blue curves show the normal curvature. These curves are \(G^2\)-continuous everywhere
The left- and rightmost curves are \(\kappa \)-curves; the others are \(\epsilon \kappa \)-curves with gradual changes in the global shape parameter a. The face part (for \(a=0.95\) and \(a=2/3\)) is zoomed in for better comparison. When a=2/3, \(\kappa \)- and \(\epsilon \kappa \)-curves are identical
\(\epsilon \kappa \)-curves preserve all of the appealing properties of \(\kappa \)-curves, i.e., point interpolation, \(G^2\) continuity (except at inflection points), continuous modification (changes smoothly when the input points move), local influence, and real-time generation. With a small processing overhead, \(\epsilon \kappa \)-curves offer the ability to control the magnitude of local maximum curvature.
We have implemented \(\epsilon \kappa \)-curves in MATLAB® and Julia [11]. The source of the Julia code is available online [22].
The rest of this paper is organized as follows. Section 2 reviews the related work. Section 3 presents a method to control the magnitudes of local maximum curvature by degree elevation of the Bernstein basis functions. Section 4 introduces a new trigonometric basis and proposes a method with degree elevation similar to the one proposed in the previous section. Finally, we end with conclusions and discussion of future work.
2 Related work
In this section, we first review [28] and their underlying strategy developing \(\kappa \)-curves. Next, we discuss related researches on various kinds of basis function formulations for curve design.
2.1 \(\kappa \)-Curve
The basic framework of our method is adopted from [28], generating curves controlled by interpolation points. \(\kappa \)-curves have stimulated the field of interpolatory curve generation, resulting in works such as [5], which proposes a method for good control over the location and type of geometric feature points (e.g., cusps and loops).
Yan et al. [28] create a sequence of quadratic curves with \(G^2\) continuity almost everywhere. They derived explicit formulae for the point between two quadratic segments to guarantee \(G^2\) continuity and for the additional condition that input points should be interpolated at maximum curvature magnitude positions. \(\kappa \)-curves are determined by the locations of the middle control points of quadratic Bézier segments—the rest is easily derived from the continuity constraints. Hence, the variables are the locations of these middle control points.
Their basic strategy to determine these locations is to adopt a local/global approach [13, 23]: \(G^2\)-continuous connection is performed locally, while the interpolation at maximum curvature magnitude positions is done globally.
Regarding control of the magnitude of local curvature, the most common technique is to change the weight of a control point of a rational curve [7]. A larger weight attracts the curve to its control point, which makes local curvature larger. However, this technique is not applicable for interpolatory curves. Another technique is to introduce extra parameters called bias and tension to the B-spline formulation for controlling local curvature [2], but this is also not applicable to interpolatory curves.
2.2 Basis functions
As mentioned in [28], curve modeling has a long history, especially in computer-aided geometric design, as well as computer graphics. In CAGD and applied mathematics, to extend the expressive power of curves, many researchers have been trying to develop new bases with extra shape parameters. The following is a (nonexhaustive) list of such bases:
-
1.
C-Bézier curve [31]
-
2.
Cubic alternative curve [10]
-
3.
Cubic trigonometric Bézier curve (T-Bézier basis) [8]
-
4.
\(\alpha \beta \)-Bernstein-like basis [32]
-
5.
Quasi-cubic trigonometric Bernstein basis [30]
-
6.
Trigonometric cubic Bernstein-like basis [24]
Our method proposed in the next section can be applied for curves based not only on polynomials, but also other bases such as a trigonometric basis with degree elevation property which we will introduce in Sect. 4. All of the representations listed above have extra parameters for shape control, and we can utilize these parameters to control the magnitudes of local maximum curvature. (Not all curve types are applicable, however, as explained in Appendix C.)
It is interesting to note that most researchers to date have attempted to develop new bases using four control points, based on cubic polynomials or quadratic trigonometric functions. They prefer using four control points out of concern for connections at both ends of the curve. In order to control the magnitude of curvature at the two ends independently, at least two control points are necessary at each end. This differs fundamentally from Yan et al.’s (and our) approach, which uses only three control points.
The importance of [28] is their proposed paradigm shift for curve generation, by considering the local maximum curvature in the middle, instead of focusing on the endpoints. If we can assume that the curvature has just one local maximum in each segment, then only one extra parameter per segment is adequate to control the magnitude of its local maximum curvature.
To our best knowledge, no trigonometric basis family for arbitrary degree has been published yet. Our novel generalized trigonometric basis functions range from linear, using three control points, to any higher degree n, using \(2n+1\) control points. The curve can be evaluated by a recursive method , similar to de Casteljau’s algorithm, as explained in Appendix B. Since the curve uses trigonometric functions as blending functions, it can represent a circular arc exactly, without using a rational form.
3 Cubic Bernstein polynomials
In this section, we extend \(\kappa \)-curves in a direct manner, by elevating the degree of quadratic Bézier segments to cubic. \(\epsilon \kappa \)-curves retain the following properties of \(\kappa \)-curves:
-
1.
Interpolate all input points (control points).
-
2.
All local maximum curvature points are the same as the input points.
-
3.
\(G^2\) continuity is guaranteed almost everywhere (except for inflection points).
In the following, we discuss only closed curves, but it is straightforward to extend our methods to open curves as has been demonstrated for \(\kappa \)-curves.
If we elevate the degree of a planar Bézier curve, we obtain an additional control point, which has two DoFs (the x and y coordinates). To reduce these to one, we add a geometric constraint on the location of the second and third control points of the cubic Bézier curve, as shown in Fig. 4. Here, a is an internal division ratio, where the larger a is, the closer the control points \(P_1\) and \(P_2\) are to the control point \(Q_1\). We make the restriction \(2/3 \le a < 1\) because the curve should not have a complicated curvature distribution. Using \(Q_i\), the curve \(C(t;a)\) is expressed by
Note that if \(a=2/3\), the curve degenerates to quadratic.
We have proved that by constraining the construction of the cubic polynomial curve as in Eq. (1), using only three control points instead of four, the curvature in one curve segment has at most one local maximum for \(2/3 \le a < 1\); see details in [16], as well as Appendix A for a general discussion on the curvature extrema of cubic polynomial curves, and a high-level summary of the proof. In addition, we have made MATHEMATICA simulation available in [9] to compute the number of curvature extrema for this curve using both classical approach and Sturm’s theorem. Hence, we can safely assume that the curvature in one curve segment has at most one local maximum, and a single extra parameter for each segment is enough to control the magnitudes of local maximum curvature.
3.1 Geometric constraints
We assume that \(\epsilon \kappa \)-curves consist of a sequence of constrained cubic polynomial curves
parameterized by t and also \(a_i\), which is an extra shape parameter. The control points are given by \(c_{i,0}\), \(c_{i,1}\) and \(c_{i,2} \in {\mathbb {R}}^2\), corresponding to \(Q_i\), \(i=0,1,2\) in Fig. 4. The \(a_i\)’s are reserved for designers and can be manipulated independently.
The curvature of this curve \(c_i(t;a_i)\) is given by
where \(\triangle \) indicates the area of the triangle specified by its arguments, and \(r_i = c_{i,1}-c_{i,0}\), \( s_i = c_{i,2}-c_{i,1}\).
In the quadratic case (i.e., \(\kappa \)-curves), as the curvature has such a simple formula, we can express the parameter \(t_i\) at the point of maximal curvature explicitly, in terms of the Bézier coefficients of the \(i^\mathrm {th}\) quadratic Bézier curve as
where \(\langle a,b\rangle \) means the scalar product of vectors a and b. Then, we add the condition
where \(p_i\) is the \(i^\mathrm {th}\) input point. Solving for \(c_{i,1}\) and substituting into Eq. (4), we get a cubic equation in \(t_i\) that depends only on the endpoints \(c_{i,0}\) and \(c_{i,2}\), and the input points \(p_i\).
Unfortunately, we cannot obtain an explicit formula like Eq. (4) for the parameter \(t_i\) in the cubic case, because of its high degree (see details in Appendix A.1), but this is not a problem. Solving Eq. (5) for \(c_{i,1}\), we arrive at
Substituting this into the derivative of Eq. (3), and letting it equal 0, we obtain (after some simplification) a polynomial equation of degree 9 in \(t_i\). This equation can be derived by the Maxima [14] code in Fig. 13 (Appendix A). We solve this equation and select a real root in [0, 1]. Note that we have proved that there is one and only one solution for the polynomial equation of degree 9 in \(t_i \in [0,1]\) as in the case of \(\kappa \)-curves; see details in [16], as well as Appendix A.2.
However, when we use other types of curves with more complicated representations (see examples in Appendix C), this kind of formula may be hard to derive. In these cases, we can use the relaxed Newton’s method to compute the maximum curvature. For this, we need to be able to compute the curvature and its derivative; we do this using a quadratic Taylor series approximation around the last value of \(t_i\).
We introduce the constant \(\lambda _i\) (\(0< \lambda _i < 1\)) according to the construction method of \(\kappa \)-curves and set
Let the curvatures at the endpoints of the curve segment be denoted by \(\kappa _i(0;a_i)\) and \(\kappa _i(1;a_i)\), then from Eq. (3)
introducing the notations \(\triangle ^+_i=\triangle (c_{i,0}, c_{i,1}, c_{i+1,1})\) and \(\triangle ^-_{i}=\triangle (c_{i-1,1}, c_{i,1}, c_{i,2})\).
By adopting the local/global approach, we treat \(c_{i,0}\) as fixed for the computation of \(\kappa _i(1;a_i)\), although it depends on \(\lambda _{i-1}\) (similarly for \(c_{i+1,2}\)).
In order to guarantee \(G^2\) continuity at the joint of two consecutive segments, the following equations should be satisfied:
Hence,
Since \(0< a_i, a_{i+1} <1\), \(\lambda _i\) is real and \(0< \lambda _i <1\).
3.2 Optimization
In the global phase, we calculate the positions of the middle control points \(c_{i,1}\) by solving a linear system of equations. We treat the current values of \(\lambda _i\) (internal division ratios of \(c_{i,1}\) and \(c_{i+1,1}\)) and \(t_i\) (parameters of local maximum curvature) as fixed.
Substituting Eq. (7) into Eq. (5), we get
which can be solved for \(c_{i,1}\).
The optimization process is summarized in Algorithm 1.

3.3 Results
Figure 5 shows examples of closed \(\epsilon \kappa \)-curves along with the original \(\kappa \)-curve. The input points are located at the same positions. The \(a_i\) values of these curves are equal to 2/3, except for one, two and three input points, respectively, where \(a_i\) is set to 0.85. If the \(a_i\) of all input points are 2/3, the \(\kappa \)-curve on the left is generated. Since we specify a larger value for some input points, the magnitudes of the corresponding local maximum curvature increase, as we expected.
Figure 6 shows another example of local curvature control. From the left to right, the first drawing shows a bird using \(\kappa \)-curves. In the second, we set a at the wing tips to 0.95, while leaving all others at the default 2/3. This has the effect of sharpening the wing tips. In the third figure, we reversed the role of the input points, giving \(a=2/3\) to those at the wing tips and 0.95 to all other points. Here, the wings are rounded, while other parts of the bird get sharper.
Notice that the bird’s beak resembles a cusp, but is actually the start and end points of an open curve located at the same position. In our implementation, we limit \(2/3 \le a \le 1\) to make a curve with smooth curvature distribution, which disallows the generation of a cusp even at \(a=1\). In cases where the designer wants to use a cusp, the curve should be cut in two, or the input points should be relocated to form a cusp as explained in [28].
Figure 7 shows examples of global curvature control. There are three \(\epsilon \kappa \)-curves, with a set to 0.75, 0.85 and 0.95, respectively, along with the original \(\kappa \)-curve (\(a=2/3\)) for comparison. By increasing a, the magnitudes of local maximum curvature increase. As the close-up windows indicate, at the inflection point \(G^2\) continuity is violated for \(\kappa \)-curves, and only \(G^1\) continuity is guaranteed. However, for \(\epsilon \kappa \)-curves with a larger a, the magnitude of curvature at inflection points, and consequently the \(G^2\) error, becomes smaller. Note that although these curves are almost \(G^2\)-continuous everywhere, they are quite different from those in Fig. 1 (generated using the same input points).
Figures 3, 8 and 9 show the effect of changes of the global shape parameter a on various designs. As discussed above, larger a values generally induce larger local curvature extrema and steeper curvature variation. The resulting curves look more sharp at the input points and more flat between them.
4 Generalized trigonometric basis
In this section, we describe our new generalized trigonometric basis. This is based on the trigonometric cubic Bernstein-like basis [24], which we are going to review first.
The trigonometric cubic Bernstein-like basis functions have an extra shape parameter \(\alpha \) and are defined by
where \(S=\sin \frac{\pi t}{2}\), \(C=\cos \frac{\pi t}{2}\), for \(\alpha \in (0,2)\), \(t \in [0,1]\). Note that these functions satisfy partition of unity, i.e., \(\sum _{i=0}^3 f_i(t) = 1\) for any \(\alpha \). When \(\alpha =1\), the above functions are simplified to
If we add the second and third functions together and rename them to u, v and w, we obtain blending functions \(\{ u, v, w \}\) as follows:
It is straightforward to define a curve by these blending functions with three control points, which we can regard as a “linear” trigonometric curve since the highest degree the trigonometric functions are in is one.
One interesting relationship among these functions is
which enables
and yields the five blending functions \(\{u^2\), 2uv, 4uw, 2vw, \(w^2 \}\), associated with five control points. We can define a curve using these blending functions and regard it as a “quadratic” trigonometric curve since the highest power of each blending function is now degree two.
In a similar way, we can extend blending functions of “degree” n with \(2n+1\) control points. As explained in Appendix B, we can perform a recursive procedure to evaluate a curve of any degree similar to de Casteljau’s algorithm avoiding the overhead of trigonometric function evaluation. This means that it is not necessary to calculate the coefficients of blending functions, or keep a coefficient table.
We formulate the \(\epsilon \kappa \)-curve in this basis using a strategy similar to that in the previous section, i.e., using a sequence of quadratic trigonometric curves with a constraint on the positions of their control points, as shown in Fig. 10. Note the location of the control point \(P_2=\left[ (1-a)Q_0+2 a Q_1+(1-a) Q_2\right] /2\). The curve \(c(t;a)\) is defined by
When a is equal to 1/2, the curve degenerates to a linear trigonometric curve.
4.1 Geometric constraints and optimization
First, we analyze the linear trigonometric curve since it corresponds to the original \(\kappa \)-curve. Let \(c_i(t)\) be a linear trigonometric curve with control points \(c_{i,0}\), \(c_{i,1}\) and \(c_{i,2}\) and defined by
where \(S=\sin \frac{\pi t}{2}\), \(C=\cos \frac{\pi t}{2}\) and \(t \in [0,1]\). Its curvature is given by
where \(r_i = c_{i,1}-c_{i,0}\) and \( s_i = c_{i,2}-c_{i,1}\). The numerator of the above formula does not depend on t, so the extrema of the following \(f_i(t)\) corresponds to those of \(\kappa _i(t)\):
and its derivative with respect to t is given by
By assuming \({d f_i(t)}/{d t}=0\) with \(S, C \ne 0\), we obtain
where \(\gamma =( \Vert s_i \Vert ^2-\Vert r_i \Vert ^2)/\langle r_i, s_i\rangle \). We can solve the above equation and obtain
Since \(0 \le S, C \le 1\), we have the unique solution
Hence,
Note that when \(r_i\) and \(s_i\) are perpendicular to each other, if \(\Vert r_i\Vert = \Vert s_i \Vert \), then the curve becomes a circular arc, and no local maximum curvature exists. If \(\Vert r_i \Vert > \Vert s_i \Vert \), then the curvature at \(t=1\) will be maximum, and if \(\Vert r_i \Vert < \Vert s_i \Vert \), the curvature at \(t=0\) will be maximum in this curve segment.
The two curves on the top left (red) are \(\kappa \)-curves; the two on the top right (brown) are \(\epsilon \kappa \)-curves using cubic Bernstein basis functions with \(a=0.75\) and 0.9. The bottom row shows \(\epsilon \kappa \)-curves using quadratic trigonometric basis functions with \(a=0.55\), 0.6, 0.75 and 0.9
For a quadratic trigonometric curve, the curvatures \(\kappa _i(1;a_i)\) and \(\kappa _{i+1}(0;a_i)\) at the endpoints of the constrained quadratic trigonometric curve \(c_i\) are given by
We can calculate \(\lambda _i\) by guaranteeing \(G^2\) continuity at the joint of \(c_i(1;a_i)\) and \(c_{i+1}(0;a_{i+1})\):
As before, we get a linear system of equations for \(c_{i,1}\):
where \(u_i=1-\sin \frac{\pi t_i}{2}\), \(v_i=\sin \frac{\pi t_i}{2} + \cos \frac{\pi t_i}{2} -1\) and \(w_i = 1-\cos \frac{\pi t_i}{2}\).
4.2 Results
Figures 11 and 12 show examples of \(\epsilon \kappa \)-curves using the quadratic trigonometric basis functions explained in this section. In the first figure, the top left two curves (red) are \(\kappa \)-curves. The top right two curves (brown) are \(\epsilon \kappa \)-curves, using cubic Bernstein basis functions with \(a=0.75\) and 0.9. The bottom row (green) shows \(\epsilon \kappa \)-curves using quadratic trigonometric basis functions with \(a=0.55\), 0.6, 0.75 and 0.9. The curves in the bottom row are more rounded than those of the Bernstein basis. By increasing a, the differences between the two types of curves become smaller as they approach a polyline generated by connecting the input points.
The second figure shows a case where these more rounded forms are clearly preferable.
4.3 Use of built-in shape parameters
So far our strategy made use of degree elevation—from quadratic to cubic in the polynomial case, and from linear to quadratic in the trigonometric case. Yet another strategy is to use extra shape parameters built into the basis functions.
As an illustrative example, take the trigonometric cubic Bernstein-like basis functions reviewed in the previous section. In the framework of \(\epsilon \kappa \)-curves, we have to degenerate the curve by relocating the positions of its control points, essentially reducing its degree.
The trigonometric cubic Bernstein-like basis functions need four control points to define a curve. To construct “quadratic” curves corresponding to the quadratic Bézier segments of \(\kappa \)-curves, we make the second and third control points collocate. Hence, the blending functions become
where \(S=\sin \frac{\pi t}{2}\), \(C=\cos \frac{\pi t}{2}\), for \(\alpha \in (0,2)\), \(t \in [0,1]\). Incidentally, this will result in the same curve as Eq. (17), if we substitute 2a for \(\alpha \).
Note that several curve types—such as the cubic alternative curve and the \(\alpha \beta \)-Bernstein-like basis functions, for specific extra parameters—have zero curvature at the endpoints, so we cannot obtain the internal division ratio \(\lambda _i\). For these curves, the method shown in this section cannot be applied. See details in Appendix C.
5 Conclusions and future work
We have proposed two types of \(\epsilon \kappa \)-curves as extensions of \(\kappa \)-curves, for controlling the magnitudes of local maximum curvature. Our methods use degree elevation of the Bernstein basis functions and a new family of trigonometric basis functions.
In line with Yan et al.’s paradigm shift for curve generation, we consider the local maximum curvature in the middle, instead of focusing on the endpoints. The new curves preserve all of the nice properties of \(\kappa \)-curves, i.e., point interpolation, \(G^2\) continuity (except at inflection points), continuous modification (changes smoothly when the input points move) and local influence. Computing \(\epsilon \kappa \)-curves is quite fast, and designers can manipulate them interactively, acquiring much more expressive power for curve design, as illustrated by our examples. The processing time for generating \(\epsilon \kappa \)-curves is similar to that of \(\kappa \)-curves, especially for \(\epsilon \kappa \)-curves with cubic Bernstein basis. For example, \(\kappa \)-curves consume 0.07 sec to draw Fig. 8 (bear). Under similar conditions, cubic Bézier \(\epsilon \kappa \)-curves consume 0.08 sec and generalized trigonometric \(\epsilon \kappa \)-curves takes 0.37 sec on average.
Future work includes the development of \(\epsilon \kappa \)-curve plug-ins for Adobe Illustrator® and Photoshop®. Another possible research direction is to apply the proposed method to different types of aesthetic curves, e.g., log-aesthetic curves [26], \(\sigma \)-curves [18] or \(\tau \)-curves [19].
References
Attneave, F.: Some informational aspects of visual perception. Psychol. Rev. 61, 183–193 (1954)
Barsky, B.A., Beatty, J.C.: Local control of bias and tension in beta-splines. ACM Trans. Graph. 2(2), 109–134 (1983)
do Carmo, M.P.: Differential Geometry of Curves and Surfaces. Prentice-Hall, Upper Saddle River (1976)
Chelius, C.: Using the curvature tool in Adobe Illustrator (2016). https://web.archive.org/web/20161023130701/https://creativepro.com/curvature-tool-adobe-illustrator/. Accessed 7 May 2021
Chen, Z., Huang, J., Cao, J.C., Zhang, Y.J.: Interpolatory curve modeling with feature points control. Comput. Aided Des. 114, 155–163 (2019)
Djudjic, D.: Photoshop CC officially gets curvature pen tool and other improvementsts (2017). https://web.archive.org/web/20200620025914/https://www.diyphotography.net/photoshop-cc-officially-gets-curvature-pen-tool-improvements/. Accessed 7 May 2021
Farin, G.: Curves and Surfaces for CAGD. Morgan-Kaufmann, San Francisco (2001)
Han, X.A., Ma, Y., Huang, X.: The cubic trigonometric Bézier curve with two shape parameters. Appl. Math. Lett. 22(2), 226–231 (2009)
Gobithaasan, R.U., Miura, K.T.: Curvature Extrema for Constrained Bézier Curves. https://demonstrations.wolfram.com/ CurvatureExtremaForConstrainedBezierCurves/. Accessed 7 May 2021
Jamaludin, M., Said, H., Majid, A.: Shape control of parametric cubic curves. In: Proceeding of the 4th International Conference on CAD & CG, pp. 161–167 (2001)
Julia: The Julia programming language (2020). https://julialang.org/. Accessed 7 May 2021
Levien, R., Séquin, C.H.: Interpolating splines: which is the fairest of them all? Comput. Aided Des. Appl. 6(1), 91–102 (2009)
Liu, L., Zhang, L., Xu, Y., Gotsman, C., Gortler, S.J.: A local/global approach to mesh parameterization. In: Proceedings of the Symposium on Geometry Processing, pp. 1495–1504 (2008)
Maxima: A computer algebra system. version 5.44.0 (2020). http://maxima.sourceforge.net/. Accessed 7 May 2021
Miura, K.T.: A general equation of aesthetic curves and its self-affinity. Comput. Aided Des. Appl. 3(1–4), 457–464 (2006)
Miura, K.T., Salvi, P.: On the curvature extrema of special cubic Bézier curves (2021). arXiv:2101.08138
Miura, K.T., Shibuya, D., Gobithaasan, R.U., Usuki, S.: Designing log-aesthetic splines with \({G}^2\) continuity. Comput. Aided Des. Appl. 10(6), 1021–1032 (2013)
Miura, K.T., Suzuki, S., Gobithaasan, R.U., Usuki, S., Inoguchi, J., Sato, M., Kajiwara, K., Shimizu, Y.: Fairness metric of plane curves defined with similarity geometry invariants. Comput. Aided Des. Appl. 15(2), 256–263 (2018)
Miura, K.T., Suzuki, S., Usuki, S., Gobithaasan, R.U.: \(\tau \)-Curve—introduction of cusps to aesthetic curves. J. Comput. Des. Eng. 7(2), 155–164 (2020)
Norman, J.F., Phillips, F., Ross, H.E.: Information concentration along the boundary contours of naturally shaped solid objects. Perception 30, 1285–1294 (2001)
Said, H.: Generalized ball curve and its recursive algorithm. ACM Trans. Graph. 8, 360–371 (1989)
Salvi, P.: Implementation of \({\epsilon }{\kappa }\)-curves (2020). https://github.com/salvipeter/ekcurves/. Accessed 7 May 2021
Sorkine, O., Alexa, M.: As-rigid-as-possible surface modeling. In: Proceedings of the Symposium on Geometry Processing, pp. 109–116 (2007)
Usman, M.M., Abbas, M., Miura, K.T.: Some engineering applications of new trigonometric cubic Bézier-like curves to free-form complex curve modeling. J. Adv. Mech. Des. Syst. Manuf. 14(4), 1 (2020)
Walton, D.J., Meek, D.S.: Curvature extrema of planar parametric polynomial cubic curves. J. Comput. Appl. Math. 134, 69–83 (2001)
Wang, D., Gobithaasan, R.U., Sekine, T., Usuki, S., Miura, K.T.: Interpolation of point sequences with extremum of curvature by log-aesthetic curves with \({G}^2\) continuity. Comput. Aided Des. Appl. 18(2), 399–410 (2021)
Yan, Z., Schiller, S., Schaefer, S.: Circle reproduction with interpolatory curves at local maximal curvature points. Comput. Aided Geom. Des. 72(6), 98–110 (2019)
Yan, Z., Schiller, S., Wilensky, G., Carr, N., Schaefer, S.: \(\kappa \)-curves: Interpolation at local maximum curvature. ACM Trans. Graph. 36(4), Article 129 (2017)
Yuksel, C.: A class of \({C}^2\) interpolating splines. ACM Trans. Graph. 39(5), 160:1–160:14 (2020)
Zhang, G., Wang, K.: Quasi-cubic trigonometric curve and surface. Preprint (2019)
Zhang, J.: C-curves: an extension of cubic curves. Comput. Aided Geom. Des. 13, 360–371 (1996)
Zhu, Y., Han, X., Liu, S.: Curve construction based on four \(\alpha \beta \)-Bernstein-like basis functions. J. Comput. Appl. Math. 272, 160–181 (2015)
Ziatdinov, R.: Visual perception, quantity of information function and the concept of the quantity of information continuous splines. Sci. Vis. 8(1), 168–178 (2016)
Acknowledgements
This work was supported by JST CREST (No. JPMJCR1911); JSPS Grant-in-Aid for Scientific Research (B, No. 19H02048); JSPS Grant-in-Aid for Challenging Exploratory Research (No. 26630038); Solutions and Foundation Integrated Research Program; ImPACT Program of the Council for Science, Technology and Innovation; and the Hungarian Scientific Research Fund (OTKA, No. 124727). The authors acknowledge the support by 2016, 2018 and 2019 IMI Joint Use Program Short-term Joint Research “Differential Geometry and Discrete Differential Geometry for Industrial Design” (September 2016, September 2018 and September 2019). The second author acknowledges University Malaysia Terengganu for approving sabbatical leave which was utilized to work on emerging researches, including this work.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interest
The authors declare that they have no conflict of interest.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Supplementary Information
Below is the link to the electronic supplementary material.
Supplementary material 1 (mp4 6667 KB)
Appendices
Local maximum curvature of cubic polynomial curves
1.1 General case
The signed curvature \(\kappa (t)\) of a cubic polynomial curve \(c(t) = ( x(t), y(t) )\) is given by [3] as
where \(x' = {\mathrm dx(t)}/{\mathrm dt}\), \(x'' = {\mathrm d^2x(t)}/{\mathrm dt^2}\), and higher derivatives are expressed in a similar way.
At the extremum \({\mathrm d\kappa (t)}/{\mathrm dt} = 0\) and \({\mathrm d\kappa (t)^2}/{\mathrm dt} = 2 \kappa (t) \cdot {\mathrm d\kappa (t)}/{\mathrm dt}\). Hence, if we exclude points where \(\kappa (t)=0\), we can obtain t values at the extrema.
By differentiating
with respect to t, we obtain
where \(x'y''-x''y'=0\) means the curvature is equal to 0, and it corresponds to inflection points. Consequently,
corresponds to curvature extrema. The above equation is regarded as (quadratic \(\times \) quartic) − (cubic \(\times \) cubic), but the coefficient of sextic terms vanishes and it becomes quintic. Therefore, a cubic polynomial curve can have at most 5 curvature extrema. Please refer to [25] for more details. Since Eq. (33) is quintic, it is generally not possible to have analytical solutions, so we must use numerical approach to obtain the points on the curve where curvature extrema occurs.
1.2 Uniqueness
Here, we give a high-level summary of the proof [16] that the curvature of a cubic curve of the form shown in Eq. (1) has at most one local extremum in the (0, 1) parameter interval. As a consequence, the degree-9 polynomial in Sect. 3.1, computed by the Maxima [14] program in Fig. 13, has at most one real solution in the (0, 1) interval. When it has none, this means that no local extremum is present in the curvature, so the extremum occurs at
Without loss of generality, place the control points as follows:
where \(b\ge 0\) and \(h>0\). (The special cases where \(Q_0=Q_2\) or \(h=0\) are also handled in [16].)
Let N(t, a) denote the left side of Eq. (33) applied to this curve. When \(b\le 3-2/a\), it is easy to see that \(\partial N(t,a)/\partial t<0\) for any \(t\in (0,1)\) and \(a\in [2/3,1]\), so N is decreasing. Since N(0, a) is always positive, this means N has at most one 0-crossing.
In the following, let us also assume that \(b>3-2/a\). Then, the following statements can also be proven:
From the above,, it is easy to prove that \(N(t,a)=0\) has exactly one solution—and thus, the curvature has at most one local extremum—in (0, 1).
Generalized trigonometric basis functions
1.1 Recursive evaluation
For our new trigonometric basis, we can derive a recursive algorithm similar to de Casteljau’s algorithm . For simplicity we explain only the quadratic case, but it can be extended to a general degree n by induction. To shorten expressions, we use \(u=1-S(t)\), \(v=S(t)+C(t)-1\) and \(w=1-C(t)\), where \(S(t) = \sin \frac{\pi t}{2}\) and \(C(t) = \cos \frac{\pi t}{2}\). Note that \(v^2 = 2 u w\), and
For a quadratic curve with this basis, five control points \(P_i\) (\(i=0\dots 4\)) are used, and the curve point at t is evaluated as
Hence, the algorithm repeats a simple blending of three points \(u P_{i-1} +v P_{i} +w P_{i+1}\) to generate a point on the given curve.
1.2 Triangle method
We can also construct a triangle using the coefficients of trigonometric basis functions, similarly to Pascal’s triangle. Below is a table of degree elevation, from the first row representing degree 1 to the sixth row representing degree 6:
Various basis functions
Here, we check the applicability of the bases listed in Sect. 2, except for the trigonometric cubic Bernstein-like basis functions [24], since that was already discussed in the paper.
1.1 C-Bézier curve [31]
The basis of the C-Bézier curve is \(\{ \sin t, \cos t, t, 1 \}\), and the curve is defined by the following formula:
Here, \(\alpha \) is a built-in shape parameter satisfying \(0 < \alpha \le \pi \), and \(S=\sin \alpha \), \(C = \cos \alpha \). The parameter of the curve is \(t \in [0,\alpha ]\), and
We degenerate the curve by adding its second and third basis functions, i.e., placing the second and third control points at the same position. The curve is then defined by three control points. However, even if we vary \(\alpha \) from 0 to \(\pi \), the blending functions do not vary much, as shown in Fig. 14. Therefore, this type of curve is not suitable for changing the magnitude of local maximum curvature.
1.2 Cubic alternative curve [10]
The cubic alternative curve is similar to the cubic Bézier curve, and is defined by
where the basis functions \(F_i(t)\), \(t=0\dots 3\) are
When \(\alpha =\beta =2\), the curve becomes the cubic Ball curve; for \(\alpha =\beta =3\), the classical cubic Bézier curve; and for \(\alpha =\beta =4\), the cubic Timmer curve. The basis functions are nonnegative when \(0 \le \alpha \le 3\).
We assume that \(\beta =\alpha \), and the curve is degenerated by adding the second and third blending functions. Hence,
We define the curve \(c(t;\alpha )\) by
Then,
Hence, the curvature \(\kappa _i(t;\alpha )\) for each curve segment is given by
When \(\alpha =3\), this degenerates to the classical cubic Bézier curve with collocated second and third control points, and at the endpoints we get \(\kappa _i(0,3)=\kappa _i(1,3)=0\), since the directions of the first and second derivatives are the same. Hence, the proposed method is not applicable in this case.
When \(\alpha \ne 0\),
To guarantee \(G^2\) continuity at the joint of the segments, when \(0< \alpha _i, \alpha _{i+1} < 3\), we can compute \(\lambda _i\) (\(0< \lambda _i < 1\) ) by
When \(\alpha _i, \alpha _{i+1}>3\),
In other cases, such as \(\alpha _i>3\), \(0< \alpha _{i+1} < 3\) or \(0< \alpha _i < 3\), \(\alpha _{i+1} > 3\), \(\lambda _i\) can be determined by careful handling of the signs of \(3-\alpha _i\) and \(3-\alpha _{i+1}\).
By assuming a local maximum curvature at \(t_i\), we can express the input point \(p_i\) as
1.3 Cubic trigonometric Bézier curve [8]
For \(\lambda \), \(\mu \in [-2,1]\), \(t \in [0, 1]\), the cubic trigonometric Bézier denoted as T-Bézier basis functions are defined by
where \(S=\sin \frac{\pi t}{2}\) and \(C=\cos \frac{\pi t}{2}\).
We assume \(\lambda =\mu =\alpha \), and the curve is degenerated by adding the second and third blending functions. Hence,
We define the curve \(c(t;\alpha )\) by
Then,
Hence, \(d c/dt \times d^2 c/dt^2\) is given by
When \(\alpha =0\), this curve is the same as the trigonometric cubic Bernstein-like curve with \(\alpha =2\), and the curvatures at the start and end points \(\kappa (0)\) and \(\kappa (1)\) are generally not equal to zero. For other \(\alpha \) values, \(\kappa (0)=\kappa (1)=0\), so our method is not applicable. This is because the directions of the first and second derivatives are the same.
1.4 \(\alpha \beta \)-Bernstein-like basis functions [32] and quasi-cubic trigonometric Bernstein basis curves [30]
For arbitrary \(\alpha \), \(\beta \in [2,+\infty ]\), and \(t \in [0,1]\), the \(\alpha \beta \)-Bernstein-like basis functions are defined by
When \(\alpha =\beta =2\), these degenerate to cubic Said-Ball basis functions [21]. When \(\alpha =\beta =3\), these become cubic Bernstein basis functions.
Let \(\beta =\alpha \) and we degenerate the curve by adding the second and third blending functions. Hence,
We define the curve \(c(t)\) by
Then,
Hence, its curvature \(\kappa (t;\alpha )\) is given by
When \(\alpha =2\) (cubic Said-Ball curve), the curvatures at the start and end points \(\kappa (0;\alpha )\) and \(\kappa (1;\alpha )\) are generally not zero. However, when \(\alpha > 2\), we get \(\kappa (0;\alpha )=\kappa (1;\alpha )=0\). Therefore, in this case our method is not applicable.
In the case of quasi-cubic trigonometric Bernstein basis curves, the directions of the first and second derivatives at the ends are the same; thus, our method is not applicable.
Rights and permissions
Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.
About this article
Cite this article
Miura, K.T., Gobithaasan, R.U., Salvi, P. et al. \(\epsilon \kappa \)-Curves: controlled local curvature extrema. Vis Comput 38, 2723–2738 (2022). https://doi.org/10.1007/s00371-021-02149-8
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00371-021-02149-8