Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for...

11
Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman, Ramanathan Muthuganapathy Advanced Geometric Computing Lab, Department of Engineering Design, Indian Institute of Technology, Madras, India- 600036 Abstract In this paper, the computation of positive α-hull for a set of planar closed C 1 -continuous curves has been addressed without sampling the curves into point-sets or polylines. Positive α-hull, so far, has been computed only for a set of points, using the farthest Delaunay triangulation, a dual of farthest Voronoi diagram. However, Delaunay triangulation does not exist for a set of curved boundaries and the computation of Voronoi diagram for such a set is still a topic of active research. The key insight behind our algorithm is to merge adjacent pairs of curves on the convex hull into a set of triplets. Along with a directed-cyclic graph and a R-List (list of radii), α-neighbours are derived. Using the constraint equations, α-discs are then computed. The algorithm is first provided for convex non-intersecting closed curves, but later explained how it can be generalized for non-convex curves. We show that the algorithm has time complexity of O(n 2 ) time where n is the number of curves, which leads to a practical implementation with a reasonable running time in seconds for a few dozen curves. By directly operating on the curves. our method is both robust and accurate thus avoiding the problems that arise on polyline/point-set approximations of the curve networks. Keywords: Voronoi diagram, Positive alpha hull, Curved Boundaries, Delaunay triangulation 1. Introduction α-hull [1] for a point-set is a shape that generalizes the notion of convex hull (in this paper, the term ‘convex hull’ is used synonymous with the boundary of the convex hull [2]). The α-hull uses a real parameter α, variations of which leads to a family of shapes. α-hull’s discrete counterpart is α-shape [3], a popular characterisation for a set of points. Planar curves represented by NURBS have been useful in ap- plications such as profile cutting or contour milling [4] and in high speed machining. Such applications often require compu- tations like collision detection for tool path planning. Bound- ing hulls, which typically bound the input set, such as con- vex hull, positive α-hull, enclosing entities viz. rectangles cir- cles/spheres, ellipses, etc. have been found useful in such com- putation. This is because, these hulls are either composed of straight lines or circles, which are easier to be employed for computational purpose. In particular, enclosing circles/discs enable the speed up of the computations such as collision de- tection as the check can be reduced to a computing distance to the center of the discs/circles. Computations of bounding hulls often belong to computa- tional geometry, have been typically considered on a set of points or polygons as input. However, they have now been ex- tended to other fields such as CAD, geometric modeling with domains like closed curves and surfaces (e.g. medial axis [5], minimum spanning hypersphere [6] etc.). It is imperative to note that inputs such as curves also call for dierent kind of ap- proach for the same problem for a set of points. For example, traditional approach to solve medial axis for a set of points such as bisectors could prove expensive for curves. Hence, other ap- proaches such as tracing [5] have to be employed. Computa- tions such as convex hull [7], visibility graph [8], shortest path [9] etc. require tangents and bi-tangents for a set of curves, which is not the case for a set of points. The computations are typically much more numerically intensive than its point- set counterpart. For example, convex hull computation [7] has been formulated as finding zero-sets of polynomial equations in two variables (for bi-tangent identification). Since all the com- puted bi-tangents for a curve may not be part of the final convex hull, steps for eliminating redundant bi-tangents have also been discussed. Traditionally, construction of α-hull/shape [1] for a set of points has been based on Delaunay triangulation. It should be noted that, though the theoretical foundations for Voronoi dia- gram of a set of freeform curves have been well-developed in the recent past, computing Voronoi diagram for such inputs is still a topic of active research (for example, please refer to [10] for Voronoi cell). Moreover, Delaunay triangulation for a gen- eral set of curves does not exist and it is possible only if the curves are discretized into a set of points. Even the generalized Voronoi diagrams can at most deal with circular arcs [11] and not applicable for any generic set of curves. One approach to find the α-hull for a set of curves is to gen- erate set of points on the curves and then use an existing algo- rithm. However, this approach may result in a very coarsely approximated hull (depending on the sampling on each curve) of the input curves which might impede the accuracy of the re- sults (this argument has been shown to be true for algorithms such as medial axis [5]). Hence, the following are the motiva- tions for this work: No algorithm seems to exist for computing α-hull for a set of curves that are represented exactly (i.e. without approx- Preprint submitted to Computer & Graphics May 29, 2015

Transcript of Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for...

Page 1: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Algorithm for computing positive α-hull for a set of planar closed curves

Vishwanath A. Venkataraman, Ramanathan Muthuganapathy

Advanced Geometric Computing Lab, Department of Engineering Design, Indian Institute of Technology, Madras, India- 600036

Abstract

In this paper, the computation of positiveα-hull for a set of planar closed C1-continuous curves has been addressed without sampling

the curves into point-sets or polylines. Positive α-hull, so far, has been computed only for a set of points, using the farthest Delaunay

triangulation, a dual of farthest Voronoi diagram. However, Delaunay triangulation does not exist for a set of curved boundaries

and the computation of Voronoi diagram for such a set is still a topic of active research. The key insight behind our algorithm is to

merge adjacent pairs of curves on the convex hull into a set of triplets. Along with a directed-cyclic graph and a R-List (list of radii),

α-neighbours are derived. Using the constraint equations, α-discs are then computed. The algorithm is first provided for convex

non-intersecting closed curves, but later explained how it can be generalized for non-convex curves. We show that the algorithm

has time complexity of O(n2) time where n is the number of curves, which leads to a practical implementation with a reasonable

running time in seconds for a few dozen curves. By directly operating on the curves. our method is both robust and accurate thus

avoiding the problems that arise on polyline/point-set approximations of the curve networks.

Keywords: Voronoi diagram, Positive alpha hull, Curved Boundaries, Delaunay triangulation

1. Introduction

α-hull [1] for a point-set is a shape that generalizes the notion

of convex hull (in this paper, the term ‘convex hull’ is used

synonymous with the boundary of the convex hull [2]). The

α-hull uses a real parameter α, variations of which leads to a

family of shapes. α-hull’s discrete counterpart is α-shape [3], a

popular characterisation for a set of points.

Planar curves represented by NURBS have been useful in ap-

plications such as profile cutting or contour milling [4] and in

high speed machining. Such applications often require compu-

tations like collision detection for tool path planning. Bound-

ing hulls, which typically bound the input set, such as con-

vex hull, positive α-hull, enclosing entities viz. rectangles cir-

cles/spheres, ellipses, etc. have been found useful in such com-

putation. This is because, these hulls are either composed of

straight lines or circles, which are easier to be employed for

computational purpose. In particular, enclosing circles/discs

enable the speed up of the computations such as collision de-

tection as the check can be reduced to a computing distance to

the center of the discs/circles.

Computations of bounding hulls often belong to computa-

tional geometry, have been typically considered on a set of

points or polygons as input. However, they have now been ex-

tended to other fields such as CAD, geometric modeling with

domains like closed curves and surfaces (e.g. medial axis [5],

minimum spanning hypersphere [6] etc.). It is imperative to

note that inputs such as curves also call for different kind of ap-

proach for the same problem for a set of points. For example,

traditional approach to solve medial axis for a set of points such

as bisectors could prove expensive for curves. Hence, other ap-

proaches such as tracing [5] have to be employed. Computa-

tions such as convex hull [7], visibility graph [8], shortest path

[9] etc. require tangents and bi-tangents for a set of curves,

which is not the case for a set of points. The computations

are typically much more numerically intensive than its point-

set counterpart. For example, convex hull computation [7] has

been formulated as finding zero-sets of polynomial equations in

two variables (for bi-tangent identification). Since all the com-

puted bi-tangents for a curve may not be part of the final convex

hull, steps for eliminating redundant bi-tangents have also been

discussed.

Traditionally, construction of α-hull/shape [1] for a set of

points has been based on Delaunay triangulation. It should be

noted that, though the theoretical foundations for Voronoi dia-

gram of a set of freeform curves have been well-developed in

the recent past, computing Voronoi diagram for such inputs is

still a topic of active research (for example, please refer to [10]

for Voronoi cell). Moreover, Delaunay triangulation for a gen-

eral set of curves does not exist and it is possible only if the

curves are discretized into a set of points. Even the generalized

Voronoi diagrams can at most deal with circular arcs [11] and

not applicable for any generic set of curves.

One approach to find the α-hull for a set of curves is to gen-

erate set of points on the curves and then use an existing algo-

rithm. However, this approach may result in a very coarsely

approximated hull (depending on the sampling on each curve)

of the input curves which might impede the accuracy of the re-

sults (this argument has been shown to be true for algorithms

such as medial axis [5]). Hence, the following are the motiva-

tions for this work:

• No algorithm seems to exist for computing α-hull for a set

of curves that are represented exactly (i.e. without approx-

Preprint submitted to Computer & Graphics May 29, 2015

Page 2: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

imating using sample points).

• Algorithm for computing farthest Voronoi diagram for

curves has not yet been developed so far.

• Voronoi diagram, in the curved domain, is still quite diffi-

cult to compute accurately.

• Delaunay triangulation for a set of curves does not exist as

the Voronoi diagram may not consist of just straight lines.

• Approximate representation (such as sampling into points

or polylines) of the curves will lead to inaccuracies in the

computation.

In this paper, an algorithm has been developed for com-

puting positive α-hull of a set of curves without employing

Voronoi/Delaunay based computation. The curves used are rep-

resented using non-uniform rational B-spline (NURBS). It is to

be noted that the closed curves have well defined exterior and

interior unlike that of points. It is assumed that the interior of

a closed curve lies to its left as we travel along the increasing

direction of parametrization.

2. Preliminaries

Initially, the definitions are given for a set of points for ease

of understanding and fine-tuned for a set of curves. Let P =

{p1, p2, . . . , pn} be a set of points termed as sites. The α-hull for

the set P can be defined in the following manner [1].

DEFINITION 1. Let α be a sufficiently small but otherwise

arbitrary positive real. The positive α-hull of P is the intersec-

tion of all closed discs with radius l/α that contain all sites of

P.

DEFINITION 2. For arbitrary negative reals, the negative α-

hull is defined as the intersection of all closed complements of

discs (where these discs have radii −1/α) that contain all the

sites.

Essentially, the positive α-hull is formed out of discs, all of

them contain all the sites (Figure 1(a)). On the other hand, neg-

ative α-hull for a set of sites are formed by discs, where any

closed disc does not contain any site (Figure 1(b)).

(a) Positive α-hull (b) Negative α-hull

Figure 1: α-hulls for a set of points [1].

A note on the notation used

It is to be noted that, Definitions 1 and 2 were based on

[1], where the reciprocal notation for the radius (i.e. 1/α) has

been used. Both negative and positive α-hulls use closed discs,

whose radius value is typically a positive one (the negative no-

tion in Definition 2 is more of a symbolic one). Positive and

negative α-hull depend on whether a closed disc contains the

set or not respectively. In subsequent works (such as [3]), re-

searchers have used negative α-hull synonymous with α-hull

(in fact, α-shape, α-hull’s discrete variety [1, 3] ) without the

reciprocal notation and hence the distinction between positive

and negative α-hulls has not been given that much emphasis.

Nevertheless, in this paper, hereafter, the notation α is used to

denote the radius of the closed disc, a positive value (dropping

the reciprocal notation) and also for computing the positive α-

hull (unless mentioned otherwise).

2.1. Set of curves as input

Let S be a set of free-form (parametric) curves with no

straight line portions and having no discontinuities in R2. The

positive α-hull of S can be defined in the following manner.

DEFINITION 3. α-disc is a disc of radius α.

DEFINITION 4. Let α be a positive real so that there exists

a disc of radius α that contains all input curves. The positive

α-hull of S is the intersection of all such discs.

DEFINITION 5. Two curves in the set that touch α-disc con-

tiguously are called α-neighbours.

DEFINITION 6. An enclosing disc is a disc that encloses

(contains) the entire set of given curves.

DEFINITION 7. A disc that encloses three input curves

(termed as triplet) is called a triplet disc for these curves (i.e.,

the disc may or may not enclose all the other curves in the set).

DEFINITION 8. The minimum enclosing disc (MED) of a set

is the smallest radius disc that encloses the entire set.

In this paper, the radius of MED is denoted as RMED. It is

well known that, in the case of a set of points, farthest Voronoi

diagram and farthest Delaunay triangulation play a role in the

computation of positive α-hull with the result that only points

on the convex hull need to be used for computation of positive

α-hull [1].

Definition 4 indicates that, for a given set of curves S , α-disc

contains all the curves in the set. In the case of a set of sites, the

boundary of the α-hull occurs at all the places where the α-disc

stays in contact with at least two different sites. However, this is

not true for a set of curves, in general, i.e. the α-disc may touch

the same curve at more than one point for positive α-hull. To

account for this, the curves are split at local minimum positive

curvature points as well as at inflection points (for non-convex

curves). The splitting of curves ensure that the α-disc touch

each split portion at only one point. This enables the algorithm

to handle complex shapes typically used in CAGD domain.

2

Page 3: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Though strong relation exists between farthest Voronoi dia-

gram (fVD) [2] and positive α-hull, it is to be noted that no

known algorithm exists for computing farthest Voronoi diagram

accurately for freeform curves. Delaunay triangulation (neither

closest nor farthest) for a set of curves is not defined, making

the identification of α-neighbours not that straight forward for

such a set.

To the best of the knowledge of the authors, no known al-

gorithm exists for the computation of positive α-hull for a set

of curves (from now on, the input set is a set of curves, unless

otherwise mentioned). In this paper, the focus is on getting α-

neighbours from a set of closed curves without computing the

farthest Voronoi diagram of curves. Constraints equations to

identify where α-disc touches for pairs, triplets etc., adopting

from [6] have also been discussed briefly.

3. Constraint Equations

DEFINITION 9. Bitangent (BT) - Line segment that is tangent

to two curves, say, C1(t) and C2(r), and having end points C1(t∗)

and C2(r∗).

DEFINITION 10. Touchpoint - A point on a curve at which a

disc touches tangentially (i.e the tangents of the curve and the

disc are collinear at that point on the curve) .

Consider two curves C1(t) and C2(r) and a disc of radius R with

center P(x, y). At a touchpoint on a curve, the following con-

straints will be satisfied (<, > denotes inner product):

C′1(t), P(x, y) −C1(t)⟩

= 0,⟨

C′2(r), P(x, y) −C2(r)⟩

= 0,

‖C1(t) − P(x, y)‖ = ‖R‖,

‖C2(r) − P(x, y)‖ = ‖R‖. (1)

First two equations indicate that the tangent at a touchpoint will

be perpendicular to the vector connecting the touchpoint and the

center of the disc. The last two equations are formulated based

on the fact that the touchpoint on the two curves are equidistant

from the center P(x, y) of the disc. Constraints in Equation (1)

will return pairs of points on the curves C1(t) and C2(r) satisfy-

ing them.

Consider a triplet, i.e. three curves C0(t), C1(r), and C2(s).

For a disc to be touching the three curves, the following con-

straints have to be satisfied [6];⟨

C′0(t), P(x, y) −C0(t)⟩

= 0,⟨

C′1(r), P(x, y) −C1(r)⟩

= 0,⟨

C′2(s), P(x, y) − C2(s)⟩

= 0,

‖P(x, y) −C0(t)‖ = ‖P(x, y) −C1(r)‖,

‖P(x, y) −C1(r)‖ = ‖P(x, y) −C2(s)‖. (2)

where P(x, y) is the center of the disc and ′ denote the tangent at

a point on the curve. First three equations denote that the disc

is tangent to the curves and the last two denote that touchpoints

(a) Discs satisfying contraint

equations.

(b) Triplet disc

Figure 2: Constraining discs for a set of three curves

are equidistant from the center. Constraints in Equation (2) will

lead to finite set of solutions. For the three curves, the discs

obtained using constraints are shown in Figure 2(a).

A containment check is then used to obtain the triplet disc

from the solution set. Let the Radius direction (RD) is the vec-

tor having the tail as the centre of the disc and head as its touch-

point. It can be observed that, for the triplet disc, the outward

normal of the curve is in the same direction to the RD at every

touchpoint (this check is valid if the disc were to be an enclos-

ing one for any number of curves in a set). Figure 2(b) shows

the triplet disc after applying the containment check for the set

of solutions in Figure 2(a). It can be noted that, for a set of

three curves (the input curves are split at local minimum curva-

ture and inflection points), there can be only one triplet disc, if

exists (similar to the case of three points).

(a) Convex hull (α =∞) (b) Positive α-hull (α = 0.780)

(c) Threshold value for curve C1

(α = 0.740)

(d) Curve C1 left out from α-hull

(α = 0.738)

Figure 3: Curve Omission from α-hull

C1

C2

C4

C3

t14 t12

t21

t41

t12

t14

t21

t41

t21

t41

t12/ t14

t21

t41

3

Page 4: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

4. Basic idea

It is to be noted that, in the case of positive α-hulls, α varies

from RMED (radius of minimum enclosing disc) to ∞ [1]. If

one looks from ‘outside’ the set, the range of α can be thought

of evolving from the convex hull to RMED. Algorithm, in this

paper, essentially mimics this process.

Consider a set of four curves (C1,C2,C3,C4), having anti-

clockwise parametrization, with their convex hull (Figure 3(a)).

For the curve C1, the bitangent to C2 and C4 touches at param-

eter value t12 and t14 respectively. The corresponding points in

the curves C2 and C4 are t21 and t41 respectively. As the value

of α keeps reducing (Figure 3(b)), the parameter value t12 in-

creases and t14 decreases. At a particular value of α (threshold),

the points t12 and t14 coincide (Figure 3(c)) and on further re-

ducing α, the curve C1 ceases to be a part of the α-hull (Figure

3(d)). In general, at each iteration of the algorithm, one curve

is left out from further computation.

Initially, triplets are formed from the set. For a triplet (say

Ci(ti), C j(t j), and Ck(tk)), compute the triplet disc using the con-

straint equations and the containment check. The largest radii

triplet disc (which will be an enclosing disc, by Proposition 5.1)

is then picked for further processing. The radius of the disc is

the threshold value for radius for the ‘central’ curve C j and this

radius value is tagged to C j and stored in a list called R-List.

The curve C j is then deleted and the other triplets which involve

curve C j are modified for further computation. This procedure

extends from the curves in the convex hull (α=∞) to number of

curves in MED (α= RMED).

In this approach, a list of radii values is generated. Each of

the radius value corresponds to a curve, which gives the thresh-

old value beyond which the curve is not part of future compu-

tations. Additionally, a directed acyclic graph (DAG) structure

is also generated which bears information about the changes

made to the set of all triplets when a curve is deleted at each

stage. α-neighbours are computed using the DAG structure and

the R-List. In general, the boundary of the α-hull between α-

neighbours is an arc of a disc having a radius value α. Touch-

points between α-neighbours are computed using constraints in

Equation (1).

5. Algorithm details

Figure 4 shows a set of curves. The algorithm starts with

computing the curves in the convex hull (using [7]) of the set

of curves. Also, obtain pairs of curves that are adjacent to each

other in the convex hull.

5.1. Forming triplets using convex hull (CH)

A triplet consists of three curves, and it can be thought of

denoting the ’central’ curve. Triplets are formed from adjacent

pairs of curves in convex hull for computing positive α-hull by

merging them. In other words, pairs [Ci C j] and [C j Ck], which

are connected neighbours in the convex hull, are combined to

form [Ci C j Ck] (Algorithm 1). For a set of curves, their con-

vex hull is shown in Figure 4 (determined using the algorithm

in [7]). The curves in the convex hull are numbered from C1

C1

C2 C3

C4

C7

C6C5

C8

C9C10

Figure 4: Initial set of curves and curves lying in its convex hull.

Table 1: Starting triplet data for positive α-hullC1 C2 C3 C4 C5 C6 C7

[C2C1C7] [C3C2C1 ] [C4C3C2 ] [C5C4C3 ] [C6C5C4 ] [C7C6C5 ] [C1C7C6 ]

Table 2: Triplet data with the radius listC1 C2 C3 C4 C5 C6 C7

Triplet [C2C1C7 ] [C3C2C1] [C4C3C2] [C5C4C3] [C6C5C4] [C7C6C5] [C1C7C6]

Radius 2.78 4.82 11.64 4.68 4.22 4.89 12.29

to C7. Curves C8, C9 and C10 do not play any role in further

computation as they do not lie on the convex hull of the set.

Adjacent pairs of curves from the convex hull such as [C3 C2]

and [C2 C1] (Figure 4) from the convex hull form a triplet [C3

C2 C1]. The triplet data (TD) for the curves in convex hull is

shown in Table 1.

Algorithm 1 TripletData(CH)

1: for Every pair [Ci C j] in CH do

2: Merge the pairs to form triplets. Append to TD

3: end for

5.2. Starting Triplet

Initially, the triplet disc is computed for each triplet. Table 2

shows the radius value of each triplet disc.

PROPOSITION 5.1. The largest radius disc tangential to any

three curves in the convex hull is definitely a part of the positive

α-hull.

Proof Consider the three curves Cl,Cmand Cn and the triplet

disc (say Oc) corresponding to them. If Oc is not part of the

α-hull, then Oc does not enclose all the curves (i.e. another

curve Co exists which either intersect the Oc or lie outside of

it). A disc (say Nc) can then be identified using Co as one of the

curves in the triplet with a larger radius. Applying the argument

recursively on Nc, a largest radius disc for a triplet that encloses

all the curves can then be identified. Hence the proposition.

PROPOSITION 5.2. Largest disc exists for only for curves

that are sequential in the convex hull.

4

Page 5: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Proof For a set of curves shown in Figure 5(a), let us initially

assume that that the curves Cl, Cn,Co correspond to the largest

disc (RMax). Between curves Cl and Cn, the bi-tangent touches

as shown in figure 5(b). As described in Section 4, the radius of

discs touching the two curves lying inside the convex hull edge

and the initial disc is greater than RMax. Since the curve Cm lies

in the initial convex hull, it definitely cuts across the bi-tangent

line. Hence, there exists a disc between Cl, Cm,Cn that has a

radius greater than RMax (Figure 5(c)). Hence the proposition.

(a) Disc for non-sequential

curves

(b) Bitangent between non - se-

quential curve

(c) Disc for sequential curves

Figure 5: Disc for sequential curves having greater radius

Cl

Cm

Cn

Cp

Co

The triplet corresponding to the maximum radius of the

triplet discs is used as the starting triplet (the triplet disc is also

an enclosing disc, by Propositions 5.1 and 5.2). From Table 2,

the triplet [C1C7C6] is picked as the starting triplet (Figure 6(a)

shows the trimmed enclosing disc of the triplet).

5.3. Updating triplet data

PROPOSITION 5.3. Once a ‘central’ curve has been used for

a triplet disc computation, the curve plays no further part in the

computation of triplet discs.

Proof Let Ca, Cb and Cc be a sequential triplet for which the

radius is largest, the ‘central’ curve being Cb. Since the com-

puted triplet disc for a sequential set of curves is the largest, for

any other triplet Ca, Cc and Cd (being the curve connected to

Cc in the convex hull), the radius of the triplet disc can only

be smaller and contain the curve Cb. Hence the central curve

Cb plays no further part in the triplet disc computation and the

proposition.

The positive α-hull extends from the convex hull to the min-

imum enclosing disc. At each stage, a curve is omitted from

C1

C2 C3

C4

C7

C6

C5

(a) [C1C7C6], trimmed enclosing

disc is shown

(b) Enclosing disc for [C4C3C2]

(c) Enclosing disc for [C4C2C1]

Figure 6: Starting triplet and enclosing discs at each stage.

(a) Enclosing disc for [C5C4C1] (b) Enclosing disc for [C1C6C5]

Figure 7: Enclosing disc of starting triplet at each stage of updating the algo-

rithm.

being part of the α-hull. Updating the triplet data happens by

determining the threshold value for radius at which a curve does

not play further part in computation (refer Figure 3). For exam-

ple, for the set of curves in Figure 4, C7 plays a role only when

the when α >= 12.29. When the radius value further reduces,

the disc does not touch the curve C7 implying that this curve

does not play a role in further computation (Proposition 5.3).

For a set of curves shown in Figure 4, the curve C7 plays a

part in three triplet discs since it occurs in three triplets namely

[C1 C7 C6], [C2 C1 C7] and [C7 C6 C5] (refer Table 2). Since [C1

C7 C6] is the starting triplet, this will be deleted. This implies

that the curve C7 is omitted from further computations. Hence,

necessary changes to the other triplets have to be made taking

into account the curve that is getting omitted. For example, the

triplet [C2 C1 C7] is then changed to [C2 C1 C6] since C6 will

be the connected curve to C1 in the convex hull, after removing

C7. Similarly, [C7 C6 C5] is updated to [C1 C6 C5]. Algorithm

2 explains the process of updating the triplet data (in the tables

5

Page 6: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Table 3: Updated triplet data after deleting C7C1 C2 C3 C4 C5 C6 C7

Triplet [C2C1C6 ] [C3C2C1 ] [C4C3C2 ] [C5C4C3] [C6C5C4] [C1C6C5]

Radius 4.44 4.82 11.64 4.68 4.22 5.71

Table 4: Updated triplet data after deleting C3C1 C2 C3 C4 C5 C6 C7

Triplet [C2C1C6] [C4C2C1] [C5C4C2 ] [C6C5C4 ] [C1C6C5 ]

Radius 4.44 6.38 5.55 4.22 5.71

Table 5: Updated triplet data after deleting C2

C1 C2 C3 C4 C5 C6 C7

Triplet [C4C1C6] [C5C4C1] [C6C5C4] [C1C6C5]

Radius 5.11 5.82 4.22 5.71

Table 6: Updated triplet data after deleting C4

C1 C2 C3 C4 C5 C6 C7

Triplet [C5C1C6] [C6C5C1] [C1C6C5]

Radius 5.71 5.71 5.71

Table 7: Updated triplet data with RMED

C1 C2 C3 C4 C5 C6 C7

Triplet [C5C1C5] [C1C5C1]

Radius 5.635 5.635

1 to 7, we use the curve labels at the top row, for clarity). The

algorithm indicates that at each update, only two triplet discs

have to be computed additionally for the corresponding updated

triplets (as most of the triplets are retained in the subsequent

updates).

Algorithm 2 U pdateT DPositive(Circb, T D)

1: P j= [Ci C j Ck], triplet corresponding to Circb

2: Replace triplets Pi= [Cn Ci C j] and Pk= [C j Ck Cm] by Pl

= [Cn Ci Ck] and Pm = [Ci Ck Cm] respectively.

3: T1 = [P j Pi Pl] and T2 = [P j Pk Pm]

4: Delete P j from TD

5: Return T1 and T2.

For all the triplets present in the Table 1, the correspond-

ing triplet disc is computed and added in Table 2. Updating

of Table 2 eliminates the curve C7 whose results are in Table

3. The process of updating now starts with Table 3, with start-

ing triplet [C4C3C2], since it has the largest triplet disc radius,

which is also an enclosing disc (shown in Figure 6(b)) and re-

peated. At each stage, the maximum radius triplet (shown in

red) and triplets which are to be modified are identified (shown

in blue). Tables 3 - 5 show this process, which started with Ta-

ble 2. The enclosing discs in Figures 6 and 7 for each of the

starting triplet at each updating stage validate the Propositions

(5.1) and (5.2).

5.4. Maintaining data Structure

It will be very useful if the deletion of a triplet and the subse-

quent modification are appropriately stored so that the sequence

in which the operation carried out can be identified. A directed

Figure 8: DAG structure corresponding to the set of curves in Figure 4 (only

curve numbers are used.)

Algorithm 3 DAGList(Ta, Tb, Tc)

1: Form a DAG TR with Ta and Tb as child node and Tc as

parent node

2: if Ta or Tb is already present in the DAG List then

3: Merge the TR with the nodes in DAG-List

4: else

5: Maintain the DAG TR as a separate entity in DAG List

6: end if

acyclic graph (DAG) structure has been employed to store the

modifications. Each time a triplet is formed by merging of

two other triplets, the new triplet from two existing triples are

formed, which indicates a direction for this formation is possi-

ble and hence a DAG seems to be appropriate. Also, borrowing

the notion from the ‘trees’, the new triplet is treated as ‘par-

ent’ and the triplets that are used to form the parent are consid-

ered as children. Figures 8(a), 8(b), and 8(c) show the DAG for

the Tables 2, 3, and 4 respectively and Figure 8(d) shows the

DAG structure obtained after Table 5. Algorithm 3 describes

the pseudo-code for storing the deleted triplet in the form of a

DAG structure.

C1

C2 C3

C4

C7

C6C5

Figure 9: MED from a pair of curves in the set. RMED = 5.635

5.5. Update termination

In general, process of updating the triplet stops when there

is no further triplet available for the computation (or the triplet

data contains only three triplets (Table 6)). However, the lower

6

Page 7: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Table 8: R-List

Triplet [C1C7C6] [C4C3C2] [C4C2C1] [C5C4C1] [C5C1C6]/[C1C6C5]/[C6C5C1]

R-List 12.29 11.64 6.38 5.82 5.71

Table 9: RMED added to the R-List

Triplet [C1C7C6] [C4C3C2] [C4C2C1] [C5C4C1] [C1C6C5] [C5C1C5] / [C1C5C1]

R-List 12.29 11.64 6.38 5.82 5.71 5.635

limit for the α value is the radius of the minimum enclosing

disc (RMED). RMED may come from the last triplet or from

any pair of the triplet. Figure 9 shows the MED for the set,

which comes from a pair of curves [C1 C5]. Table 7 shows with

RMED details.

Each of the starting triplet will have an associated radius

value. R-List is essentially a list of all radius values of the start-

ing triplet at each stage of the updating of the triplets. Table 8

shows the radius list for a set of curves shown in Figure 4. At

any stage, from the R-List and the corresponding DAG struc-

ture information, all the other triplets that were deleted to form

the current triplet can be found out. As the maximum radius

triplets are deleted, they are added to the R-List along with the

corresponding radius values (as shown in Table 8). The radius

of MED is identified and appended to the R-List (Table 9).

The R-List obtained, that stores the threshold radius value of

each curve, is always descending in order. This is because, at

each stage, we consider the triplet corresponding to the largest

disc enclosing it. The triplets formed as a result of updating are

no longer sequential in the initial convex hull (still sequential

after the curve belonging to the starting triplet is removed at

each stage of updating). So their radius cannot be larger than

previous iteration. As we move from left to right along the R-

List, the corresponding triplet either moves up the level or stays

in the same level in the DAG structure. Algorithm 4 explains

the process of generating the R-List and DAG structure.

5.6. α-neighbours and α-hull

(a) α= 3 (b) α= 1.916

(c) α < 1.916

Figure 10: Radius value at which the ‘central’ curve plays no further part in

computation

To compute the α-neighbours, an α value is given as input.

The user given α will typically lie between two values in the

R-List, one greater than α and the other one lesser. In the case

Algorithm 4 GenerateRadiusandDAGLists(S )

1: TD=nil

2: CH= ConvexHull(S).

3: TD=TripletData(CH).

4: Step = 1;

5: while Size of the data TD ≥ 3 do

6: if Step == 1 then

7: for Each triplet in TD do

8: find radius of enclosing discs.

9: end for

10: else

11: find the radii of enclosing discs of the two updated

triplets respectively in TD.

12: end if

13: Circmax =Maximum of the radii of triplet discs in TD.

14: Add radius of Circmax value and corresponding triplet

Tmax to R-List.

15: {T1 T2} = UpdateTDPositive(CircMax,Tmax)

16: DAGList(T1)

17: DAGList(T2)

18: ++Step;

19: end while

20: if RMED != Radius of the last triplet then

21: Find the pair of curves from the triplet leading to RMED.

22: Append the radius to R-List

23: end if

Table 10: List of neighbours α-hull

Neighbour [C1C4] [C4C5] [C5C6] [C6C1]

of Figure 10(b) (Figures 10(a) and 10(c) show α-discs for other

α values), the threshold value of the central curve is α=1.916.

For an input α value lesser than 1.916, the central curve is omit-

ted and for greater value α, the triplet is split into pairs and α-

neighbours are computed. In addition to the triplet being split,

all the other triplets which share the pairs present in the triplet

are also split and used as α-neighbours if α is greater. In gen-

eral, for an input α value lesser than threshold value, the end

curves in the triplet are considered as pairs and for greater α

values, the self and the sibling triplets are split pair-wise and

considered. This information is available from the DAG struc-

ture.

Though the R-List provides details about the triplets that are

to be considered to generate the α-neighbours, it also provides

redundant information. In the case of Table 8, for an α value

7

Page 8: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

Algorithm 5 α − Neighbours(S , α)

1: α-list =NULL.

2: DAG-List =NULL.

3: PD=NULL

4: GenerateRadiusandDAGLists(S).

5: for Every triplet [Ci C j Ck] in R-List having radius greater

than α do

6: Consider the triplet in the increasing order of Radius

value and store curves (Ci,Ck) as α-neighbours in PD

7: Using DAG-List omit all the descendent triplets of [Ci

C j Ck] from R-List, if they happen to occur.

8: end for

9: for Every triplet [Ci C j Ck] in R-List having radius lesser

than α do

10: Consider the triplets in the decreasing order of Radius

value and store curves (Ci , C j) and ( C j,Ck) as α-

neighbours in PD

11: Store the sibling triplet of [Ci C j Ck] as α-neighbours in

a list.

12: Using DAG-List omit all the ancestor triplets of [Ci C j

Ck] from R-List, if they happen to occur.

13: end for

between 5.82 and 6.38 , the triplet [C5C4C1] is split pair-wise

(i.e [C5,C4] and [C4,C1] ). However, though the value of triplet

[C5C1C6] (5.71) is also lesser than α, it is not considered. This

is because the since [C5,C4] and [C4,C1] are already identified

as α-neighbours, [C5C1] can never be α-neighbours. Hence, in

general, all the ancestor nodes (triplets) of the [C5C4C1] from

the DAG structure are omitted from the R-List while computing

α-neighbours, if at all they occur. Similarly, descendent nodes

(triplets) of [C4C2C1] from the DAG structure are also omitted.

Thus, this imposes an additional condition while scanning

through the R-List and picking triplets. All the triplets corre-

sponding to greater radius than α in the R-List (Table 8) are

considered in an ascending order and the triplets corresponding

to lesser radius are considered in a descending order.

For the case that the α values lies between RMED from a

pair and the radius of the last triplet, the pair of curves that lead

to RMED will be the α-neighbours. Algorithm 5 indicates the

process of computing α-neighbours (where PD indicates pair

data that will consist of α-neighbours). Algorithm 6 describes

the algorithm for computing the α-discs.

Algorithm 6 α − Hull(S , α)

1: α – Neighbours(S,α)

2: for Every pair of α-neighbours Obtained in Algorithm 5

do

3: Obtain the α-discs using Equations (1) and Containment

check).

