UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Shewchuck 2D Triangular Meshing.

Slides:



Advertisements
Similar presentations
Steady-state heat conduction on triangulated planar domain May, 2002
Advertisements

Generating Realistic Terrains with Higher-Order Delaunay Triangulations Thierry de Kok Marc van Kreveld Maarten Löffler Center for Geometry, Imaging and.
Alpha Shapes. Used for Shape Modelling Creates shapes out of point sets Gives a hierarchy of shapes. Has been used for detecting pockets in proteins.
 Over-all: Very good idea to use more than one source. Good motivation (use of graphics). Good use of simplified, loosely defined -- but intuitive --
Efficient access to TIN Regular square grid TIN Efficient access to TIN Let q := (x, y) be a point. We want to estimate an elevation at a point q: 1. should.
1 Voronoi Diagrams. 2 Voronoi Diagram Input: A set of points locations (sites) in the plane.Input: A set of points locations (sites) in the plane. Output:
Ruslana Mys Delaunay Triangulation Delaunay Triangulation (DT)  Introduction  Delaunay-Voronoi based method  Algorithms to compute the convex hull 
By Groysman Maxim. Let S be a set of sites in the plane. Each point in the plane is influenced by each point of S. We would like to decompose the plane.
DEpthLAUNAY1 DEpthLAUNAY Manuel Abellanas Alfredo de las Vegas Facultad de Informática - UPM.
3/5/15CMPS 3130/6130 Computational Geometry1 CMPS 3130/6130 Computational Geometry Spring 2015 Delaunay Triangulations II Carola Wenk Based on: Computational.
1st Meeting Industrial Geometry Computational Geometry ---- Some Basic Structures 1st IG-Meeting.
Computational Geometry Piyush Kumar (Lecture 3: Convexity and Convex hulls) Welcome to CIS5930.
Query Processing in Databases Dr. M. Gavrilova.  Introduction  I/O algorithms for large databases  Complex geometric operations in graphical querying.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Lecture 2 Polygon Partitioning Thursday,
Computational Geometry -- Voronoi Diagram
17. Computational Geometry Chapter 7 Voronoi Diagrams.
A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze Todd Phillips Noel Walkington Mark Olah Miklos Bergou.
Computational Geometry and Spatial Data Mining
A Bezier Based Approach to Unstructured Moving Meshes ALADDIN and Sangria Gary Miller David Cardoze Todd Phillips Noel Walkington Mark Olah Miklos Bergou.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Midterm Review Fri. Oct 26.
1cs542g-term Notes. 2 Meshing goals  Robust: doesn’t fail on reasonable geometry  Efficient: as few triangles as possible Easy to refine later.
Delaunay Triangulation Computational Geometry, WS 2006/07 Lecture 11 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Lecture 8: Voronoi Diagram Computational Geometry Prof. Dr. Th. Ottmann Voronoi Diagrams Definition Characteristics Size and Storage Construction Use.
Delaunay Triangulation on the GPU Dan Maljovec. CPU Delaunay Triangulation Randomized Incremental Algorithm 1.Construct Bounding triangle 2.Choose point.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, Center Decision Problem.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 4 Chapter 6: Arrangements Monday,
By Dor Lahav. Overview Straight Skeletons Convex Polygons Constrained Voronoi diagrams and Delauney triangulations.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Chapter 5: Voronoi Diagrams Wednesday,
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Chapter 5: Voronoi Diagrams Monday, 2/23/04.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Chapter 4: 3D Convex Hulls Friday, 2/9/07.
Lecture 10 : Delaunay Triangulation Computational Geometry Prof. Dr. Th. Ottmann 1 Overview Motivation. Triangulation of Planar Point Sets. Definition.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Lecture 2 Chapter 2: Polygon Partitioning.
Visualization and graphics research group CIPIC January 30, 2003Multiresolution (ECS 289L) - Winter MAPS – Multiresolution Adaptive Parameterization.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Project.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Geometric Modeling.
UNC Chapel Hill M. C. Lin Overview of Last Lecture About Final Course Project –presentation, demo, write-up More geometric data structures –Binary Space.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 7 Geometric Modeling Approximate.
1 Mesh Generation and Delaunay-Based Meshes Jernej Barbic Computer Science Department Carnegie Mellon University.
Computing the Delaunay Triangulation By Nacha Chavez Math 870 Computational Geometry; Ch.9; de Berg, van Kreveld, Overmars, Schwarzkopf By Nacha Chavez.
Delaunay Triangulations for 3D Mesh Generation Shang-Hua Teng Department of Computer Science, UIUC Work with: Gary Miller, Dafna Talmor, Noel Walkington.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2007 Lecture 2 Chapter 2: Polygon Partitioning.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Chapter 4: 3D Convex Hulls Monday, 2/23/04.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 6 Start of Part II Material Monday,
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 3 Chapter 4: 3D Convex Hulls Chapter.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2001 Lecture 2 Chapter 2: Polygon Partitioning.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Delaunay Triangulations Presented by Glenn Eguchi Computational Geometry October 11, 2001.
Surface Simplification Using Quadric Error Metrics Michael Garland Paul S. Heckbert.
Automatic Generation of Staged Geometric Predicates Aleksandar Nanevski, Guy Blelloch and Robert Harper PSCICO project
Accelerating Ray Tracing using Constrained Tetrahedralizations Ares Lagae & Philip Dutré 19 th Eurographics Symposium on Rendering EGSR 2008Wednesday,
Approximate Convex Decomposition of Polygons Reporter: Hong guang Zhou Math Dept. ZJU May 17th, 2007 Jyh-Ming Lien Nancy M. Amato Computational Geometry:
Intersection of Nonconvex Polygons Using the Alternate Hierarchical Decomposition, AHD by Rizwan Bulbul, and Andrew U. Frank Department of Geoinformation.
Problem Definition: Solution of PDE’s in Geosciences  Finite elements and finite volume require: u 3D geometrical model u Geological attributes and u.
CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014CSC-305 Design and Analysis of AlgorithmsBS(CS) -6 Fall-2014 Design and Analysis of Algorithms.
Robert Pless, CS 546: Computational Geometry Lecture #3 Last Time: Plane Sweep Algorithms, Segment Intersection, + (Element Uniqueness)
Delaunay Triangulation on the GPU
UNC Chapel Hill M. C. Lin Delaunay Triangulations Reading: Chapter 9 of the Textbook Driving Applications –Height Interpolation –Constrained Triangulation.
1/57 CS148: Introduction to Computer Graphics and Imaging Geometric Modeling CS148 Lecture 6.
Forming a Triangulated Grid of a 3D Fracture Network Dr Michael Robins UWA CWR Sept 04.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 O’Rourke Chapter 6 with some material.
June 23, Variational tetrahedral meshing of mechanical models for FEA Matthijs Sypkens Smit Willem F. Bronsvoort CAD ’08 Conference, Orlando, Florida.
CDS 301 Fall, 2008 Domain-Modeling Techniques Chap. 8 November 04, 2008 Jie Zhang Copyright ©
Polygon Triangulation
Honors Track: Competitive Programming & Problem Solving Seminar Topics Kevin Verbeek.
Mesh Generation, Refinement and Partitioning Algorithms Xin Sui The University of Texas at Austin.
Decimation Of Triangle Meshes
Domain-Modeling Techniques
Craig Schroeder October 26, 2004
Delaunay Triangulation & Application
Introduction to Data Structure
Presentation transcript:

UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2010 Shewchuck 2D Triangular Meshing

2D Mesh Generation Aspect Shewchuck Title Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator Source Conf:1 st Workshop on Applied CG, 1996 Application Areas geometric modeling; graphics Input Objects PSLG of object Aspect Shewchuck Dimensional ity 2D Problem/ Task (constrained) Delaunay triangulation; robustness Theory? Implementat ion? implementation ADTs & Data Structures triangular mesh; (constrained) Delaunay triangulation; Voronoi diagram; convex hulls; Guibas/Stolfi quad-edge; triangular data structure; PSLG; splaytree; heap Algorithmic Paradigms & Techniques sweep-line; geometric divide- and-conquer; incremental insertion Math Topics duality

Shewchuck 2D Triangular Meshing “Triangle: Engineering a 2D Quality Mesh Generator and Delaunay Triangulator” Jonathan Richard Shewchuck

Goals Construct 2D mesh of triangles for geometric modeling that: Construct 2D mesh of triangles for geometric modeling that: avoids small angles avoids small angles constrained Delaunay triangulation constrained Delaunay triangulation is efficient in time and space is efficient in time and space careful choice of data structures & algorithm careful choice of data structures & algorithm is robust is robust adaptive exact arithmetic adaptive exact arithmetic C code at

Approach: Overview Based on Ruppert’s Delaunay Refinement Algorithm Based on Ruppert’s Delaunay Refinement Algorithm Input: Planar Straight Line Graph (PSLG) Input: Planar Straight Line Graph (PSLG) collection of vertices and line segments collection of vertices and line segments Step 1: Construct Delaunay triangulation of point set Step 1: Construct Delaunay triangulation of point set

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

Approach: Overview (continued) Step 3: (not in Ruppert’s algorithm) Step 3: (not in Ruppert’s algorithm) Remove triangles from concavities Remove triangles from concavities “triangle-eating virus” “triangle-eating virus” Step 4: Step 4: Refine mesh to satisfy additional constraints on triangle’s minimum Refine mesh to satisfy additional constraints on triangle’s minimum angle size angle size area area

