TRIANGULATION_L2Q
6-Node Triangulation from 3-Node Triangulation


TRIANGULATION_L2Q is a MATLAB program which reads information describing a triangulation of a set of points using 3-node ("linear") triangles, and creates a 6-node ("quadratic") triangulation.

The same number of triangles are used, but each triangle is given three extra midside nodes. The coordinates of these nodes are determined by averaging the coordinates of pairs of vertices of the triangles.

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 nodes.txt contains the node information for the 3-node triangulation. Each data line contains the X and Y coordinates of a single node.

The input file triangles.txt contains the triangle information for the 3-node triangulation. Each line contains the indices of three nodes that form a triangle, in counterclockwise order.

The output file nodes.l2q.txt contains the node information for the 6-node triangulation. It begins with the node information from nodes.txt, followed by the coordinates of the new nodes.

The output file triangles.l2q.txt contains the triangle information for the 6-node triangulation. There are exactly as many triangles as before, but now each triangle uses six nodes. Each line of the file contains the indices of 6 nodes that form the triangle, listed in a particular 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. It should be the case that the first three columns of triangles.l2q.txt are the same as the three columns of triangles.txt.

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 available in a C++ version and a FORTRAN90 version and a MATLAB version.

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 an executable MATLAB program that reads data defining a 6-node triangulation, and subdivides each triangle into 4 3-node triangles, writing the resulting triangulation to a file.

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.

Usage:

triangulation_l2q ( 'nodes.txt', 'triangles.txt' )
creates a new node file called nodes.l2q.txt and a new triangle file called triangles.l2q.txt.

Reference:

  1. Marc deBerg, Marc Krevald, Mark Overmars, Otfried Schwarzkopf,
    Computational Geometry,
    Springer, 2000,
    ISBN: 3-540-65620-0.
  2. Joseph ORourke,
    Computational Geometry,
    Second Edition,
    Cambridge, 1998,
    ISBN: 0521649765,
    LC: QA448.D38.

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:

You may copy data defining an initial 3-node triangulation:

You may copy data defining the resultant 6-node triangulation:

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


Last revised on 01 January 2007.