A Delaunay Re nement Algorithm for

Quality 2-Dimensional



Jim Rupp ert

NASA Ames Research Center

Abstract

We present a simple new algorithm for triangulating p olygons and

planar straightline graphs. It provides \shap e" and \size" guarantees:

 All triangles have a b ounded asp ect ratio.

 The numb er of triangles is within a constant factor of optimal.

Such \quality" triangulations are desirable as meshes for the nite

element metho d, in which the running time generally increases with

the numb er of triangles, and where the convergence and stabilitymay

be hurt byvery skinny triangles. The technique we use|successive

re nement of a Delaunay |extends a mesh generation

technique of Chew by allowing triangles of varying sizes. Compared

with previous quadtree-based algorithms for quality mesh generation,

the Delaunay re nement approachismuch simpler and generally pro-

duces meshes with fewer triangles. We also discuss an implementation

of the algorithm and evaluate its p erformance on a variety of inputs.



NASA Ames Research Center, M/S T045-1, Mo ett Field, CA 94035-1000. The

author is an employee of the Computer Sciences Corp oration. Work funded by NASA

contract NAS 2-12961. This pap er will app ear in Journal of Algorithms, 1994. Muchof

this work was completed while the author was a student in the Division

at the University of California at Berkeley, supp orted by funds from NSF PYI Grant

CCR-90-58840. A p ortion of this work was done while the author was at Hewlett-Packard

Lab oratories, Palo Alto, CA. E-mail: rupp [email protected]. 1

1 Intro duction

Many applications in , graphics, solid mo deling, nu-

merical simulation and other areas require complicated geometric ob jects

to b e decomp osed into simpler pieces for further pro cessing. For instance,

in the nite element metho d, a planar domain is divided into a mesh of

elements, typically triangles or quadrilaterals. Di erential equations repre-

senting some physical prop erty such as heat distribution or air ow are then

approximated using functions that are piecewise p olynomial within each ele-

ment. The running times of these algorithms generally dep end on the size of

the decomp osition the numb er of elements, hence we seek decomp ositions

of small size. Furthermore, in many applications, the numerical stability and

convergence are a ected by the shapes of the elements; excessively \long and

skinny" elements can lead to undesirable b ehavior.

In this pap er we fo cus on the decomp osition of 2-dimensional ob jects

such as p olygons into triangles. We will refer to this problem b oth as mesh

generation and triangulation; it is also called unstructured grid generation.

A triangulation must b e a simplicial complex, that is, the intersection of

anytwo triangles is either a common edge, a common vertex, or the empty

set. Quality mesh generation describ es techniques that o er a guarantee on

some measure of shap e, such as all triangles non-obtuse, or all with b ounded

asp ect ratio. The aspect ratio of a triangle is the length of the longest edge

divided by the length of the shortest altitude. A fairly general measure of

triangle shap e is the minimum angle , since this gives a b ound of  2 on

1 2

maximum angle and guarantees an asp ect ratio b etween j j and j j.We

sin sin

allow triangulations to contain Steiner points|vertices of the mesh that are

not vertices of the input|b ecause in general they are necessary for achieving

shap e b ounds see Figure 1, for example. A mesh satisfying a certain shap e

b ound is said to b e size-optimal if the numb er of triangles is within a constant

factor of the minimum numb er p ossible in any triangulation of the given input

that meets the same shap e b ound.

The rst algorithm to give a shap e guarantee was due to Baker, Grosse

and Ra erty [1]. They gave a technique for pro ducing a non-obtuse trian-



gulation of p olygons, in which all angles are at most 90 . In addition, the



smallest angle is at least 13 . Of course, this is only p ossible if all angles in



the input are at least 13 . Together, these b ounds guarantee an asp ect ratio

of at most 4:6. The algorithm places a uniform square grid over the p olygon, 2 (a) Typical input PSLG and bounding box. (b) Typical triangulation without added Steiner points. Some small angles are unavoidable.

(c) Uniform mesh with minimum (d) Output of

angle 22.5 degrees. algorithm with minimum angle 20 degrees.

Figure 1: Sample input planar straightline graph PSLG, and several triangula-

tions of it. 3

with grid spacing determined by the smallest feature present in the p olygon.

Roughly sp eaking, the smal lest feature is determined either by the pair of

closest vertices, or by the closest vertex-edge pair, where the edge do es not

contain the vertex. Since the smallest feature determines the mesh density

throughout the p olygon, the numb er of triangles can b e very large.

Bern, Eppstein and Gilb ert gave the rst mesh generation algorithm with

b oth shap e and size guarantees [3]. They showhow to triangulate p olygons

so that every triangle has asp ect ratio at most 5. In addition, their analysis

shows that the mesh is size-optimal. One of the key ideas in the algorithm

is to replace the uniform grid of [1] with a quadtree, which is a recursive

sub division into squares of varying sizes. This yields large triangles in ar-

eas of large features. By keeping the quadtree balanced, asp ect ratios are

b ounded in the output. Melissaratos and Souvaine give some extensions to

the quadtree algorithm [12]. Mitchell and Vavasis show an extension of the

quadtree technique to 3D [14 ]. They give an algorithm that uses octrees to

pro duce size-optimal, b ounded asp ect ratio triangulations of p olyhedra.

All the ab ove techniques use grids or quadtrees. A quite di erent tech-

nique for quality mesh generation is Delaunay re nement, so-called b ecause

a is maintained, and some criterion is used to succes-

sively pick new p oints to add to it. Chew [5] presented a Delaunay re nement

algorithm that triangulates a given p olygon into a mesh in which all angles

 

are b etween 30 and 120 . The algorithm pro duces uniform meshes, meaning

that all triangles are roughly the same size. The output mesh is size-optimal

to within a constant factor amongst all uniform meshes. However, there are

inputs for which a uniform mesh has many more triangles than are necessary,

see Figure 1c, for instance.

In this pap er, we extend Chew's work by giving an algorithm to triangu-

late planar straightline graphs PSLGs such that all triangles in the output

have angles b etween and  2 . Here is a parameter that can b e cho-

 

sen b etween 0 and 20 . The triangles will vary in size, and the mesh will

b e size optimal to within a constant factor that dep ends on . PSLGs in-

clude p olygons, p olygons with holes, and complexes ob jects made of multiple

p olygons; dangling edges and isolated vertices are also allowed, as shown in

Figure 1a.

Theoretically sp eaking, our algorithm essentially matches the PSLG al-

gorithms of [12] and [3]mo di ed as mentioned in [2], but it is distinguished

from them in a number of ways: 1 The Delaunay re nement approachis 4

fundamentally di erent from the quadtree techniques. 2 It is much simpler.

With fewer sp ecial case constructions, it is easier to implement. 3 It gener-

ally pro duces fewer triangles in practice. 4 It is \parameterized": the user

can ask for the \b est" mesh with a given numb er of triangles. In this way, the

algorithm takes advantage of the inherent mesh size/shap e tradeo . 5 The

output mesh has no favored orientation. In contrast, grid or quadtree based

meshes pro duce many mesh edges aligned with the co ordinate axes. Such

alignmentmay a ect subsequent computation. 6 Delaunay re nement can

b e mo di ed to generate a mesh unique to the input, indep endent of the ori-

entation of the input. This assumes careful handling of degeneracies, and

elimination of the b ounding b ox, as describ ed in Section 5.

A few words ab out the input to the algorithm: The input can b e any

planar straightline graph PSLG, with dangling edges and isolated p oints

allowed see Figure 1a. As shown in the gure, the algorithm will tri-

angulate a larger region, out to an enclosing b ox. To get a triangulation

of a particular region, say the interior of a p olygon, exterior triangles can

b e removed. To maintain the size optimality guarantee in this case, the

algorithm must b e mo di ed slightly, as discussed in Section 5.

Though the algorithm is based on the Delaunay triangulation, the con-

strained Delaunay triangulation [11 ],[4], mightbeaworthwhile alternative.

We discuss this brie y in Section 5, and Chew discusses its use in a related

mesh generation algorithm [6].

