Abstract
An object with complete boundary or silhouette is essential in various design and computer graphics feats. Due to various reasons, some parts of the object can be missing hence increasing the complexity in designing process. It is therefore important to reconstruct the missing parts of an object while retaining its aesthetic appearance. In this paper, we propose LogAestheic Curves (LAC) for shape completion problem. We propose an algorithm to construct LAC segment and subsequently fit into the gap of the missing parts with Cshape or Sshape. For Cshape completion, we define LAC segment by specifying two endpoints and their respective tangent directions between the gaps while, for Sshape, the user defines an inflection point in between the endpoints. The final section illustrates three examples to showcase the efficiency of the proposed algorithm. The results are further compared with Kimia’s method to prove that the algorithm produces equally good result. Additionally, the proposed algorithm provides an extra degree of freedom in which the user would be able to choose the type of spiral that they desire to solve the shape completion problem.
1. Introduction
In a design environment, there are situations in which the outlines of an object are missing or occluded. These scenarios are commonly known as shape completion, gap completion, or curve completion problem. It is important to recomplete the shape of the missing object while retaining its aesthetic appearance since a complete object can be used further for applications in modeling, mesh analysis, and computeraided design as well as manufacturing purposes. The complete boundary or silhouette provides geometrical information of a model which is significant in engineering analysis and manufacturing process. In order to reconstruct the missing boundaries of an object, the associated curve segment must satisfy the boundary conditions so that the curve passes through the endpoints with specified tangent direction. To date, there are numbers of algorithms available for shape completion problem (see the works of [1–6]).
A notable work which received much attention is by Kimia et al. [3], where they proposed an algorithm which utilizes Euler spiral to solve shape completion problem. Euler spiral is also known as Cornu’s spiral or clothoid. The Euler spiral is widely applied in highway/railway or robotic trajectories design due to its linear curvature property (curvature varies linearly with respect to arc length). The algorithm proposed by Kimia et al. [3] is the implementation of Euler spiral to solve the shape completion problem. In their proposed algorithm, two endpoints (, ) and their tangential angles (, ) are the inputs. In order to construct Euler spiral for the given problem, curvature and arc length of the curve are required to be identified. Since the proposed Euler spiral algorithm is an iterative process, initial guess for these two parameters (curvature and arc length) is needed. Kimia et al. [3] recommended the use of biarc to obtain the initial curve with its corresponding curvature and arc length for the proposed algorithm. Note that the goal of their proposed algorithm is to minimalize the distance between last point and resulting curve in order for the gap to be filled using gradient descent method.
LogAesthetic Curves (LAC) are curves where the logarithmic curvature graph (LCG) can be represented by a straight line. The idea of LCG was formulated by Harada et al. (1999) when they attempted to classify all the curves used in automobile design. It was first known as logarithmic distribution diagram of curvature (LDDC). It is a graph to measure the relationship between curvature radius (denoted by ) and arc length of the curve segment (denoted by ). They found that all the curves employed in automobile design depict linear gradient of LDDC. Kanaya et al. [7] refined the formulation of LDDC which is now known as LCG. The horizontal axis of LCG represents and the vertical axis represents [8]. Figure 1 illustrates the two segments of Euler spiral.
(a) Two segments of Euler spiral
(b) Its corresponding logarithmic curvature graph
In 2005, Miura et al. [9] derived a fundamental formula of LAC based on a linear representation of LCG. A year later, Yoshida and Saito [10] investigated the characteristics and overall shape of LAC. They also proposed a method to construct LAC segment interactively by specifying endpoints and their tangent vectors. In 2009, they further extended LAC into space curve and proposed a method to interactively control the curves, which is similar to quadratic Bezier curves.
LAC has become a promising curve in graphic and industrial design due to its monotonic curvature property. There are two shape parameters of LAC denoted by and . The shape parameter is used to determine the type of spiral within the family of LAC, and is used to satisfy the constraint during the design process. LAC comprises Euler spiral (), Nielsen spiral (), logarithmic or equiangular spiral (), circle involute (), and others.
In 2011, Gobithaasan and Miura [11] expanded the family of LAC into Generalized LogAesthetic Curve (GLAC) by adding generalized Cornu spiral (GCS) to the family of LAC. This includes Euler spiral, logarithmic spiral, circle involute, Nielsen spiral, LAC, and GCS as the members of GLAC. To note, GCS is proposed by Ali et al. [12] where it becomes Euler spiral when the shape parameter of GCS is zero. GLAC has an extra shape parameter compared to LAC in which it can be used to satisfy additional constraints that occur during design process [13]. The curvature function of GLAC is also monotonic similar to LAC. In 2012, they further extended GLAC into space curve.
In 2012, Ziatdinov et al. [14] defined LAC in the form of incomplete gamma functions. They claimed that this new expression of LAC is capable of reducing the computation time up to 13 times faster. In 2013, the problem of Hermite interpolation was dealt with by Miura and Gobithaasan [15] by introducing logaesthetic splines which consists of triple LAC segments. Readers are referred to [16] for a detailed review on aesthetic curves.
In this paper, we introduce the implementation of LAC algorithm to fit the gap in between the outlines of missing/occlusion objects. We compare the performance of this algorithm with the results obtained by Kimia et al.’s [3] method on the same examples in order to show the effectiveness of LAC to solve shape completion problem.
The rest of this paper is organized as follows. First, the formulation of LAC is reviewed followed by a detailed explanation on the LAC algorithm for solving the shape completion problem. In Section 3, we demonstrate the implementation of the proposed algorithm with various values with three examples to show the implementation of this method. The data and calculation used in the examples are also depicted in this section. The output of shape completion using Kimia’s method is also depicted for comparison purposes. We also make comparison of the results obtained using Kimia et al.’s [3] method and our algorithm. We further show some shape variations which can be obtained by using Sshape LAC in which the designer tweaks the segment in order to obtain the desired shape.
2. LogAesthetic Curves in Shape Completion
In this section, we show the parametric expression of LAC and the algorithm used to obtain the solution for shape completion problem with various values.
2.1. The Analytical Formulas and Parameters
There are two shape parameters used to define LAC segment: and . The shape parameter determines the type of spiral and is used to control the curve so that the constraints are satisfied. Let and represent radius of curvature and tangent angle of the curve, respectively.
Equation (1) shows the radius of curvature function in terms of its turning angle. To note, (1) is used to define the parametric expression of LAC in terms of its turning angle as shown in (2) as follows: where represents starting point and and represent the imaginary unit and exponent, respectively. LAC can also be represented in the arc length parameter, , as follows:Both (2) and (3) generate the same LAC. The curve can be drawn in complex plane by the axis representing real numbers and the axis representing imaginary numbers. Readers are referred to [10] for a detailed derivation of the parametric expression of LAC.
2.2. The LAC Algorithm
CShape. We customize the algorithm of constructing LAC segment to fill the gap by specifying two endpoints, its tangent vector, and value. The Cshape LAC curve is a direct process in which the user may interactively input the endpoints and the tangent direction of those points. We can further automate the identification of tangents at the endpoints by using threepoint circular arc approximation around the endpoints as explained in Steps 1 and 2 in the algorithm below. Using these tangents, we may calculate the midpoint. These three points are then used to fit LAC segment in the gap for shape completion problem. The idea of this method is to find a LAC segment defined in a triangle composed of three control points as proposed by Yoshida and Saito [10]. Therefore, by using this method, it is only possible to generate a Ccurve. Figures 2 and 3 show the configuration of the triangle formed by three control points for cases and , respectively. Step 5 in the algorithm below elaborates these configurations.
(a) Original position of control points
(b) Position of control points after transformation
(a) Original position of control points
(b) Position of control points after transformation
SShape. Basically, a Sshape LAC segment consists of two Cshape curves joined with continuity. In order to construct the Scurve for a given gap, the inflection point is essential. A simple approach used is that users are given the freedom to define the inflection point so that the algorithm is carried out twice consisting of two Cshape segments of LAC. Thus, this approach needs two endpoints, its tangent vectors, value, and an inflection point.
The process involves breaking the Scurve into two Ccurves so the first piece of curve is constructed between starting point (black) and inflection point (gray), while the second piece is between inflection point (gray) and endpoint (black). Figure 4 illustrates the inflection point that we define for one of the numerical examples in this paper.
Algorithm 1 demonstrates the LAC algorithm.