Step 1: Construct Delaunay Triangulation of Point Set Delaunay Triangulation Algorithms: Delaunay Triangulation Algorithms: O(nlogn) expected time: O(nlogn) expected time: Randomized incremental insertion Randomized incremental insertion Edge flipping restores empty circle property Edge flipping restores empty circle property O(nlogn) worst-case time: O(nlogn) worst-case time: Compute Voronoi diagram, then dualize Compute Voronoi diagram, then dualize Fortune’s plane sweep (parabolic front) Fortune’s plane sweep (parabolic front) O(nlogn) worst-case time: O(nlogn) worst-case time: Divide-and-Conquer Divide-and-Conquer alternating cuts alternating cuts Shewchuck experimental comparison [speed, correctness] fastest slowest [point location bottleneck] deBerg handout

Experimental Delaunay Triangulation Timings Note: Robust versions require more execution time.

Delaunay Triangulation Algorithms: Divide-and-Conquer O(nlogn) worst-case time O(nlogn) worst-case time Recursively halve input vertex set Recursively halve input vertex set Stop when size = 2 or 3 Stop when size = 2 or 3 Triangulate small set Triangulate small set forms edge(s) or triangle forms edge(s) or triangle Merge 2 triangulations Merge 2 triangulations Ghost triangles allow fast convex hull traversal Ghost triangles allow fast convex hull traversal Fit together like gear teeth Fit together like gear teeth

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

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

Step 4: Mesh Refinement (continued) Vertex Insertion Rules: Vertex Insertion Rules: Segment’s Diametral Circle Segment’s Diametral Circle smallest circle containing segment smallest circle containing segment any point in the circle encroaches on segment any point in the circle encroaches on segment split encroached segment split encroached segment insert vertex at midpoint insert vertex at midpoint Triangle’s Circumcircle Triangle’s Circumcircle circle through all 3 vertices circle through all 3 vertices bad triangle: bad triangle: angle too small angle too small area too large area too large split bad triangle split bad triangle insert vertex at circumcenter insert vertex at circumcenter Encroached segments have priority over bad triangles.

Step 4: Mesh Refinement (continued) Note: Figures are in left- to-right, top-to- bottom order

Implementation Issues: Representation Ghost triangles: Ghost triangles: connected in ring about a “vertex at infinity” connected in ring about a “vertex at infinity” facilitate convex hull traversal facilitate convex hull traversal + Topologically richer + Elegant - Slower - More memory edge-based representation tradeoffs triangle-based - Topologically less rich - Longer code + Faster + Less memory Shewchuck preference

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

Implementation Issues: Robustness (continued) Ideal Goal: real arithmetic for some operations Ideal Goal: real arithmetic for some operations Challenge: compounded roundoff error in floating- point arithmetic calculations: Challenge: compounded roundoff error in floating- point arithmetic calculations: Tests: can cause program Tests: can cause program to hang to hang to crash to crash to produce incorrect output to produce incorrect output wrong topology wrong topology Constructions: Constructions: can cause approximate results can cause approximate results What causes incorrectness?

Implementation Issues: Robustness (continued) Arithmetic Alternatives to Floating-Point: Arithmetic Alternatives to Floating-Point: Integer or rational exact arithmetic Integer or rational exact arithmetic fixed precision fixed precision extended precision extended precision Floating point + Floating point +  -testing  -testing robust topological decisions robust topological decisions filter: filter: identify adequate precision for an operation (bit complexity) identify adequate precision for an operation (bit complexity) if expressible as multivariate polynomial, degree gives clue if expressible as multivariate polynomial, degree gives clue floating-point comparisons except when correctness is threatened floating-point comparisons except when correctness is threatened Shewchuck adaptive precision (logical extreme of filter): Shewchuck adaptive precision (logical extreme of filter): compute quantity (e.g. sign of determinant) via successively more accurate approximations compute quantity (e.g. sign of determinant) via successively more accurate approximations stop when uncertainty in result is small stop when uncertainty in result is small No single solution fits all needs. Collection of techniques is needed. slow but sure fast but loose exact floating-pt hybrid time vs. error tradeoff

Implementation Issues: Robustness (continued) Shewchuck uses: Shewchuck uses: multi-stage adaptive precision for geometric primitives multi-stage adaptive precision for geometric primitives Orientation (left/right/on) Orientation (left/right/on) In-Circle (in/out/on) In-Circle (in/out/on) Each Each computes sign of a determinant computes sign of a determinant takes floating-point inputs takes floating-point inputs stops when uncertainty in result is small stops when uncertainty in result is small can reuse previous, less accurate approximations can reuse previous, less accurate approximations fast arbitrary precision arithmetic fast arbitrary precision arithmetic for small (yet extended) precision values 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: