UMass Lowell Computer Science 91'504 Advanced Algorithms Computational Geometry Prof' Karen Daniels - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

UMass Lowell Computer Science 91'504 Advanced Algorithms Computational Geometry Prof' Karen Daniels

Description:

'Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator' ... C code at http://www.cs.cmu.edu/~quake/triangle.html. Approach: Overview ... – PowerPoint PPT presentation

Number of Views:57
Avg rating:3.0/5.0
Slides: 20
Provided by: murrayd
Learn more at: https://www.cs.uml.edu
Category:

less

Transcript and Presenter's Notes

Title: UMass Lowell Computer Science 91'504 Advanced Algorithms Computational Geometry Prof' Karen Daniels


1
UMass Lowell Computer Science 91.504 Advanced
AlgorithmsComputational Geometry Prof. Karen
Daniels Spring, 2007
  • Geometric Modeling

2
2D Mesh Generation
Shewchuck
Aspect






Title

Triangle Engineering a 2D
Q
uality Mesh Generator and
Delaunay Triangulator

st
Source

Conf

1
Workshop on Applied
CG
, 1996
Application

geometric modeling graphics

Areas

Input
PSLG of object

Objec
ts


3
Geometric Modeling
  • Triangle Engineering a 2D Quality Mesh
    Generator and Delaunay Triangulator
  • Jonathan Richard Shewchuck

http//www.cs.cmu.edu/jrs/jrspapers.html
4
Goals
  • Construct 2D mesh of triangles for geometric
    modeling that
  • avoids small angles
  • constrained Delaunay triangulation
  • is efficient in time and space
  • careful choice of data structures algorithm
  • is robust
  • adaptive exact arithmetic

C code at http//www.cs.cmu.edu/quake/triangle.ht
ml
5
Approach Overview
  • Based on Rupperts Delaunay Refinement Algorithm
  • Input Planar Straight Line Graph (PSLG)
  • collection of vertices and segments
  • Step 1 Construct Delaunay triangulation of
    point set

6
Approach Overview (continued)
  • Step 2
  • Start with the Delaunay triangulation of the
    point set
  • Add input segments
  • segments become constraints
  • constrained Delaunay triangulation

some differences
7
Approach Overview (continued)
  • Step 3 (not in Rupperts algorithm)
  • Remove triangles from concavities
  • triangle-eating virus
  • Step 4
  • Refine mesh to satisfy additional constraints on
    triangles minimum
  • angle size
  • area

8
Step 1 Construct Delaunay Triangulation of Point
Set
  • Delaunay Triangulation Algorithms
  • O(nlogn) expected time
  • Randomized incremental insertion
  • Edge flipping restores empty circle property
  • O(nlogn) worst-case time
  • Compute Voronoi diagram, then dualize
  • Fortunes plane sweep (parabolic front)
  • O(nlogn) worst-case time
  • Divide-and-Conquer
  • alternating cuts

deBerg handout
slowest point location bottleneck
Shewchuck experimental comparison speed,
correctness
fastest
9
Experimental Delaunay Triangulation Timings
Note Robust versions require more execution time.
10
Delaunay Triangulation Algorithms
Divide-and-Conquer
  • O(nlogn) worst-case time
  • Recursively halve input vertex set
  • Stop when size 2 or 3
  • Triangulate small set
  • forms edge(s) or triangle
  • Merge 2 triangulations
  • Ghost triangles allow fast convex hull traversal
  • Fit together like gear teeth

11
Step 2 Constrained Delaunay Triangulation
  • Force mesh to conform to input line segments
  • User Chooses Approach
  • Recursive segment subdivision
  • Insert segment midpoint
  • Flip edges to restore Delaunay (empty circle)
    property
  • Constrained Delaunay triangulation (default)
  • Insert entire segment
  • Delete triangles it overlaps
  • Retriangulate regions on each side of segment
  • No new vertices are inserted

12
Step 4 Mesh Refinement
  • Refine mesh to satisfy additional constraints on
    minimum triangle
  • angle size
  • area
  • Insert new vertices
  • Flip edges to restore Delaunay (empty circle)
    property
  • Halting Issue
  • Halts for angle constraint lt 20.7o
  • May not halt for angle constraint gt 33.9o

13
Step 4 Mesh Refinement (continued)
  • Vertex Insertion Rules
  • Segments Diametral Circle
  • smallest circle containing segment
  • any point in the circle encroaches on segment
  • split encroached segment
  • insert vertex at midpoint
  • Triangles Circumcircle
  • circle through all 3 vertices
  • bad triangle
  • angle too small
  • area too large
  • split bad triangle
  • insert vertex at circumcenter

14
Step 4 Mesh Refinement (continued)
Note Figures are in left-to-right, top-to-bottom
order
15
Implementation Issues Representation
Shewchuck preference
  • Ghost triangles
  • connected in ring about a vertex at infinity
  • facilitate convex hull traversal

16
Implementation Issues Robustness
  • Tests
  • Can influence program flow of control
  • Can classify entities (e.g. sweep-line events)
  • Depend on correctness of geometric predicates
  • Orientation (left/right/on)
  • In-Circle (in/out/on)
  • Each computes sign of a determinant
  • Constructions
  • Represent geometric objects

incorrectness can be serious
some incorrectness can sometimes be tolerated
17
Implementation Issues Robustness (continued)
  • Ideal Goal real arithmetic for some operations
  • Challenge compounded roundoff error in
    floating-point arithmetic calculations
  • Tests can cause program
  • to hang
  • to crash
  • to produce incorrect output
  • wrong topology
  • Constructions
  • can cause approximate results

What causes incorrectness?
18
Implementation Issues Robustness (continued)
  • Arithmetic Alternatives to Floating-Point
  • Integer or rational exact arithmetic
  • fixed precision
  • extended precision
  • Floating point
  • e-testing
  • robust topological decisions
  • filter
  • identify adequate precision for an operation (bit
    complexity)
  • if expressible as multivariate polynomial, degree
    gives clue
  • floating-point comparisons except when
    correctness is threatened
  • Shewchuck adaptive precision (logical extreme of
    filter)
  • compute quantity (e.g. sign of determinant) via
    successively more accurate approximations
  • stop when uncertainty in result is small

No single solution fits all needs. Collection of
techniques is needed.
19
Implementation Issues Robustness (continued)
  • Shewchuck uses
  • multi-stage adaptive precision for geometric
    primitives
  • Orientation (left/right/on)
  • In-Circle (in/out/on)
  • Each
  • computes sign of a determinant
  • takes floating-point inputs
  • stops when uncertainty in result is small
  • can reuse previous, less accurate approximations
  • fast arbitrary precision arithmetic
  • for small (yet extended) precision values

For general discussion of robustness issues and
alternatives, see Strategic Directions in
Computational Geometry Working Group Report
Also see research by Prof. Victor Milenkovic
http//www.cs.miami.edu/vjm.
Write a Comment
User Comments (0)
About PowerShow.com