The remainder of this pap er is organized as follows. In the next section

we present the algorithm. Then we show that it halts and outputs a valid

triangulation satisfying the minimum angle b ound. We de ne the local fea-

ture size at each p oint in the input, and b ound the output size in terms

of it. Then we show that every triangle is within a constant factor of the

largest p ossible at that p oint, which proves size-optimality.To balance the

theoretical results, we then discuss some issues that arise in implementing

the algorithm, and describ e our own implementation. Through a varietyof

examples, weevaluate its p erformance in terms of mesh size and shap e.

Large p ortions of the work rep orted here have app eared elsewhere in

preliminary form [16], [17 ], [18]. 5

2 The Delaunay Re nement Algorithm

The basic idea of the algorithm is to maintain a triangulation, making lo cal

improvements in order to remove the skinny triangles. Each improvement

involves adding a new vertex to the triangulation and retriangulating. To pick

go o d lo cations for these new vertices, we use the following fact of elementary

geometry:

6

Fact 1 If triangle T = abc has bca = , and p is the circumcenter of T ,

6

then bpa =2 . See Figure 6.

This fact can b e proved by considering the angles of the triangles pab; pbc

and pca. The circumcenter of a triangle is the center of the unique circle

through the three vertices of the triangle. As describ ed b elow, we will gen-

erally b e adding vertices that are circumcenters, though when such lo cations

are unsuitable, we will instead place new vertices on the input segments.

The particular triangulation we maintain is a Delaunay triangulation,

which has b een extensively discussed in the literature see, e.g., [15 ] or [9].

We recall the de nition: given a nite set of p oints in the plane, three

p oints contribute a triangle to the Delaunay triangulation if the circumcircle

through those p oints contains no other p oint in its interior. This de ni-

tion pro duces a unique triangulation, assuming the appropriate handling of

degeneracies 4 or more co-circular p oints.

Edges of the input PSLG will b e referred to as segments to distinguish

them from the edges of the Delaunay triangulation that is maintained. Also,

a vertex isavertex of the input or of the growing Delaunay triangulation,

whereas a point is any p oint in the plane. During the course of the algorithm,

we will maintain a set V of vertices initialized to the vertices in the input

and a set S of segments initially those in the input. Vertices are added

to the Delaunay triangulation DT V  for two reasons: to improve triangle

shap e, and to insure that all input segments are presentin DT V  as the

union of one or more Delaunay edges.

The two basic op erations in the algorithm are to split a segment by adding

avertex at its midp oint, and to split a triangle with a vertex at its circum-

center. In each case, the new vertex is added to V ; when a segment is split,

it is replaced in S by its two subsegments.

For a segment s, the circle with s as a diameter is referred to as its

diametral circle, and wesaythatavertex encroaches upon segment s if it 6 diametral circle of s1

s1

a

s2

Figure 2: Input PSLG shown in solid lines, Delaunay triangulation of its vertices

shown dotted. This is not a valid triangulation of the PSLG b ecause s is not

1

present as a Delaunay edge. Vertex a \encroaches up on" b oth segments s and

1

s .

2

lies within the diametral circle of s. Figure 2 illustrates this: the vertex

a encroaches up on b oth segments s and s only s 's diametral circle is

1 2 1

shown. A segment that is encroached up on mayormay not b e presentin

the Delaunay triangulation; it is easy to show that any segment not present

in the Delaunay triangulation is encroached up on by some vertex.

To simplify the description and analysis of the algorithm, we assume for



now that all angles of the input PSLG are at least 90 . In Section 5, this

restriction will b e removed.

Any triangle with an angle b elow is called skinny. In essence, the

algorithm says to split skinny triangles, unless the triangle's circumcenter

would encroach up on some input segment, in which case split the segment

instead. Here is the algorithm in detail, including subroutines for the two

basic op erations:

subroutine SplitTritriangle t

Add circumcenterof t to V , updating DT V 

subroutine SplitSegsegment s

Add midpoint of s to V , updating DT V 

Remove s from S , add its two halves s and s to S

1 2 7

Algorithm DelaunayRe ne

Input: planar straightline graph X ;

desired minimum angle bound

Output: triangulation of X , with all angles  .

Initialize:

add a bounding square B to X :

compute extremes of X : xmin, ymin, xmax, ymax

let spanX = maxxmax-xmin, ymax-ymin

let B be the square of side 3  spanX , centered on X

add the four boundary segments of B to X

let segment list S = edges of X

let vertex list V = vertices of X

compute initial Delaunay triangulation DT V 

rep eat:

while any segment s is encroached upon:

SplitSegs

let t be any skinny triangle min angle < 

let p be t's circumcenter

if p encroaches upon any segments s ;:::;s then

1 k

for i =1 to k :

SplitSegs 

i

else

SplitTrit? adds p to V ?

endif

until no segments encroached upon, and no angles <

output current Delaunay triangulation DT V 

Figures 3 and 4 show the execution of the algorithm on a simple p olygonal

example. For clarity, no b ounding b ox is used. In each picture, the input

is shown in thick lines, the current Delaunay triangulation is overlayed in

thin lines. The observant reader might notice a slight enhancement in the

algorithm used in the example: if a segment s is encroached up on byavertex

on another segment, s do es not have to b e split as long as it app ears in the

triangulation, and no skinny triangles are present. For instance, the vertex 8 s q

p

(a) Input (bounding box (b) Delaunay triangulation of input vertices. not used in this example). Note that segment s is not a Delaunay edge, because it is crossed by edge pq.

s1

s2

s3

p s4

(c) Segment s "split" at midpoint, into s1 and s2. Shaded triangle has smallest angle, (d) If circumcenter p were added, it would

5.9 degrees. Cross indicates its circumcenter. encroach upon segments s3 and s4.

Figure 3: Execution of the algorithm on a simple example. For clarity, b ounding

box not used. 9 q

r

(e) 2 segments were split at q and r. Shaded triangle now has minimum angle, (f) New minimum angle 11.6 degrees. 9.8 degrees, and will be split.

(g) Result after allowing execution to continue until minimum angle is (h) Optionally, external triangles can

at least 25 degrees. be removed.



Figure 4: Continuation of example. In this case, minimum angle =25 . 10

added b etween b and c encroaches up on two segments that are never

split.



In the next section, we show that the algorithm halts for any <20 . In



practice, larger values can b e chosen, up to  30 . Up on termination, all

2

triangles will have asp ect ratios at most j j, since all angles smaller than

sin

will have b een removed. Furthermore, all input segments will b e presentin

the output as the union of one or more Delaunay edges, since any segments

missing from the Delaunay triangulation are encroached up on, and hence get

split until they are present. Note that the algorithm allows skinny triangles

to b e split in any order. We discuss go o d orderings and other implementation

issues in Section 6.

3 Output Size

In this section we give an upp er b ound on the numb er of triangles in the

output. The b ound dep ends up on the local feature size of the input. At

every p oint in the mesh, the vertex spacing will b e close to the lo cal feature

size. In the next section, we will show that the lo cal feature size is indeed

the desired spacing, since it yields meshes within a constant factor of the

optimal size.

De nition 1 Given a PSLG X , The lo cal feature size at a point p,

lfs p, or simply lfsp, is the radius of the smal lest disk centeredatp

X

that intersects 2 non-incident vertices or segments of X .

Figure 5 illustrates the de nition of lfs , the radius of the disk D b eing

i

lfsp . Note D in particular: a smaller disk would intersect 2 segments, but

i 3

they are incident to each other.

For a given input X , lfsp is de ned for all p oints p in the plane, and

the entire function, whichwe refer to as lfsX , is continuous. If lfspis

interpreted as an elevation at p, then lfs X  is a \not-to o-steep" surface

ab ove the plane. The following lemma shows that it has a Lipschitz condition

of 1, i.e. the slop e in any direction is at most 1.

Lemma 1 Given any PSLG X , and any two points p and q in the plane,

lfs q   lfs p + distp; q ;

where distp; q  is the Euclidean distancebetween p and q . 11 D1

p1