4: end for

6. Illustration of α-neighbour identification

When an user defined value of the α is given (say 6 mm), then

the triplet values in the R-List that are greater and lesser than

α are noted separately. In this case, the triplets having radius

value greater in the increasing order are [C4C2C1], [C4C3C2]

and [C1C7C6] (refer to Table 8). Similarly, the triplets hav-

ing radius value lesser in decreasing order are [C5C4C1] and

[C5C1C6] (refer to Table 8). In the former case, the triplet

[C4C2C1] is taken and the pair [C4C1] is added to the α-

neighbour list. Figure 8 shows the DAG-List that is generated

during the process of triplet updating. In case any of the de-

scendent nodes of the triplet [C4C2C1] lies in the R-List, it is

omitted (in this case [C4C3C2]). Triplet [C1C7C6] is then con-

sidered and the pair [C1C6] is added to α-neighbour List.

For the triplets in R-List having radius value lesser, the

triplets along with its siblings are considered. In this case,

the triplet [C5C4C1] is split into [C5C4] [C4C1] and its sibling

[C6C5C4] is split [C6C5] [C5C4] and added to α-neighbour List.

The ancestor nodes of [C5C4C1] i.e [C6C5C1] is not used from

R-List. Summing up the entire process, the α-neighbours are

given in Table 10.

