1 Mesh Generation and Delaunay-Based Meshes Jernej Barbic Computer Science Department Carnegie...

Preview:

Citation preview

1

Mesh Generation and Delaunay-Based Meshes

Jernej BarbicComputer Science Department

Carnegie Mellon University

2

Outline

• Introduction

• Delaunay triangulation

• Ruppert’s algorithm

• Result on runtime analysis of Ruppert’s algorithm

• Conclusion

3

Motivation: Temperature on the Surface of a Lake

No analytical solution

Need to approximate…

4

How to approximate?

5

How to approximate?

Runs too slow!

First guess: uniformly.

6

Too much computation

Computation fast, but inaccurate

No need to consider only uniform meshes…

Optimal solution

BUT MUST AVOID SMALL ANGLES !!

7

Outline

• Introduction

• Delaunay triangulation

• Ruppert’s algorithm

• Result on runtime analysis of Ruppert’s algorithm

• Conclusion

8

How to connect the dots into triangles?

9

How to connect the dots into triangles?

One possibility:

10

How to connect the dots into triangles?

Another possibility:

Which triangulation makes minimum angle as large as possible?

11

Include a triangle iff there are no vertices inside its circumcircle.

Boris Nikolaevich Delaunay (1890-1980) :

12

Delaunay Triangulation

Further example:

13

Delaunay Triangulation

Negative example:

14

Let’s try it for Lake Superior…

… and we get Lake Inferior …

Delaunay triangulationof Lake Superior

15

Outline

• Introduction

• Delaunay triangulation

• Ruppert’s algorithm

• Result on runtime analysis of Ruppert’s algorithm

• Conclusion

16

How to avoid skinny triangles?

Ruppert’s idea (1993) :

Add triangle’s circumcenter into the mesh.

Why does this make sense?

17

How to avoid skinny triangles?

Ruppert’s idea (1993) :

Add triangle’s circumcenter into the mesh.

Why does this make sense?

18

Ruppert’s Algorithm

Input: a set of points in the plane, minimum angle 0

Output: a triangulation, with all angles 0

19

• Algorithm always terminates for 0 < 20.7º.

• Bigger minimum angles 0 are harder.

• Size of mesh is optimal up to a constant factor.

Ruppert’s Algorithm

Input: a set of points in the plane, minimum angle 0

Output: a triangulation, with all angles 0

20

Let’s demonstrate Ruppert on an example…

21

Progress of Ruppert’s algorithm minimum allowed angle = 13 º

Algorithm completed its task.

22

Outline

• Introduction

• Delaunay triangulation

• Ruppert’s algorithm

• Result on runtime analysis of Ruppert’s algorithm

• Conclusion

23

Running Time Analysis

Delaunay triangulation

O(n log n)

24

Running Time Analysis

Delaunay triangulation

O(n log n)

Ruppert’s algorithm

My result:(m2)

25

We proved: worst-case bound of O(m2) is tight.

Number of input points: nNumber of output points: m=O(n)

Input point set (no edges in the input):

26

Delaunay triangulation of the input:

Lots of skinny triangles. We choose to split the one shaded in grey.

27

Big “fan” of triangles appears: high cost

28

We have established a self-repeating pattern …

29

Lots of work continues…

30

Total work proven to be: (m2)

Number of input points: O(n)Number of output points: m=O(n)

31

However, in practice algorithm works well.

Let’s try Ruppert on Lake Superior…

32

Ruppert’s Algorithm on Lake Superior

0 = 25º

33

Solve for temperature…

34

Outline

• Introduction

• Delaunay triangulation

• Ruppert’s algorithm

• Result on runtime analysis of Ruppert’s algorithm

• Conclusion

35

Conclusion

• Worst-case behavior of Ruppert’s algorithm is quadratic.

• In practice, Ruppert’s algorithm performs well.

• Main Delaunay idea: maximize minimum angle

• Generating good meshes is an important problem.

36

Applications and Future Work

• Triangle software http://www-2.cs.cmu.edu/~quake/triangle.html

• Find good strategies for selecting skinny triangles

• Characterize input meshes that exhibit slow runtime

Recommended