D3 p3 D2

p2

Figure 5: Lo cal feature size at several p oints. Radius of disk D is lfs p .

i i

Pro of: The disk D of radius r = lfs p centered at p must intersect 2

0

non-incident p ortions of X ,by de nition of lfs . The disk D of radius

0

r = r + distp; q  centered at q contains D and hence intersects the same

0

p ortions of X .Solfs q   r . Putting this together, wehave

0

lfs q   r = r + distp; q = lfs p + distp; q :

The next lemma is the crux of the mesh size analysis. It shows that as

eachvertex is added, it is at the center of a \vertex-free" circle of radius at

least a constant fraction of the lo cal feature size. Thus the density of added

vertices is b ounded by the geometry of the input. We emphasize that adding

vertices do es not change the lfs  function, since it is determined by the

input. 12 b

T d

θ c 2θ a

p

r

Figure 6: Lemma 2 Case 1: p added as circumcenter of triangle T with small

angle < .

Lemma 2 For xedconstants C and C ,speci edbelow, the fol lowing

T S

statements hold:

 At initialization, for each input vertex p, the distance to its nearest

neighbor vertex is at least lfs p.

 When a point p is chosen as the circumcenter of a skinny triangle,

lfs p

the distance to the nearest vertex is at least .pmay be addedto

C

T

the triangulation, or may berejectedbecause it encroaches upon some

segment.

 When a vertex p is added as the midpoint of a split segment, the distance

lfs p

to its nearest neighbor vertex is at least .

C

S

Pro of:For any input vertex p, the distance to its nearest neighbor vertex

is at least lfs p, by de nition of the lfs  function. This is the base case

of the lemma. For vertices added later, we assume the lemma is true for all

previous vertices.

Case 1: We rst consider the case where p is the circumcenterofa

skinny triangle T . Since p is at the center of T 's Delaunay circle, its nearest

neighb ors are the vertices of T see Figure 6, at a distance of r . Assume 13

the vertices of T are a; b; c, with the smallest angle at c. Then the shortest

edge of T is from a to b. Call its length d. Without loss of generality, assume

a was added after b or that b oth were in the input. We will use the fact

that a and b are close together to b ound lfs a in each of several cases, which

in turn will b ound lfs p.

Case 1a: a wasavertex of the input. Then so was b,so lfs a  d.

Case 1b: a was added as a circumcenter of some triangle with cir-

0

cumradius r  d since b was outside that triangle's circumcircle.We

0

C  dC . can apply this lemmato a, yielding lfs a  r

T T

Case 1c: a was the midp oint of a segment that was split. Applying

this lemma to a now yields lfs a  dC , since b was outside a's vertex-

S

free circle.

So wehavelfs a  dC , assuming wehave the condition C  C  1 ,

S S T

6

whichwe will b e able to satisfy b elow. By Fact 1, apb =2 , so simple

geometry gives d =2rsin . Lemma 1 gives

lfs p  lfs a+ r

using our b ound for lfs awehave

lfs p  dC + r

S

=2rC sin + r

S

or, since < ,

lfs p

r

1+2C sin

S

So we get the desired b ound on r as long as we can satisfy the condition

C  1+2C sin .

T S

Case 2: Wenow consider the case where a vertex p is added to split a

segment s. Segment s is split b ecause some vertex or circumcenter a is inside

s's diametral circle, which has radius r . See Figure 7. Wehavetwo cases

for a:

a lies on some segment t, which cannot b e incidentto s, since Case 2a:



we are assuming that all angles in the input PSLG are at least 90 . Any 14 s b p c

r r’ a

C’

Figure 7: Lemma 2 Case 2: p added to split segment s which is encroached

up on by a.

segment incidentto s makes a larger angle, and hence would b e completely

outside the diametral circle. So there are two non-incident segments, one

containing p, the other containing a, within distance r of each other. Thus

lfs p  r .Above, wehave assumed the condition C  1, so this case is

S

done.

Case 2b: a was a circumcenter, prop osed for addition to the Delaunay

triangulation, but rejected b ecause it lay inside the diametral circle of s.

0 0

Supp ose it was the center of circle C with radius r . By applying this lemma

lfs a

0

to a,we know that r  . Also, b and c, the endp oints of S ,must b e

C

T

p

0 0

2r. Lemma 1 gives outside the Delaunay circle C ,so r 

lfs p  lfs a+ r

0

 r C + r

T

p

 2rC + r

T

or

lfs p

p

r 

1+ 2C

T

p

This yields the correct b ound on r , provided that C  1+ 2C .

S T

It can b e checked that the 3 b oxed conditions can b e simultaneously

1 1+2 sin



p p

satis ed for any

T

2 2 12 2 sin 15

p

2 1+



p

C = will work. For =10,we can cho ose C =2:8, and

S T

12 2 sin

C =5.

S

Since C  C , the lemma shows that when a vertex p is added, no other

T S

lfs p

vertex is within distance of p. The following theorem shows that vertices

C

S

added later cannot get much closer to p.

Theorem 1 Given a vertex p of the output mesh, its nearest neighbor vertex

lfs p

. q is at a distanceatleast

C +1

S

Pro of: Lemma 2 handles all but the case when q was added after p, in which

case we can apply the lemmato q and get

lfs q 

distp; q  

C

S

Lemma 1 gives a b ound for lfs q  in terms of lfs p and q 's distance from p,

so

lfs p distp; q 

distp; q  

C

S

lfs p

rearranging nishes the pro of: distp; q  

C +1

S

The next theorem uses an area argument to yield a b ound on the number

of vertices. Intuitively, a region of small lo cal feature size requires small

triangles, i.e. the vertex spacing should b e prop ortional to the lo cal feature

size. Thus the triangle density in the mesh is prop ortional to the inverse of

the square of the lo cal feature size. So we will \charge" the cost for each

vertex to the lo cal feature size around it.

Theorem 2 The number of vertices in the output mesh is at most

Z

1

C dx;

1

2

B

lfs x

where B is the region enclosed by the bounding square, and C is a constant

1

to bespeci ed. 16

Pro of: The previous theorem says that eachvertex p in the mesh is at the

lfs p

center of an op en disk of radius that contains no other vertex. Halving

C +1

S

the radii gives non-intersecting disks: let D b e the op en disk of radius

p

lfs p

r = centered on p. Since at least one-fourth of each D is contained

p p

2C +1

S

in the b ounding square B ,we get a lower b ound for the integral by summing

its value in the disks D for every p in the vertex set V :

p

Z Z

X

1 1 1

dx  dx

2 2

4

B lfs x D lfs x

p

p2V

By Lemma 1, the maximum lfs  attainable in D is lfs p+r , which gives

p p

R

a b ound for :

D

p

Z

1 1

dx  areaD 

p

2 2

D lfs x max flfs xg

p

x2D

p

1

 area D 

p

2

lfs p+r 

p

2

Using areaD =r , plugging in for r , and cancelling yields

p p p

Z

1 

dx 

2 2

D

lfs x

p 2C +3

S

Substituting back in for the entire integral,

Z

X

 1 1

dx 

2 2

4

B lfs x

2C +3

S

p2V

X



= 1

2

42C +3

S

p2V

Since the summation merely counts the number of vertices in the output

2

42C +3

S

mesh, the theorem holds if wecho ose the constant C  .

1

 17

4 Size-Optimality

Our goal in this section is to show that any triangulation pro duced by the

Delaunay re nement algorithm is size-optimal, meaning that the number

of triangles is within a constant factor of the minimum numb er p ossible.

We rst state and prove some prop erties that any b ounded asp ect ratio

triangulation must have, and then use these prop erties to show that even

the optimal triangulation is not to o much b etter than the output of the

Delaunay re nement algorithm. The following prop erties of b ounded asp ect

ratio triangulations are seemingly obvious, but a numb er of technical details

are required to state and prove them precisely:

 Small input features will b e surrounded by prop ortionally small trian-

gles.

 Nearby triangles have similar sizes.

 The size variation b etween distant triangles dep ends on their distance.