7. Results and Discussion

Figures 11 to 13 show a few results from the implementation

of the positive α-hull algorithm (Algorithm 6). Implementation

of the algorithm has been carried out using IRIT [12], a solid

modeling kernel. The constraint equations were solved using

the geometric constraint solver [13] in IRIT. In consistent with

the usual display for a point-set (such as in in MATLAB), only

the full untrimmed α-discs are shown in the figure. For α>

largest value in the R-List, all the curves in the convex hull play

a role in the α-hull. This is illustrated in Figure 11(d) for α =

12.5 which is greater than 12.29 of the maximum value in the

R-List (Table 8). The algorithm also performs well for non-

convex as well as intersecting curves (Figures 11(g) and 11(h)).

In Figure 11(h), as the α is large, all curves in the convex hull

play a role in the computation of α-hull. However, due to space

constraint, only portions of the α-discs are shown for the Figure

11(h).

As an α-disc can touch the same curve at many different

points, the curves are split at local minimum curvature points

and inflection points. The split curve segments are then used as

input to the algorithm. Figure 12 shows an example, where all

the curves that are convex are split at local minimum positive

curvature points (Figure 12(a)) and the α-discs for α = 8 (Fig-

ure 12(b)). It may be noted that, in the Section 5, the splitting of

curves have not been shown explicitly. Figure 13 shows an ex-

