#### 30.1.1 Plotting the Triangulation

Octave has the functions `triplot`, `trimesh`, and `trisurf` to plot the Delaunay triangulation of a 2-dimensional set of points. `tetramesh` will plot the triangulation of a 3-dimensional set of points.

Function File: triplot (tri, x, y)
Function File: triplot (tri, x, y, linespec)
Function File: h = triplot (…)

  Plot a 2-D triangular mesh.

  tri is typically the output of a Delaunay triangulation over the grid of x, y. Every row of tri represents one triangle and contains three indices into [x, y] which are the vertices of the triangles in the x-y plane.

  The linestyle to use for the plot can be defined with the argument linespec of the same format as the `plot` command.

  The optional return value h is a graphics handle to the created patch object.

  See also: plot, trimesh, trisurf, delaunay.

Function File: trimesh (tri, x, y, z, c)
Function File: trimesh (tri, x, y, z)
Function File: trimesh (tri, x, y)
Function File: trimesh (…, prop, val, …)
Function File: h = trimesh (…)

  Plot a 3-D triangular wireframe mesh.

  In contrast to `mesh`, which plots a mesh using rectangles, `trimesh` plots the mesh using triangles.

  tri is typically the output of a Delaunay triangulation over the grid of x, y. Every row of tri represents one triangle and contains three indices into [x, y] which are the vertices of the triangles in the x-y plane. z determines the height above the plane of each vertex. If no z input is given then the triangles are plotted as a 2-D figure.

  The color of the trimesh is computed by linearly scaling the z values to fit the range of the current colormap. Use `caxis` and/or change the colormap to control the appearance.

  Optionally, the color of the mesh can be specified independently of z by supplying a color matrix, c. If z has N elements, then c should be an Nx1 vector for colormap data or an Nx3 matrix for RGB data.

  Any property/value pairs are passed directly to the underlying patch object.

  The optional return value h is a graphics handle to the created patch object.

  See also: mesh, tetramesh, triplot, trisurf, delaunay, patch, hidden.

Function File: trisurf (tri, x, y, z, c)
Function File: trisurf (tri, x, y, z)
Function File: trisurf (…, prop, val, …)
Function File: h = trisurf (…)

  Plot a 3-D triangular surface.

  In contrast to `surf`, which plots a surface mesh using rectangles, `trisurf` plots the mesh using triangles.

  tri is typically the output of a Delaunay triangulation over the grid of x, y. Every row of tri represents one triangle and contains three indices into [x, y] which are the vertices of the triangles in the x-y plane. z determines the height above the plane of each vertex.

  The color of the trimesh is computed by linearly scaling the z values to fit the range of the current colormap. Use `caxis` and/or change the colormap to control the appearance.

  Optionally, the color of the mesh can be specified independently of z by supplying a color matrix, c. If z has N elements, then c should be an Nx1 vector for colormap data or an Nx3 matrix for RGB data.

  Any property/value pairs are passed directly to the underlying patch object.

  The optional return value h is a graphics handle to the created patch object.

  See also: surf, triplot, trimesh, delaunay, patch, shading.

Function File: tetramesh (T, X)
Function File: tetramesh (T, X, C)
Function File: tetramesh (…, property, val, …)
Function File: h = tetramesh (…)

  Display the tetrahedrons defined in the m-by-4 matrix T as 3-D patches.

  T is typically the output of a Delaunay triangulation of a 3-D set of points. Every row of T contains four indices into the n-by-3 matrix X of the vertices of a tetrahedron. Every row in X represents one point in 3-D space.

  The vector C specifies the color of each tetrahedron as an index into the current colormap. The default value is 1:m where m is the number of tetrahedrons; the indices are scaled to map to the full range of the colormap. If there are more tetrahedrons than colors in the colormap then the values in C are cyclically repeated.

  Calling `tetramesh (…, "property", "value", …)` passes all property/value pairs directly to the patch function as additional arguments.

  The optional return value h is a vector of patch handles where each handle represents one tetrahedron in the order given by T. A typical use case for h is to turn the respective patch `"visible"` property `"on"` or `"off"`.

  Type `demo tetramesh` to see examples on using `tetramesh`.

  See also: trimesh, delaunay, delaunayn, patch.

The difference between `triplot`, and `trimesh` or `triplot`, is that the former only plots the 2-dimensional triangulation itself, whereas the second two plot the value of a function `f (x, y)`. An example of the use of the `triplot` function is

    rand ("state", 2)
    x = rand (20, 1);
    y = rand (20, 1);
    tri = delaunay (x, y);
    triplot (tri, x, y);

which plots the Delaunay triangulation of a set of random points in 2-dimensions. The output of the above can be seen in Figure 30.2.

Figure 30.2: Delaunay triangulation of a random set of points