triangulation_orient, an Octave code which reads a triangulation, and reorients each triangle that has a negative area. If at least one such triangle is encountered, the program writes out a new copy of the triangle file in which all the triangles have been correctly oriented.
The input file prefix_nodes.txt contains the node information for the triangulation. Each data line contains the X and Y coordinates of a single node.
The input file prefix_elements.txt contains the triangle information for the triangulation. Each line contains the indices of 3 or 6 nodes that form a triangle.
For many applications, including computer graphics and finite element computations, it is assumed that the triangles are described with a positive orientation. That is, the nodes are listed in clockwise order.
TRIANGULATION_ORIENT can check whether every triangle in a triangulation has positive orientation, and can "repair" the file if it finds one or more triangles with a negative orientation.
A misoriented order 3 triangle:
2 /| / | / | / | / | 1-----3The corrected order 3 triangle:
3 /| / | / | / | / | 1-----2
A misoriented order 6 triangle:
2 /| / | 4 5 / | / | 1--6--3The corrected order 6 triangle:
3 /| / | 6 5 / | / | 1--4--2
triangulation_orient ( 'prefix' )where 'prefix' is the common filename prefix:
The information on this web page is distributed under the MIT license.
triangulation_orient is available in a C++ version and a Fortran90 version and a MATLAB version and an Octave version.
triangulation, an Octave code which carries out various operations on order 3 ("linear") or order 6 ("quadratic") triangulations.
triangulation_boundary_edges, an Octave code which reads data defining a triangulation, determines which edges lie on the boundary, organizes them into connected components, and writes this information to a file.
triangulation_boundary_nodes, an Octave code which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.
triangulation_corner, an Octave code which patches triangulations so that no triangle has two sides on the boundary.
triangulation_delaunay_discrepancy, an Octave code which measures the amount by which a triangulation fails the local delaunay test;
triangulation_display, an Octave code which displays the nodes and elements of a triangulation on the MATLAB graphics screen;
triangulation_histogram, an Octave code which computes histograms of data over a triangulation.
triangulation_l2q, an Octave code which reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.
triangulation_mask, an Octave code which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.
triangulation_order3, a data directory which contains a description and examples of order 3 triangulations.
triangulation_order6, a data directory which contains a description and examples of order 6 triangulations.
triangulation_plot, an Octave code which reads data defining a triangulation and creates a postscript image of the nodes and triangles.
triangulation_q2l, an Octave code which reads data defining a 6-node triangulation, and subdivides each triangle into 4 3-node triangles, writing the resulting triangulation to a file.
triangulation_quad, an Octave code which estimates the integral of a function over a triangulated region.
triangulation_quality, an Octave code which reads data defining a triangulation and computes a number of quality measures.
triangulation_rcm, an Octave code which reads data defining a triangulation, determines an ordering of the nodes that will reduce the bandwidth of the adjacency matrix, and writes the new triangulation information to a file.
triangulation_refine, an Octave code which reads data defining a triangulation, replaces each triangle by four congruent smaller ones, and writes the new triangulation information to a file.
triangulation_triangle_neighbors, an Octave code which reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.