ample, where all the curves are split at local minimum positive

curvature points as well as at inflection points (Figure 13(a)).

α-discs for α = 12 (Figure 13(b)) and α = 15 (Figure 13(c)) are

also shown. Figures 12 and 13 indicate that the algorithm can

be used for curves of any typical shape. All the curves used are

minimum of order four and up to order six.

The algorithm has been demonstrated for higher order

curves, which may have to be used for creating complex CAGD

8

Page 9: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

(a) α= 6 (b) α= 5.75 (c) α=8 (d) α=12.5

(e) α=8 (f) α=10 (g) α= 8. (h) α= 50. Only parts of α-discs are

shown due to space constraint.

Figure 11: α-discs for a set of curves. Value for α has been indicated. Last two inputs have non-convex and intersecting curves.

(a) Convex hull of the input set. (b) α= 8.

Figure 12: α-discs for a set of curves that are split (shown in different colors)

at local minimum positive curvature points.

objects. As has been mentioned, to the best of the knowledge of

the authors, no known algorithm exist for computing the posi-

tive α-hull for a set of curves represented exactly, i.e. without

discretizing into point-sets or polylines.

7.1. Computational efforts

The total number of elements in the R-List is n-2 (if the ra-

dius of the last triplet equals RMED) or n-1, where n is the