The basic idea would b e to show that in an optimal mesh, triangle sizes

must vary slowly, prop ortional to the lo cal feature size measure. Since this

was the case for Delaunay re nement meshes as well, we could show that

they are within a constant factor of optimal. The diculty in using this

approach directly is that triangle size is a step function: size is constant

within each triangle, but large discontinuities are p ossible b etween triangles,

esp ecially near mesh vertices of high degree. To cop e with this, wemust

de ne precisely what we mean by \triangle size", and show that though it

is a step function, it is reasonably well-b ehaved. With a series of lemmas,

we b ound the maximum triangle size at an arbitrary p oint, and show that

triangle sizes within a Delaunay re nement mesh are within a constant factor

of the largest p ossible.

The analysis in this section is similar to that given by Mitchell and Vava-

sis for their 3D algorithm [14]. A basic notion in their pro of is that of a

\characteristic length function", which de nes the \triangle size" at every

p oint within the triangulation:

De nition 2 If a point p is contained in a triangulation T of input PSLG

X , then we say the edge length at p,el p, or simply el p, is the length

T;X

of the longest edge among al l triangles of T containing p. 18 p4 p2

p

q

p3

p1

Figure 8: Triangles crossed by the segment from p to q are divided into \fans".

We shall now prove some prop erties ab out this function within b ounded

asp ect ratio triangulations. For the remainder of this section, we assume that

all triangles have a minimum angle b ound of , which guarantees all asp ect

2

ratios are at most A = . By considering the shared edge b etween two

sin

triangles, wehave the following:

Fact 2 If p and q lie in the interiors of distinct triangles T and T , which

p q

el q 

share an edge, then  A.

el p

Rep eated use of this fact gives the following lemma ab out p oints in arbi-

trary triangles:

Lemma 3 If p and q lie in the interiors of triangles T and T ,respectively,

p q

then

el q   C  el p+C dist p; q 

2 3

where C and C areconstants to bespeci ed.

2 3

Pro of: Consider the sequence of triangles crossed by the line segment from

p to q , as shown in Figure 8. Here we are assuming that the triangulation

lls a convex region, so that the segment stays within the triangulation.

Anyvertex on the segment is treated as though it were to the \right" of the

directed segment from p to q . Lab el anyvertices shared by more than two

consecutive triangles p ;p ;. The \zigzag" edges connecting successive p 's

1 2 i 19 p i+1

h e'

p

q x e

f f'

p

i

0 0

Figure 9: Since line segment pq crosses edges e and f , it must cross e or f .

divide the triangles into \fans" around each p , indicated by the b old arcs in

i

2

Figure 8. Since at most b c triangles t around a vertex, each fan contains



at most K = b c triangles, except the rst and last, whichmay contain

K +1. We consider two di erent cases, dep ending up on the number k of

triangles b etween p and q , including T and T .

p q

Case 1: k  K + 3: Using k applications of Fact 2, we see that the lemma

K +3

holds as long as C  A and C  0.

2 3

Case 2: k>K+3: Since zigzag edges are separated by at most K

triangles, there exists some zigzag edge p p that is anked bytwo triangles,

i i+1

neither of which contains p or q . Consider the closest such edge to q . In

Figure 8, this is the edge p p . Figure 9 shows edge p p and its two

3 4 i i+1

anking triangles. Wenow show that the length of the segment pq is at least

half of an altitude of one of these triangles. Let e and f b e the two outer

edges crossed by pq ,asshown. Let x b e the midp ointof p p , and construct

i i+1

0 0

e and f through x and parallel to e and f ,asshown. Since pq crosses e and

0 0 0

f ,itmust cross either e or f . If it crosses e , then it is longer than half the

h

altitude h from edge e to vertex p , i.e. distp; q   . By the de nition

i+1

2

0

of asp ect ratio, the longest edge of the triangle containing e has length at

0

most A  h. Thus for any p oint p within that triangle we can use K +1

K +1 0

applications of Fact 2 to show that el q   A el p . It then follows that 20 x x x

e T d

y y y

(a) (b) (c)

Figure 10: Triangle size along xy if x is a mesh vertex.

x x'=p1'

p1 T p2

p2' p3 p3'

y

Figure 11: Triangle size along xy if x is not a mesh vertex.

K +2 K +2 K+2

el q   A h  2A distp; q . The lemma holds for C =2A , since

3

0

el p > 0, C > 0. The case where f is crossed by pq is handled similarly,

2

K +3 K +2

within the same b ound. The choice of C  A , C  2A satis es all

2 3

the conditions.

Lemma 3 gives a b ound on how fast edge lengths can change in a b ounded

asp ect ratio triangulation. The following lemma shows that there must b e

small triangles near small input features.

Lemma 4 Let x and y bepoints not necessarily endpoints of non-incident

input segments. Let d be the distancebetween x and y . Then, in any triangu-

lation with aspect ratios boundedby A, thereisapoint p on the line segment

connecting x and y with el p  2d  A.

Pro of: See Figure 10a. 21 x

p r = lfs(q)

q

y

Figure 12: Points x and y on input segments determine edge length el p at

some p oint p along xy , and lo cal feature size lfs q .

Case 1: The easy case is when x or y isavertex of the triangulation.

Without loss of generality, supp ose x is a vertex. If there is a triangulation

edge at x along the line segment xy see Figure 10b, then that edge has

length at most d.For any p oint p in the interior of the edge, el p  d  A.

If the line segment xy is in the interior of some triangle T near x see Fig-

ure 10c, then the minimum altitude of T is no longer than T 's intersection

with xy , so for any p oint p on xy interior to T , el p  d  A.

Case 2: This case, where x is in the interior of an edge of the triangulation,

0

is illustrated in Figure 11. Let x b e the endp oint nearest x, and consider all

0

triangles incidentto x that intersect the line segment xy . Let p ;p ;::: be

1 2

the intersections of xy with the edges of these triangles, as shown. Finally,

0

on the edge containing p , lab el the endp oint closest to p as p . Let j b e the

i i

i

0 0

smallest index such that p 6= x . Suchaj exists, b ecause eventually xy will

j

0

, for instance the edge containing y .Byan reach an edge not incidentto x

argument similar to that used in Case 2 of the previous lemma, we see that

the minimum altitude of T , the triangle containing p and p is at most 2d.

j 1 j

Then for any p oint p in the interior of the line segment p p , el p  2d  A.

j 1 j

Next, we use the preceding lemmas to relate the edge length function

el   to our lo cal feature size measure lfs  . Recall that we are assuming T

is any triangulation in which all angles are at least . 22

Lemma 5 At any point q in the interior of a triangle of T ,elqC lfs q ,

4

where C isaconstant to bespeci ed.

4

Pro of: By de nition, lfs q  is the radius r , determined bytwo p oints x and y

on non-incident segments of the input see Figure 12. From Lemma 4, there

must b e some p oint p along xy with el p  2  distx; y   A. Since we always

have distx; y   2r , el p  4r  A. Using distp; q   r and Lemma 3,

el q   el p+C el p+C distp; q 

2 3

 C +1el p+C r

2 3

 C +14r A+C r

2 3

 [C +1 4A+C ]r

2 3

 [C +14A+C ]lfs q 

2 3

Cho osing C  C +14A+C concludes the pro of.

4 2 3

We can now state and prove the ma jor result of this section: that the

mesh output by the Delaunay re nement algorithm is size-optimal to within

a constant factor. First we recall the situation: the input is a planar straight-

 

line graph X with all angles at least 90 ,  20 is the minimum angle b ound

2

for the output, which guarantees all triangles have asp ect ratio at most .

sin

The algorithm triangulates the region inside B X , a larger b ounding b ox

of X , and the optimality is with resp ect to any triangulation of B X  with



minimum angle b ound . The 90 input restriction, and the requirement

that the mesh triangulates B X , will b e removed in the next section.



Theorem 3 Given  20 , and input X , suppose T is any triangulation of

X with minimum angle bound . Thereisaconstant C such that if T has

N triangles, then the Delaunay re nement triangulation T has N  C  N

D D

