TRIANGULATION_Q2L
6-Node Triangulation to 3-Node Triangulation


TRIANGULATION_Q2L is an executable MATLAB program, using double precision arithmetic, which reads information describing a triangulation of a set of points using 6-node ("quadratic") triangles, and creates a 3-node ("linear") triangulation.

The same nodes are used, but each 6-node triangle is broken up into four smaller 3-node triangles.

Thus, the program might be given the following 4 triangles:

        11-12-13-14-15
         |\    |\    |
         | \   | \   |
         6  7  8  9 10
         |   \ |   \ |
         |    \|    \|
         1--2--3--4--5
      

It would make a new triangulation involving 16 triangles:

        11-12-13-14-15
         |\ |\ |\ |\ |
         | \| \| \| \|
         6--7--8--9-10
         |\ |\ |\ |\ |
         | \| \| \| \|
         1--2--3--4--5
      

The input and output files use the simple TABLE format; comment lines begin with a "#" character. Otherwise, each line of the file contains one set of information, either the coordinates of a node (for a node file), or the indices of nodes that make up a triangle, (for a triangle file).

The input file triangles.txt contains the triangle information for the 6-node triangulation. Each line contains the indices of six nodes that form a triangle, in counterclockwise order. The first three indices are the vertices, in counterclockwise order. The fourth index is the midside node between vertices 1 and 2, the fifth the midside between vertices 2 and 3, and the sixth the midside between vertices 3 and 1.

The output file triangles.l2q.txt contains the triangle information for the 3-node triangulation. The vertices for each triangle are listed in counterclockwise order. There are 4 times as many triangles in this triangulation.

Related Data and Programs:

TABLE_DELAUNAY is an interactive FORTRAN90 program for the triangulation of a set of nodes whose coordinates are stored in a file.

TRIANGLE is an executable C program which computes a triangulation of a geometric region.

TRIANGULATION is a MATLAB library of routines for carrying out various operations on order 3 ("linear") or order 6 ("quadratic") triangulations.

TRIANGULATION_BOUNDARY_NODES is an executable MATLAB program that reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file.

TRIANGULATION_DISPLAY_OPEN_GL is an executable C++ program which reads files defining a triangulation and displays an image using Open GL.

TRIANGULATION_L2Q is an executable MATLAB program that reads data defining a 3-node triangulation and generates midside nodes and writes out the corresponding 6-node triangulation.

TRIANGULATION_MASK is an executable MATLAB program, which takes an existing triangulation and deletes triangles and their corresponding nodes as requested by the user.

TRIANGULATION_ORDER3 is a directory which contains a description and examples of order 3 triangulations.

TRIANGULATION_ORDER6 is a directory which contains a description and examples of order 6 triangulations.

TRIANGULATION_ORIENT is an executable MATLAB program that reads data defining a triangulation, makes sure that every triangle has positive orientation, and if not, writes a corrected triangle file.

TRIANGULATION_PLOT is an executable MATLAB program that reads data defining a triangulation and creates a PostScript image of the nodes and triangles.

TRIANGULATION_Q2L is also available in a C++ version and a FORTRAN90 version.

TRIANGULATION_QUALITY is an executable MATLAB program that reads data defining a triangulation and computes a number of quality measures.

TRIANGULATION_RCM is an executable MATLAB program that 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 is an executable MATLAB program that 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 is an executable MATLAB program that reads data defining a triangulation, determines the neighboring triangles of each triangle, and writes that information to a file.

Reference:

  1. Marc deBerg, Marc Krevald, Mark Overmars, Otfried Schwarzkopf,
    Computational Geometry,
    Springer, 2000.
  2. Joseph ORourke,
    Computational Geometry,
    Cambridge University Press,
    Second Edition, 1998.

Usage:

triangulation_q2l ( 'triangles.txt' )
The program reads the triangulation data in triangles.txt and creates a new triangle file called triangles.q2l.txt.

Tar File:

A GZIP'ed TAR file of the contents of this directory is available. This is only done as a convenience for users who want ALL the files, and don't want to download them individually. This is not a convenience for me, so don't be surprised if the tar file is somewhat out of date.

Source Code:

Examples and Tests:

Here is data defining a 6-node triangulation:

Here is the data for the resultant 3-node triangulation:

You can go up one level to the MATLAB source codes.


Last revised on 01 January 2006.