number of curves in the convex hull. The number of triplets

computation at the start is n-1 and it keeps reducing at each

stage. Also, at each iteration of the algorithm, only two triplets

are updated and one triplet is deleted. Thus the number of com-

putations will be closer to 3n (and much less than n2). DAG

can be easily created and maintained. Moreover, the computa-

tions in this paper use tangent, equidistance conditions employ-

ing dot product, which are computationally more amenable (it

can be noted that the computation of the convex hull also uses

similar constraints).

7.2. Time Complexity of the algorithm

For a set of n curves lying in the convex hull, there are n

triplets generated. For each triplet, the enclosing disc is com-

puted. Finding the enclosing disc is a O(1) process and doing it

for n triplets take a total time of O(n). At each stage two triplets

are updated and one triplet deleted. This follows iteratively till

only two /three triplets are present. This step takes a total time

of O(2(n-2)) or O(2(n-1)). Forming the DAG structure is a lin-

ear time operation (O(n)) since the procedure is followed only

as long as there are triplets in the TD (n triplets). Hence the to-

tal time required for generating the R-List and DAG structure is

O(n). Given a value of α, traversing through the R-List and the

DAG structure to compute the α-neighbours is a O(n) operation.

This is because the length of the R-List and the height of the

DAG structure cannot be more than n. Summing up the entire

procedure, the time required to compute the α-neighbours from

the convex hull is O(n) operation. Nevertheless, to compute the

convex hull, number of bi-tangents at the worst is O(n2), taking

into account nC2 combinations of the input curves, and hence

the complexity of the algorithm then becomes O(n2).

7.3. Running time

Table 11 shows the time for computing the α-discs that also

include the computation of the convex hull. The computations

were carried out in an Intel i5 2.5GHz 6 GB ram 64 bit Win-

dows operating system using IRIT solid modelling kernel [12]

with Visual Studio 2010. It can be seen that the algorithm runs

in a reasonable amount of time to compute the α-discs. Pre-

dominant computations are convex hull and triplet discs. It is to

9

Page 10: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

(a) Convex hull of the input set. (b) α= 12. (c) α= 15.

Figure 13: α-discs for a set of curves that are split at local minimum positive curvature points and inflection points (shown in different colors).

Table 11: Running time (in seconds) for a few test examples.

Figure no. of split curves Convex hull timing (s) no. of curves in convex hull Other computations Total time (s)

Figure 12 6 0.31 4 5.35 5.6

Figure 13 27 2 9 8.6 10.6

be emphasised, that in the case of curves as input, the running

time depends on solving the constraint equations such as Equa-

tions (1) and (2) efficiently. Another example is the splitting of