triangles. Letting T be the triangulation with fewest possible triangles shows

that T is within a factor C of optimal.

D

Pro of: Theorem 2 b ounds the number of vertices in the Delaunay re nement

triangulation T .Inany triangulation, the numb er of triangles is at most

D 23

twice the number of vertices true by Euler's relation, see [15], p. 19. Thus

T has

D

Z

1

N  2C dx

D 1

2

B lfs x

triangles. By Lemma 5 this is

Z

1

2

 C  C dx

1 4

2

B el x

where the edge-length function el   is with resp ect to T . Strictly sp eaking,

Lemma 5 do es not apply to edges of the triangulation, but since they have

measure 0, they do not contribute to the integral. We can instead sum the

integrals over each triangle T 2T:

Z

X

1

2

=C C dx

1 4

2

T el x

T2T

In each triangle T , el   is constant, just the length of the longest edge. The

p

2

3

area of T is at most el  , which o ccurs if T is equilateral. So for T we

4

have

p

p

Z

2

3

el x

1 3

4

dx  =

2 2

4

T el x el x

Substituting back in,

p

X

3

2

1 N  C  C

D 1 4

4

T 2T

P

Wehave 1=N, since the summation just counts the numb er of trian-

T2T

p

2

3

gles in T .Thus the theorem holds for C = C  C .

1 4

4

The constant factor C dep ends on the choice of , but not on X , i.e.

the Delaunay re nement algorithm is optimal on every input, not just in the

worst case. We discuss C more in Section 6.

5 Corner-Lopping and Riemann Sheets

Two issues must b e resolved so that the algorithm pro duces size-optimal

b ounded asp ect ratio triangulations for general 2-dimensional inputs. First, 24 r p

d

Figure 13: Do the two\arms" of the p olygon determine a small feature at p?

wemust deal with small input angles reasonably recall that we made the



unreasonable assumption that all angles were at least 90 !. The second issue

is subtler, and relates to our de nition of lo cal feature size in non-convex

p olygons: in Figure 13, do the two \arms" of the p olygon generate a small

feature at p? Our de nition says they do, and pro duces small triangles around

p accordingly. This could b e sub optimal if only an interior triangulation of

the p olygon is desired. Fortunately, previous researchers have dealt with

b oth of these concerns, and we can adapt their solutions to our algorithm.

These mo di cations may increase the size of the mesh, but by at most a

constant factor.

We handle small angles by \lopping o " the sharp corners during a pre-

pro cessing step. For the time b eing, we continue to assume that all input

angles are at least , the desired minimum output angle. Below, we will

mention the case of smaller input angles.

Any input vertex p with a small angle is \shielded" by committing in

advance to a sp eci c triangulation around p. Previous approaches surrounded

eachvertex with a circle [3], or with a cub e in 3D [14]. We will sketchhow

to do this with a circle here. First, for every input vertex p, the lo cal feature

size lfs p is computed. For an input PSLG of size n, this can easily b e

2

done in On  time by computing all vertex-vertex and vertex-edge pairwise



distances. Atanyvertex p with an angle smaller than 90 ,we will intersect 25 shield edge spoke edge

r

p

Figure 14: \Lopping o " sharp corners with a shielding circle input segments

in b old.

a circle with the input edges, as shown in Figure 14. The radius of the circle

lfs p

will b e , so that circles around di erentvertices do not intersect or get

3

to o close. Angles at p greater than 2 are divided so as to b e b etween and

2 ,intro ducing shield edges around the circle, and spoke edges from p to the

circle. These edges, and new vertices, are henceforth considered as part of a

0

mo di ed input PSLG X , and will app ear in the output mesh. This reduces

0

the lo cal feature size in X compared with X , but only by a constant factor

that dep ends on .

In this mo di ed input, all angles outside the shielding circles will b e at



least 90 . Within the shielding circles, our hop e is to use the triangles shown

in Figure 14 as the output triangles around p.Ifwe disallow the splitting

of such triangles, then no vertices will b e added within the shielding circle,

but still the shield edges may get split, as shown in Figure 15a. When the

algorithm terminates, each shield edge will b e split into at most a constant

numb er of pieces, since the lo cal feature size along the edge is prop ortional

to the edge length.

Wenowhavetwoways of dealing with split shield edges. Following [14 ],

we place edges b etween the split vertices and p,asshown in Figure 15b.

In fact, these will b e present as the Delaunay edges. Since each shield edge

is split a constantnumb er of times, the minimum angle in the output mesh 26 p Method 1 input or spoke edges (b) shield edge p vertices added by algorithm (a) p Method 2

(c)

Figure 15: Fixing shield edges that get split.

will b e within a constant factor of , while retaining the constant factor

optimality for the mesh size.

Next wesketch a more complicated construction that can avoid splitting

the smallest input angle at all. As shown in [3], a construction like that in

Figure 15c will work for p olygon inputs. The idea is that since each shield

edge is split at most a constantnumb er of times, we can use a constant

number of layers to \merge" the triangles together.

This construction do es not work directly for PSLG inputs, since the lay-

ers of triangles require vertices to b e added to a sp oke edge, and the tri-

angulations on either side of the sp okemay not agree along the sp oke. A



construction as shown in Figure 16 will work for  10 .From Section 3,

the value of C tells us that each shield edge will b e split into at most 8

S

pieces, so at most 3 layers of triangles will b e necessary. Roughly sp eak-

ing, we will \strengthen" our shielding circle by replacing it with 3 layers of

triangles, each of a xed width. The gure shows only the outer layer, of

width d, which dep ends on . The triangulation within eachlayer dep ends

on how the shield edge is split. The two most dicult cases are shown in

Figure 16. If a shield edge spanning an angle of is split into 8 pieces, then

we use \merging" triangles that are skinny in the radial direction, whereas

an unsplit shield edge spanning an angle close to 2 requires a triangle that

is skinny in the circumferential direction. Simple calculations show that d

can b e chosen to balance these two cases so that all angles will b e at least

. The other cases and inner layers are similar, and easier to handle. It is 27 p 2α shield edges

α

Construction for PSLGs.

Figure 16: d

not clear how to p erform this construction for values of much larger than



10 . The problem is that the value of C grows, and hence it cannot b e

S

guaranteed that the shield edges will b e split into a small numb er of pieces.

Another issue is the handling of input angles less than the desired minimum

. For p olygons with very small input angles, a construction like that of

Figure 15c can b e used to pro duce a triangulation in which all angles are

greater than , except for the smaller input angles whichobviously cannot

b e removed. For PSLGs, it app ears quite dicult to handle input angles

b elow in such a graceful fashion.

In practice, these intricate constructions do not seem to b e necessary in

order to handle small input angles, as discussed in Section 6.

The second issue is illustrated in Figure 13. We assumed the input was

a planar straightline graph, and pro duced a triangulation that extended out

to a larger surrounding b ox. If only the interior of a p olygon is to b e trian-

gulated, then wewould not consider the clearance b etween the two \arms"

of the p olygon in Figure 13 as a small feature. In particular, the lo cal fea-

ture size at p should b e r , rather than d, as our de nition states. Following

[14], we mo dify the de nition to use the geodesic distance to the 2 nearest

non-incident p ortions of the input. The geo desic distance is measured along

the shortest path that stays within the region to b e triangulated e.g. the

interior of the p olygon. The algorithm is mo di ed to use the constrained 28

Delaunay triangulation CDT [11],[4]. The CDT can b e computed with the

Riemann sheet technique of Seidel [20]. This corresp onds to Mitchell and

Vavasis' use of Riemann volumes for o ctree mesh generation [14 ]. Chew has

recently describ ed a related mesh generation algorithm that uses the CDT

[6].

Using the CDT, one can develop a mo di ed Delaunay re nement algo-

rithm to pro duce meshes that are unique for a given  and indep endentof

the orientation of the input. The CDT allows the algorithm to work with-

out a b ounding b ox; for uniqueness it is also necessary to sp ecify the order

in which skinny triangles and encroached edges are split, for instance one

