Delaunay triangulation algorithm

1. Definition of triangulation and Delaunay

  How to divide a set of scattered points into non-uniform triangular grids is the problem of triangulation of a set of scattered points. The triangulation of a set of scattered points is extremely important for numerical analysis and graphics. Pretreatment technology. The problem is illustrated as follows:

1.1. Triangulation definition

  [Definition] Triangulation: Suppose that V is a finite set of points on a two-dimensional real number field, edge e is a closed line segment composed of points in the point concentration as endpoints , and E is a set of e . Then a triangulation T=(V,E) of the point set V is a plane graph G , which satisfies the conditions:

  1. Except for the endpoints, the edges in the plan do not contain any points in the point set.

  2. There are no intersecting edges.

  3. All faces in the plan view are triangular faces, and the collection of all triangular faces is the convex hull of the scattered point set V.

1.2. Definition of Delaunay triangulation

  The most commonly used triangulation in practice is Delaunay triangulation, which is a special triangulation. Let’s start with Delaunay :

  DEFINITIONS Delaunay edges: Suppose E of an edge E (for the two end points a, b ), E if the following conditions are satisfied, it is called Delaunay side: there is a circle through a, b points, the circle ( note It is inside the circle, and at most three points on the circle are in a circle. ) Does not contain any other points in the point set V. This feature is also called the empty circle feature.

  [Definition] Delaunay triangulation: If a triangulation T of the point set V contains only Delaunay edges, then the triangulation is called Delaunay triangulation.

1.3 . Criteria for Delaunay triangulation

  To meet the definition of Delaunay triangulation, two important criteria must be met:

  1. Empty circle characteristics: Delaunay triangle network is unique (any four points cannot be a circle), there will be no other points within the circumcircle of any triangle in the Delaunay triangle network. As shown below:

 

  2. Maximum minimum angle feature: Among the possible triangulations formed by the scattered point set, the minimum angle of the triangle formed by the Delaunay triangulation is the largest. In this sense, the Delaunay triangulation is the " closest to regularization " triangulation. Specifically, it means that the diagonals of a convex quadrilateral are formed by two adjacent triangles. After mutual exchange, the smallest angle of the six internal angles no longer increases. As shown below:

  

 

1.4 . The characteristics of Delaunay triangulation

  The following are the outstanding characteristics of Delaunay split:

  1. Closest: A triangle is formed by the three nearest points, and all line segments ( the sides of the triangle ) do not intersect.

  2. Uniqueness: No matter where the area starts from, the final result will be consistent.

  3. Optimality: If the diagonals of the convex quadrilateral formed by any two adjacent triangles can be interchanged, the smallest angle among the six internal angles of the two triangles will not become larger.

  4. The most regular: if the smallest angle of each triangle in the triangulation is arranged in ascending order, the arrangement of the Delaunay triangulation will get the largest value.

  5. Regionality: adding, deleting, or moving a vertex will only affect the adjacent triangle.

  6. Shell with convex polygon: The outermost boundary of the triangular mesh forms a convex polygon shell.

1.5. Local optimization processing

  In theory, in order to construct the Delaunay triangulation, Lawson proposed the local optimization process LOP (Local Optimization Procedure) . Generally, the triangulation can be guaranteed to become a Delaunay triangulation after LOP processing . The basic method is as follows:

  1. Combine two triangles with common sides into a polygon.

  2. Check with the largest empty circle criterion to see if the fourth vertex is within the circumcircle of the triangle.

  3. If yes, the correction diagonal is about to reverse the diagonal, that is, the processing of the local optimization process is completed.

  The LOP processing process is shown in the following figure:

  

2. Algorithm of Delaunay subdivision

  Delaunay subdivision is a standard of triangulation, and there are many algorithms to implement it.

2.1. Lawson algorithm

  The Lawson algorithm of point-by-point insertion was proposed by Lawson in 1977. The algorithm has a simple idea and is easy to program. The basic principle is: first create a large triangle or polygon, enclose all the data points, insert a point into it, and this point is connected with the three vertices of the triangle containing it to form three new triangles, and then empty them one by one. The circumscribed circle is detected, and the local optimization process LOP designed by Lawson is used to optimize, that is, to ensure that the formed triangulation is a Delaunay triangulation by swapping the diagonals .

  The above-mentioned scatter-based network construction algorithm has rigorous theory and good uniqueness, and the grid satisfies the characteristics of empty circles, which is ideal. From its point-by-point insertion process, it can be seen that when a non- Delaunay edge is encountered , a new Delaunay edge can be formed by deleting and adjusting it . After completing the network construction, when adding new points, there is no need to re-network all the points, only the local network of the influence triangle of the new point is performed, and the local network method is simple and easy. Similarly, the deletion and movement of points can also be carried out quickly and dynamically. However, in practical applications, when the point set is large, the network construction speed is slower. If the point set range is a non-convex area or there is an inner ring, illegal triangles will be generated.

2.2. Bowyer-Watson algorithm

  The basic steps of Lawson's algorithm are:

  1. Construct a super triangle, including all the scattered points, and put it into the triangle linked list.

  2. Insert the scattered points in the point concentration one by one, find the triangle whose circumcircle contains the insertion point in the triangle linked list (called the influence triangle of the point), delete the common side of the influence triangle, and set the insertion point with all the triangles The vertices are connected to complete the insertion of a point in the Delaunay triangle linked list.

  3. According to the optimization criteria, optimize the newly formed triangles locally. Put the formed triangle into the Delaunay triangle list.

  4. Circulate the above step 2 until all the scattered points are inserted.

  The key step 2 of this algorithm is illustrated as follows:

  

 

 

 

 

Guess you like

Origin blog.csdn.net/ccsss22/article/details/108740622