curves at maximum curvature, which also requires solving of

equations. In this paper, the geometric constraint solver [13] in

IRIT has been employed for constraint solving.

7.4. Correctness of the algorithm

R-List gives the threshold value of each of the curve lying

in the convex hull. Though the triplet data actually denotes the

central curve, it gives information about the curves with which

the disc should be generated. The curves in the convex hull are

used for formation of initial triplet data, and the procedure is

validated through Propositions (5.1) and (5.2). At each stage,

the triplets are updated as explained in Section 5.3.

The elements of the R-List are obtained by the deletion of the

triplet from the TD at each iteration. These triplets also feature

in the DAG structure along with the other updated triplets. The

triplets in R-List extends as a path in the DAG. They may be

present as single path or multiple paths. Each of the element

in the paths have a radius value associated with it. The edges

connecting two such triplets can be assumed to contain all the

intermediate radius values. For a given value of α, only the

closest threshold value triplet carries the information about the

α-neighbours. This is because they are the most recently up-

dated/ to be updated triplets with respect to the current α value.

In other words, the edges in which α lies are picked and the

nodes they connect are processed. This means that, in the paths

present in the DAG, all the other nodes that are not directly

connected by the edges in which α lies are omitted i.e. the de-

scendants of lower radius value triplets and ancestors of higher

radius value triplets are omitted. This implies that, for a given

input value, the correct α-neighbours are identified.

7.5. Robustness

Major computations involved in the algorithm are in solv-

ing the constraint equations (the other being manipulating the

data structure). We have employed a subdivision solver [13] to

solve the constraint equations. It has been shown that termina-

tion (bracketing the roots) is efficiently done for d constraints

with d unknowns [14], which is the case with the constraints

in this work as well. The algorithm, in general, works well for

fourth order curves, though it has also been tested even with

sixth order curves.

7.6. Comparison with approximation approaches

One approach to find the α-hull of curves is to generate set

of points/polylines on the curves. However, in general, approxi-

mation approaches have been shown to result in inaccuracies for

point sets and for polylines, the running time can also become

slower. This has been shown for algorithms such as Delaunay

graph [15] for ellipses, which when approximated using points,

generate inaccurate graph that require further processing. For

polyline approximation, apart from the fact that it generates in-

accuracies, the time taken to generate the graph also get larger

than using curves as such [15]. In another work [16], the ap-

proximation of curves using point-sets have shown to generate

very approximate results. The critical issue of what should be

the sampling density for a desired accuracy does not seem to

have been addressed clearly so far. As our paper is similar to

the one discussed in [15]/[16], similar reasoning hold good for

this paper as well.

10

Page 11: Algorithm for computing positive α-hull for a set of ...raman/agcl/PosAhull.pdf · Algorithm for computing positive α-hull for a set of planar closed curves Vishwanath A. Venkataraman,Ramanathan