could always split the triangle with the largest circumcircle, breaking ties ac-

cording to vertex indices. In the case of degeneracies 4 or more co-circular

p oints, the Delaunay triangulation is not uniquely de ned; this can also b e

disambiguated with vertex indices.

6 Implementation and Discussion

The pseudo co de algorithm given in Section 2, whichwe call the basic al-

gorithm, could b e implemented in manyways. In our case, there were two

main goals: to allowinteractive exp erimentation with the algorithm, and to

pro duce sample outputs for evaluating its p erformance. In this section, we

discuss some general implementation issues, and describ e our own implemen-

tation, as well as a variety of p ossible mo di cations and enhancements to the

basic algorithm. We will also evaluate the algorithm's practical p erformance

with resp ect to mesh size and shap e.

The basic algorithm was quite simple to implement, requiring only a small

amountofwork b eyond the computation of a Delaunay triangulation. The

corner-lopping and Riemann sheet mo di cations mentioned in the previous

section were not implemented. Though corner-lopping was required for the

theoretical analysis in the case of small input angles, it would require a large

implementation e ort. Instead, we used a simpler approach that works very

well in practice. The implementation runs reliably on many examples, and

pro duces meshes in which the numb er of triangles seems to b e quite reason-

able. In practice, the algorithm easily achieves a minimum angle b ound of



20 , and can b e run longer if desired, though it rarely improves the minimum



angle muchabove30 . Figure 17 shows an example of its output, given as 29

Figure 17: Triangulation pro duced by the Delaunay re nement algorithm fora



sample input, shown in b old. Minimum angle  20 . 30

Figure 18: Triangulation of the b oundary of Lake Sup erior. Minimum output



angle  15 .



input an outline of the letter \A" and a minimum angle b ound =20.

Many of the vertices along the outline were added by the algorithm.

An imp ortantchoice to b e made in any implementation is the Delaunay

triangulation algorithm to build up on. There are incremental algorithms

where p oints are added one at a time to a growing triangulation, e.g. [10 ],

and al l-at-once algorithms such as the sweepline algorithm of Fortune [9].

An incremental algorithm seems the logical choice, since our algorithm re-

nes the triangulation by adding p oints. Though an all-at-once algorithm

could b e used for the initial triangulation, and p erhaps for splitting segments,

since it is p ossible that many segments may simultaneously b e encroached 31

up on. In our case, eciency was not an issue, b ecause we merely needed to

interactively exp eriment with the algorithm on relatively small meshes. An

implementation of the sweepline algorithm was available, so wehave used it

throughout, even for incremental addition of a single p oint to the triangula-

tion. For meshes with several hundred vertices, a full recomputation of the

Delaunay triangulation takes less than a second, which is sucient for inter-

active use. However, the algorithm would b e excessively slow for practical

usage on large inputs, so we do not rep ort any timing measurements.

Wehave not analyzed the asymptotic running time of the Delaunay re-

nement algorithm in detail. The worst-case running time for incremental

2

Delaunay triangulation is O M , where M is the output size. In practice,

such algorithms usually run much faster [10]. Much of the time is typically

taken up lo cating the triangle containing the added p oint. For non-input

vertices, this is simpli ed in our algorithm by starting at the skinny triangle

or encroached up on segment b eing split.

Figure 18 shows another output of the algorithm, given as input an ap-

proximate outline of Lake Sup erior, including several islands. Since the

b oundary was represented by roughly equally spaced p oints, most of the

p oints added by the algorithm were interior p oints in the lake, or b etween

the lake and the b ounding b ox. We note that the input contains an angle



close to 15 , whichwas not a problem even though the corner-lopping step

was not done.

The basic algorithm of Section 2 says that any skinny triangle maybe

split, though it seems like a go o d idea to split the triangle with the globally

minimum angle. In this way, the algorithm is parameterizable, meaning

that it can b e halted just as so on as all angles are \large enough". This

mo di cation comes at a slight cost, however, since skinny triangles must b e

maintained in a priority queue to allow the globally minimum angle to b e

eciently determined. If wecho ose to split an arbitrary skinny triangle, then

only a list is needed.

The detection of \encroached up on" segments those containing a p oint

in their diametral circle can b e done eciently bychecking lo cal criteria

during each up date of the Delaunay triangulation. A segment is encroached

up on if either:

1. It is not present as a Delaunay edge e.g. s in Figure 2, or

1

2. It is present, but opp osite an obtuse angle in a Delaunay triangle e.g. 32

s in Figure 2.

2

Though the basic algorithm sp eci es a square b ounding b ox 3 times as

large as the input, any constantmultiple will work. For clarity in our ex-

amples, wehave used a smaller b ounding b ox. The b ounding b ox has b oth

a theoretical and a practical purp ose. Whereas a p olygon clearly has an

interior, a PSLG input mayhave dangling edges, and it is not always clear

exactly what region is to b e triangulated. The convex hull of the PSLG is a

logical candidate, but then an input vertex just inside the hull could gener-

ate a \small feature" that is not really present in the input. The b ounding

box gives an unambiguous region to b e triangulated, without reducing the

lo cal feature size by more than a constant factor. An axis-aligned b ounding

square also improves the algorithm's robustness, since splitting an edge of

the b ox gives a midp oint which is truly collinear with the endp oints. Oth-

erwise, if roundo were to o ccur, then the midp oint could fall inside the

edge, causing a very skinny Delaunay triangle to form b etween the midp oint

and the endp oints. The calculation of such a triangle's circumcenter is very

ill-conditioned.

Since the base algorithm of Section 2 is so simple, it is easy to exp eriment

with alternative criteria for splitting triangles. For instance, some applica-

tions, such as error adaptive solvers, have a maximum desired triangle size.

Figure 1c shows howtoachieve this as well as a minimum angle b ound:

wechange the criterion to split triangles that are skinny or large, where

large means having a circumradius larger than a xed b ound. One can also

exclude certain triangles from b eing split, for instance, in Section 5 triangles

were not split if their small angle was part of the input. In Section 2 we also

mentioned a situation in which an encroached up on segment need not b e split

if the encroaching vertex lies on some other input segment. Finally, the user

may wish to eliminate large angles, but allow small angles. As discussed in

[3], this can generally b e done with fewer triangles than in the no-small-angle

case. Unfortunately,we cannot take advantage of this fact by mo difying the

basic algorithm to split triangles with large angles, b ecause every triangle

with an angle ab ove  2 also has an angle b elow , and the b ehavior of

the mo di ed algorithm approximates that of the original.

Another variation to the basic algorithm is to split triangles at p oints

other than their circumcenters, and to split segments at p oints other than

their midp oints. For instance, in Figure 6 wesaw that the angle opp osite ab 33

doubles if it is moved to the circumcenter. The angle would increase further if

p were closer to ab, though p ossibly at the exp ense of other triangles. Wehave

not explored this approach, but p erhaps it could increase the global minimum

angle more rapidly, and reduce the overall numb er of triangles. Belowwe

discuss how splitting segments at non-midp oints can help in handling small

input angles. It would b e nice to extend the size-optimality pro of to cover

these di erent split p oints. One would need to show that the pro of holds for

split p oints \near" circumcenters and midp oints. Wehave not done this, but

it seems p ossible, p erhaps with weaker optimality constants and minimum

angle b ounds.

Mesh Size

Next we take several di erent approaches to evaluating the size of meshes

pro duced by the Delaunay re nement algorithm. We argue that the algo-

rithm p erforms signi cantly b etter than other algorithms with mesh shap e

guarantees, and somewhat worse than a human might do. We also argue

that the analysis of Section 4 gives a gross overestimate of the algorithm's

b ehavior in practice.

Up on close examination of Figures 17 and 18, one sees many places where

moving a vertex could improve triangle shap es, or where a vertex could b e

removed without decreasing the minimum angle. We might estimate these

triangulations to b e within a factor of 2{5 times the minimum p ossible size

for the given angle b ound. Thus the \true" size-optimality constant for the

Delaunay re nement algorithm lies somewhere b etween 2 and the value of



C of Section 4. Plugging a minimum angle b ound of =20 into the

25

inequalities given in Section 4, we get a b ound C  1:81  10 . Though

this is the rst explicitly stated optimality constant for a b ounded asp ect

ratio triangulation algorithm, the value is clearly meaningless as a practical

guarantee. Examination of the analysis shows much slack that mightbe

2K+6

tightened, for example a constantof A , with A  6, K  4, that we

K 2

susp ect can b e replaced by2 or A , but even a reduction of 10 or 15 orders

of magnitude would not yield a useful value for C . One would really likea

stronger pro of technique.

We can make a non-rigorous argument ab out output size using the con-

stant C of Section 4. It b ounds the density of p oints along input segments,

S

and its value indicates that at most 5 \layers" of triangles will app ear b e- 34 first time all angles exceed 30.00 20 degrees

20.00 Overall minimum angle in degrees 10.00

50 100 150 200

Total number of vertices

Figure 19: Progress of minimum angle during a typical run.

tween 2 nearby input vertices. In Figure 17, we see that short segments are

not broken up at all, and so there is usually only 1 layer. This contrasts with

the algorithm in [3], in which each input vertex must b e isolated within a 5-

by-5 grid of quadtree squares, yielding at least 2{3 layers of triangles b etween

anytwovertices. For instance, whereas the Delaunay re nement algorithm

would triangulate a square using 2 triangles, the quadtree algorithm would

need 18 triangles, or more, dep ending on the orientation of the square.

Additional evidence concerning the b ehavior of the Delaunay re nement

algorithm comes from Figure 19, whichcharts the overall minimum angle

during a lengthy run on a simple input with ab out 15 vertices. We see the



minimum rise to ab out 30 and then level o , except for frequentdownward

spikes when a small angle gets divided in two, then quickly improved. The

optimality pro of says that eventually, no spike will drop b elow the dotted line



here, for =20 , whichwould b e far to the right of the plotted p ortion of

the graph. The arrow p oints out when the algorithm would actually halt for

this case.

The reason for the non-monotone b ehavior of the minimum angle in Fig-

ure 19 is shown in Figure 20. Delaunay triangle T has the minimum angle,

1

and T has a slightly larger angle. The splitting of T causes the small angle

2 1

in T to b e cut, greatly reducing the global minimum.

2

Next we consider a class of inputs that can b e used to b enchmark a

quality mesh generation algorithm's p erformance at grading, or adapting to

very small input features, using as few well-shap ed triangles as p ossible. The 35 q p

T2

T1

Figure 20: This example shows that splitting a skinny triangle can decrease

the global minimum angle. T and T are two triangles in a larger Delaunay

1 2

triangulation. The cross indicates T 's circumcenter p, which happ ens to lie

1

within T 's circumcircle. If T is split at p, the dotted edge pq may cut the small

2 1

angle at q in half.

1 d

Figure 21: Input for \grading" b enchmark. 36

Figure 22: Mesh grading test case with minimum angle 20 degrees. Manual

construction on the left, Delaunay re nement output on the right.

input consists of two squares, a unit square centered within a larger square

of side d, where d can vary.From Theorem 3 of Section 4, we exp ect that

any size-optimal quality mesh generation algorithm will pro duce a mesh in

which the number of vertices is prop ortional to the logarithm of d. We

are interested in the constants of prop ortionality, and we will compare the

Delaunay re nement algorithm against an \optimal" or at least very go o d

mesh created manually.

The manual mesh construction is shown on the left in Figure 22, with

the unit square in the center. To each edge of the unit square we attach



an isosceles triangle with a single 20 angle opp osite the edge of the square,

creating a four-p ointed star. To this we add four more triangles to ll out



a square, rotated 45 from the original. This construction is rep eated out

to the desired size, though only certain values of d are achievable. For com-

parison, the output of the Delaunay re nement algorithm is shown on the



right for the same test case. Given a minimum angle b ound of 20 , meshes

pro duced by the Delaunay re nement algorithm have ab out 4 times as many

vertices as do es the manual construction, as shown by the graph in Figure 23.

The values for the Delaunay re nement algorithm were computed from four

exp erimental runs, and the p erformance of the manual case is derived from 37 100.00 Number of 80.00 Vertices Delaunay 60.00 Refinement

40.00

20.00 Optimal

0.00 1 10 100 1000

Bounding Box Size

Figure 23: Comparison of mesh sizes for the algorithms shown in Figure 22.



cos 35

 4:72 of sizes of successive squares in the construction, since the ratio



sin 10

each square adds four vertices.

The two metho ds maybeeven a bit closer in p erformance, since the com-

parison is p erformed on those values of d b est for the manual construction,

and b ecause the Delaunay re nement generally do es a bit b etter than the

 

minimum angle b ound it achieved b etween 23 and 27 for the four cases in

Figure 23. A further question is whether the manual construction is indeed

the optimal strategy for this test case. Asymptotically, it app ears that a

construction with three-way symmetry allows more rapid grading: start with



an equilateral triangle, add an isosceles triangle with a 20 angle opp osite

each edge, add three more triangles to ll out a larger equilateral triangle,

rep eat. If indeed the manual construction is close to optimal, then wehave

further evidence that there is much slack in the b ound for C , since that

b ound essentially dep ends on the p ossibilityofmuch more rapid grading

than seems p ossible even in a manual construction.

Small Input Angles

Next we take up the issue of small angles in the input. In Sections 2-4, we

 

assumed that all input angles were at least 90 and at most 270 . This was

necessary in order to prove the termination and size b ounds of the algorithm.

In Section 5, we showed how this restriction could b e removed by using a

prepro cessing step called \corner-lopping" to isolate small angles. Though

the corner-lopping served a theoretical purp ose, there are several ob jections 38 p p

qrqr

s s

Figure 24: This shows why small input angles can b e a problem for the basic

algorithm: p encroaches up on qr, which is split at s, which encroaches up on qp,

which is split :::

to using it in practice: implementing it would require a large e ort, and it

mightbeoverkill, pro ducing more triangles than are really necessary. Here

we argue that with a simple mo di cation to the basic Delaunay re nement

algorithm, small input angles rarely cause problems in practice, and that the

few remaining problematic cases can b e handled by adding a simpli ed ver-

sion of corner-lopping though wehave not b een able to prove size-optimality

for this mo di ed algorithm.

Figure 24 shows why small input angles can b e a problem. Angle pq r is



less than 45 , and p \encroaches" up on qr, since it is within the diametral

circle of qr. Hence, segment qr is split, by adding a vertex at its midp oint.

This new vertex then encroaches up on segment pq . After splitting pq ,we

rep eat the initial situation, at a smaller scale. As shown on the right, this

pro cess of splitting encroached segments can continue inde nitely. No such



examples are known with angles greater than 45 . This problem is caused

by the de nition of encroachment, and can usually b e avoided in practice

by mo difying the de nition to exclude cases where the encroaching vertex

lies on another input segment. However, this do es not handle the case of

a high-degree vertex, due to the interaction b etween edges incident to the

vertex this problem was describ ed in a slightly di erent setting by Saal eld

[19].

In practice, to handle the high-degree case, and cases with very small 39 First split at midpoint Subsequent splits at intersection with concentric

shell nearest midpoint

Figure 25: Mo di ed segment splitting using concentric shells.

input angles, we use a metho d that attempts to simulate corner-lopping.

This is a heuristic that uses \concentric circular shells" around each input

vertex. The idea is that instead of splitting all segments at their midp oints,

which can cause splits to b ounce back and forth b etween segments as in

Figure 24, we make the split p oints \line up" with each other. The approach

is illustrated in Figure 25. We imagine that each input vertex is surrounded

by concentric circles, each double the radius of the one inside it. The rst time

a segment is split, the midp oint is used, but from then on, any subsegment

with an input vertex as an endp oint is split at the intersection of the segment

with the circle nearest the midp oint of the segment.

Sp eci cally,cho ose D to b e a xed, arbitrary constant such as 0.01, and

i

let the ith shell have radius D 2 , for all integers i. Supp ose wemust split

a subsegment pq , where p is an input vertex. Let the length of pq be 2d.

d

Then the midp ointof pq has the non-integral shell number k = log .We

2

D

0

round o k to the nearest integer k , and place the split p oint at a distance

0

0 k

d = D 2 from p along pq .

The result of this mo di ed strategy is shown in Figure 26. On the left

is an input with many small angles. Given this input, the basic algorithm

of Section 2 would lo op endlessly, adding split p oints closer and closer to

the vertex at the center of the input. The result of executing the mo di ed

algorithm is shown on the right. Note that vertices near the central vertex

arrange themselves along the concentric circles, and that the radius of the 40

Figure 26: Input with many sp okes, and triangulation using \concentric shells"

instead of midp oints.

smallest circle is not much smaller than the shortest input edge. The smallest

angle in such a mesh is determined by the smallest input angle, but if desired,

the algorithm can achieve the usual minimum b ound for all non-input angles.

Wehave not obtained a size-optimality pro of for the algorithm under

this mo di ed splitting strategy.However, we can show that split p oints on

p

1 2

p

concentric shells are \close" to the midp ointbetween and of the

2

2 2

way along the segment. Since the size-optimality pro of did not rely on the

split p oints b eing precisely at the midp oints, it might b e extendible to the

concentric shells splitting strategy.

7 Generalization to Three Dimensions

It would b e very desirable to generalize the Delaunay re nement algorithm to

p erform 3D tetrahedral meshing of p olyhedra and p olyhedral complexes. In

this regard, we are somewhat p essimistic: the Delaunay re nement algorithm

extends fairly readily to 3D, but its b ounded asp ect ratio guarantee do es not.

It seems that signi cant new ideas are necessary in order to get b ounded

asp ect ratio tetrahedra using a Delaunay triangulation based approach. 41

Figure 27: A \sliver" triangle in 2D must have a circumcircle much larger than

its shortest edge.

b c

d

a

Figure 28: \Sliver" : 4 p oints spaced around the equator of a sphere,

with d raised slightly. 42

Roughly sp eaking, the discrepancy b etween 2D and 3D is the following: in

2D, an \evenly spaced" p oint set ie. no large \gaps" will have a Delaunay

triangulation with no skinny triangles, but this do es not hold true in 3D.

Figure 27 shows why: a skinny triangle, or sliver, will have a circumcircle

much larger than its shortest edge. Such a circumcircle forms a large \gap"

not containing any p oints. In 3D, however, tetrahedra can have roughly

equal-length edges, a reasonably-sized circumsphere, and yet b e arbitrarily

skinny,asshown in Figure 28: four vertices spaced equally around the equator

of a sphere, with d raised slightly to a latitude of  ab ove the equator.

These at sliver tetrahedra app ear quite often in 3D Delaunay triangula-

tions. The diculties of avoiding them or removing them have b een discussed

in a numb er of pap ers, including [8], [13], [7].

8 Conclusion

Wehave presented a new Delaunay re nement algorithm for b ounded asp ect

ratio triangulation of planar straightline graphs. The algorithm comes with

theoretical guarantees on its b ehavior, yet it is simple enough to b e easily

implemented, and is likely to nd use in practical applications.

There are several directions for further work. Foremost, can the De-

launay re nement algorithm b e generalized to work for 3D triangulation of

p olyhedra? The Delaunay re nement algorithm is well-suited to applica-

tions involving adaptive analyses that increase mesh density in regions of

large error. For adaptive or dynamic problems, mesh reduction,or coarsen-

ing, is also useful|is there a Delaunay based criterion that indicates go o d

vertices to delete from the mesh? There are several questions regarding the

size-optimality constants: Can the analysis b e signi cantly improved? Can

tightlower b ounds b e proved for b ounded-asp ect ratio triangulation, even

for sp eci c inputs?

9 Acknowledgements

Iwould particularly like to thank Raimund Seidel, for many pro ductive dis-

cussions. Helpful suggestions were provided by Balas Natara jan, Marshall

Bern, Eric Barszcz, and two anonymous referees. The development of the al- 43

gorithm was aided by the implementation of SteveFortune

available via netlib.

References

[1] B. Baker, E. Grosse, and C.S. Ra erty. Nonobtuse triangulation of

p olygons. Disc. and Comput. Geom., 3:147{168, 1988.

[2] M. Bern and D. Eppstein. Mesh generation and optimal triangulation.

In D.Z. Du and F.K. Hwang, editors, Computing in Euclidean Geometry.

World Scienti c, 1992.

[3] M. Bern, D. Eppstein, and J.R. Gilb ert. Provably go o d mesh genera-

tion. In Proceedings of the 31st Annual Symposium on Foundations of

Computer Science, pages 231{241. IEEE, 1990. To app ear in J. Comp.

System Science.

[4] L.P. Chew. Constrained Delaunay triangulation. Algorithmica, 4:97{

108, 1989.

[5] L.P. Chew. Guaranteed-quality triangular meshes. Technical rep ort,

Cornell University, 1989. No. TR-89-983.

[6] L.P. Chew. Guaranteed-quality mesh generation for curved surfaces. In

Proceedings of the Ninth Annual Symposium on Computational Geome-

try, pages 274{280. ACM, 1993.

[7] T. Dey, C. Ba ja j, and K. Sugihara. On go o d triangulations in three

dimensions. In Proceedings of the ACM Symposium on

Foundations and CAD/CAM Applications, 1991.

[8] D. Field. Implementing Watson's algorithm in three dimensions. In Pro-

ceedings of the Second Annual Symposium on Computational Geometry,

pages 246{259. ACM, 1986.

[9] S. Fortune. A sweepline algorithm for Voronoi diagrams. Algorithmica,

2:153{174, 1987. 44

[10] L.J. Guibas and J. Stol . Primitives for the manipulation of general sub-

divisions and the computation of Voronoi diagrams. ACM Transactions

on Graphics, 4:74{123, 1985.

[11] D.T. Lee and A. Lin. Generalized Delaunay triangulation for planar

graphs. Discrete Comput. Geom., 1:201{217, 1986.

[12] E. Melissaratos and D. Souvaine. Coping with inconsistencies: A new

approach to pro duce quality triangulations of p olygonal domains with

holes. In Proceedings of the Eighth Annual Symposium on Computational

Geometry, pages 202{211. ACM, 1992.

[13] S. Meshkat, J. Rupp ert, and H. Li. Three-dimensional unstructured

grid generation based on Delaunay tetrahedrization. In Proceedings of

the 3rd International Conference on Numerical Grid Generation, pages

841{851, June 1991.

[14] S.A. Mitchell and S.A. Vavasis. Quality mesh generation in three di-

mensions. In Proceedings of the Eighth Annual Symposium on Compu-

tational Geometry, pages 212{221. ACM, 1992. Full version in Cornell

Tech. Rep ort TR 92-1267, Feb. 1992.

[15] F. P. Preparata and M. I. Shamos. Computational Geometry { an In-

troduction. Springer-Verlag, New York, 1985.

[16] J. Rupp ert. A new and simple algorithm for quality 2-dimensional mesh

generation. Technical Rep ort UCB/CSD 92/694, Computer Science Di-

vision, University of California, Berkeley, 570 Evans Hall, U.C. Berkeley,

CA 94720, June 1992.

[17] J. Rupp ert. Results on Triangulation and High Quality Mesh Genera-

tion. PhD thesis, University of California at Berkeley, 1992.

[18] J. Rupp ert. A new and simple algorithm for quality 2-dimensional mesh

generation. In Proceedings of the Fourth Annual Symposium on Discrete

Algorithms, pages 83{92. ACM-SIAM, January 1993.

[19] A. Saal eld. Delaunay edge re nements. In Third Canadian Conference

on Computational Geometry, pages 33{36, Vancouver, 1991. 45

[20] R. Seidel. Constrained Delaunay triangulations and Voronoi diagrams

with obstacles. Technical Rep ort 260, Inst. for Information Pro cessing,

Graz, Austria, 1988. 46