2.2.1. Computation of Tangent Angles (Step 1–Step 3)
To automate the process of defining the tangents at the endpoints, we may use circular arc approximation (osculating circle) that best fits the endpoints and points surrounding them in order to determine the tangent angle at both endpoints. Since it is an osculating circle, we substitute the points into the equation of circle. Then, we identify the center (), radius , and turning angle of circle from three points which include the endpoint. Next, we determine the unit tangent vector at the endpoints and subsequently calculate the corresponding tangent angle by using specified formula as indicated in the algorithm. Alternately, we may also allow the user to directly define tangent vectors at those points.
2.2.2. Identification of Second Control Point (Step 4)
Once the unit tangent vector at endpoints is identified, we determine the coordinate of the second control point which is the intersection point of the tangential line at both endpoints by solving the equations simultaneously.
2.2.3. Affirmation of Initial and Last Point Position (Step 5)
We assume the distance between and is less than and as proposed by Yoshida and Saito [10]. The position of and is switched if the criterion is not satisfied. Otherwise, the position remains unchanged. Note that there are two cases of constructing LAC segment based on the value as illustrated in Figures 2 and 3. For case , the initial endpoint is the starting point during the curve construction process . On the other hand, starting point of curve construction process for case is the last endpoint .
2.2.4. Transformation Process (Step 6)
The transformation process includes translation, rotation, and reflection of the original triangle that consist of , , . Initially, the original triangle is translated to the origin so that the starting point is located at the origin. Next, we rotate the triangle so that the second control point is placed on the axis. Finally, we ensure the last point of the curve construction process is located at the positive axis region. If not, the reflection process is needed to reflect the last point with negative coordinate through the axis. The configuration after transformation is illustrated in Figures 2 and 3.
2.2.5. Computation of Tangent and Turning Angle (Step 7 and Step 8)
We apply the law of cosine of a triangle to calculate corresponding angles as shown in Figures 2 and 3. The tangent angle and turning angle for case or for case will be used in the subsequent step for calculating shape parameter .
2.2.6. Upper Bound of Shape Parameter (Step 9)
For the case when , there is no upper bound for shape parameter . So, the value of can be arbitrarily large. However, there are upper bounds for when and . Therefore, the value of these two cases is restricted within the range of () where and are assigned a specified value as indicated in the algorithm above.
2.2.7. Shape Parameter Calculation (Step 10 and Step 11)
We determine the value that satisfies the constraints of endpoints and angles by using bisection method. First, tolerance and bound of are used in the calculation of iteration number for bisection method. Then, the calculating process will run until the iteration number is met. Once the value of the curve is obtained, it is an interpolating curve that satisfies boundary constraints as shape parameter is used to control the curve so that the constraints are satisfied. The obtained value ensures the generated LAC segment starts at the starting point and ends at the last point while the shape of curve follows the specified tangent vectors at two endpoints.
2.2.8. Computation of Scale Factor (Step 12)
We calculate the scaling factor by using the formula as shown in the algorithm where and are endpoints of the original triangle while and are endpoints of the transformed triangle.
2.2.9. Construction of LAC Segment (Step 13–Step 15)
In order to obtain the curve which is defined in the original triangle, we inversely transform the triangle to its original position. The curve segment is constructed using (2) with the obtained value of , , .
3. Numerical Examples and Discussion
This section shows the input data and numerical and graphical results of implementing the algorithm presented in Section 2 for three examples. For comparison purpose, we present the results of Kimia’s algorithm [3] algorithm on the same examples as well.
3.1. The Graphical Results
Figure 5 shows the first example of fitting Euler spiral and LAC segment to two parts of a jug. The results of the second example (artifact) and third example (vase) are depicted in Figures 6 and 7, respectively.
(a) Euler spiral algorithm
(b) LAC algorithm with two tangents setting for sshaped curve and 
(c) LAC algorithm with two tangents setting for sshaped curve and 
(a) Euler spiral algorithm
(b) LAC algorithm when 
(c) LAC algorithm when 
(a) Euler spiral algorithm
(b) Three types of tangents at the inflection points and 
(c) Tangents setting as in 7(b) and 
(d) Tangents setting as in 7(b) and 
3.2. The Numerical Results
The input data and the obtained parameter values to render LAC segment for Cshaped and Sshaped gaps are shown in Tables 1, 2, and 3, respectively.
3.3. Discussion
We implemented LAC algorithm with various values for each example. In Figures 5, 6, and 7, we showed a subfigure of LAC with in between the gaps for the missing part of the objects. These examples are indeed Euler spiral similar to the work of Kimia et al. [3]. Users are indeed fitting a circle involute when as shown in each figure; Nielsen spiral is fitted when and logarithmic spiral when . The shape parameter definitely dictates the type of spiral the user desires to fit into the gap.
Based on the comparison of graphical results in Figures 5, 6 and 7 we found that Kimia’s algorithm [3] and the LAC algorithm behave similarly. However, the proposed LAC algorithm gives more flexibility to designers as they can manipulate the shape parameter and the tangent direction at the inflection point in order to get various Sshaped LAC segments.
4. Conclusion
A LAC segment can be constructed by specifying the endpoints and their tangent directions. LAC is a family of aesthetic curves where their curvature changes monotonically. It comprises Euler spiral, logarithmic spiral, Nielsen spiral, and circle involute with different values. The algorithm for constructing LAC segment to solve shape completion problem is defined in Section 2. The results of implementing both Kimia et al.’s [3] algorithm and the proposed LAC algorithm on the same images are depicted in Section 3. LAC has an upper hand due to its flexibility although both algorithms are capable of solving shape completion problems. Since LAC represents a bigger family rather than Euler spiral alone, it is clear that more shapes are available to fill the missing gap. Moreover, the resulting LAC segments are satisfying continuity where the curve segments interpolate both endpoints in the specified tangent directions. In case the user wants a LAC solution, one may plug in the technique proposed by Miura et al. [15] or employ GLAC [17] in which we may use shape parameter in GLAC to satisfy the desired curvatures.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
Acknowledgments
The authors acknowledge Universiti Malaysia Terengganu (GGP grant) and Ministry of Higher Education Malaysia (FRGS: 59265) for providing financial aid to carry out this research. They further acknowledge anonymous referees for their constructive comments which improved the readability of this paper.