7.7. Application of the algorithm to compute MED of a set of

curves

For a set of freeform parametric curves, only [6] seems to

have provided an algorithm to compute MED for the set. How-

ever, to compute the positive α-hull, one of the limiting radii

is the RMED. In this paper, the RMED was computed from

the curves obtained from termination of the triplet building (see

Section 5.5). This implies that the triplet termination actually

can be used to identify curves (either two or three) that will form

part of MED itself. Hence, neglecting Sections 5.4 and 5.6 (α-

neighbours and α-hull), Algorithm 4, can be modified to com-

pute curves in the minimum enclosing disc for a set of curves

(as opposed to an incremental LP-type approach presented in

[6]). The algorithm in [6], when applied for n planar closed

curves, will have a worst-case complexity of O(n3) (though the

expected time has been shown to be linear, please see Section 8

in [6]). Algorithm in this paper will yield a much lesser com-

plexity for the computation of MED of closed curves. Also, in

[6] (Section 6, The algorithm), the containment check (whether

a curve is inside a disc or not) has been applied at all steps

using a computational procedure of checking the radius with

the maximal distance to the curve. Instead, the proposed sim-

ple check for containment (vector direction check) in this paper

can be employed along with the fact that this computation can

be largely reduced (employng Propositions (5.1) and (5.2)), if

the updating triplet and termination procedure from this paper

were to be employed. Hence, the number of computations for

MED can also be reduced drastically.

8. Conclusion

In this paper, an algorithm for computing positive α-hull for

a set of closed curves has been presented. The algorithm does

not use farthest Voronoi diagram, instead use enclosing discs

and constraint equations to determine the α-neighbours. Imple-

mentation results indicate that the algorithm can handle con-

vex, non-convex and intersecting curves. This was made pos-

sible because of the fact that only the convex portions from

a curve can touch the triplet/enclosing disc (since the convex

portion and the disc will have their curvatures pointing in the

same direction). The input curves are subdivided at local min-

imum positive curvature points as well as inflection points (for

non-convex curves), making the algorithm suitable for general

CAGD objects. The algorithm can be extended to compute

MED for a set of curves.

References

[1] H. Edelsbrunner, D. Kirkpatrick, R. Seidel, On the shape of a set of points

in the plane, Information Theory, IEEE Transactions on 29 (4) (1983) 551

– 559. doi:10.1109/TIT.1983.1056714.

[2] J. O’Rourke, Computational Geometry in C, Cambridge University Press,

New York, NY, USA, 1998.

[3] H. Edelsbrunner, E. P. Mucke, Three-dimensional alpha shapes, ACM

Trans. Graph. 13 (1) (1994) 43–72.

[4] M. Held, On the Computational Geometry of Pocket Machining, Vol. 500

of Lecture Notes in Computer Science, Springer, 1991.

[5] M. Ramanathan, B. Gurumoorthy, Constructing medial axis transform of

planar domains with curved boundaries, Computer-Aided Design 35 (7)

(2003) 619–632.

[6] R. Muthuganapathy, G. Elber, G. Barequet, M.-S. Kim, Com-

puting the minimum enclosing sphere of free-form hypersurfaces

in arbitrary dimensions, Comput. Aided Des. 43 (2011) 247–257.

doi:http://dx.doi.org/10.1016/j.cad.2010.12.007.

[7] G. Elber, M.-S. Kim, H.-S. Heo, The convex hull of ra-

tional plane curves, Graph. Models 63 (3) (2001) 151–162.

doi:http://dx.doi.org/10.1006/gmod.2001.0546.

[8] M. Pocchiola, G. Vegter, Computing the visibility graph via pseudo-

triangulations, in: Proceedings of the eleventh annual symposium on

Computational geometry, SCG ’95, ACM, New York, NY, USA, 1995,

pp. 248–257. doi:http://doi.acm.org/10.1145/220279.220306.

URL http://doi.acm.org/10.1145/220279.220306

[9] S. B. Ram, M. Ramanathan, The shortest path in a simply-connected do-

main having a curved boundary, Computer-Aided Design 43 (8) (2011)

923–933.

[10] I. Hanniel, R. Muthuganapathy, G. Elber, M.-S. Kim, Precise Voronoi

cell extraction of free-form rational planar closed curves, in: SPM

’05: Proceedings of the 2005 ACM symposium on Solid and

physical modeling, ACM, New York, NY, USA, 2005, pp. 51–59.

doi:http://doi.acm.org/10.1145/1060244.1060251.

[11] M. Held, S. Huber, Topology-oriented incremental computation of

voronoi diagrams of circular arcs and straight-line segments, Computer-

Aided Design 41 (5) (2009) 327 – 338, voronoi Diagrams and their

Applications. doi:http://dx.doi.org/10.1016/j.cad.2008.08.004.

URL http://www.sciencedirect.com/science/article/pii/

S0010448508001644

[12] G. Elber, IRIT 10.0 User’s Manual, The Technion—Israel Institute of

Technology, Haifa, Israel (2009).

[13] G. Elber, M.-S. Kim, Geometric constraint solver using multivariate ra-

tional spline functions, in: SMA ’01: Proceedings of the sixth ACM sym-

posium on Solid modeling and applications, ACM, New York, NY, USA,

2001, pp. 1–10. doi:http://doi.acm.org/10.1145/376957.376958.

[14] I. Hanniel, G. Elber, Subdivision termination criteria in subdivision mul-

tivariate solvers using dual hyperplanes representations, Comput. Aided

Des. 39 (5) (2007) 369–378. doi:10.1016/j.cad.2007.02.004.

URL http://dx.doi.org/10.1016/j.cad.2007.02.004

[15] I. Z. Emiris, E. P. Tsigaridas, G. M. Tzoumas, Exact delaunay graph of

smooth convex pseudo-circles: general predicates, and implementation

for ellipses, in: 2009 SIAM/ACM Joint Conference on Geometric and

Physical Modeling, SPM ’09, ACM, New York, NY, USA, 2009, pp. 211–

222.

[16] A. Vishwanath, R. A. Srivatsan, M. Ramanathan, Minimum area

enclosure and alpha hull of a set of freeform planar closed

curves, Computer-Aided Design 45 (3) (2013) 751 – 763.

doi:http://dx.doi.org/10.1016/j.cad.2012.12.001.

URL http://www.sciencedirect.com/science/article/pii/

S0010448512002771

11