triMat: Produce matrix of triangle vertex indices.

View source: R/triMat.R

triMatR Documentation

Produce matrix of triangle vertex indices.

Description

Lists the indices of the vertices of each Delaunay triangle in the triangulation of a planar point set. The indices are listed (in increasing numeric order) as the rows of an n \times 3 matrix where n is the number of Delaunay triangles in the triangulation.

Usage

triMat(object)

Arguments

object

An object of class deldir (as produced by the function deldir()) specifying the Delaunay triangulation and Dirichlet (Voronoi) tessellation of a planar point set.

Details

This function was suggested by Robin Hankin of the School of Mathematical and Computing Sciences at Auckland University of Technology.

Value

An n \times 3 matrix where n is the number of Delaunay triangles in the triangulation specified by object. The i^{th} row consists of the indices (in the original list of points being triangulated) of vertices of the i^{th} Delaunay triangle. The indices are listed in increasing numeric order in each row.

Note

Earlier versions of this function (prior to release 0.1-14 of deldir) could sometimes give incorrect results. This happened if the union of three contiguous Delaunay triangles happened to constitute another triangle. This latter triangle would appear in the list of triangles produced by triMat() but is not itself a Delaunay triangle. The updated version of triMat() now checks for this possibility and gives (I think!) correct results.

Many thanks to Jay Call, who pointed out this bug to me.

Author(s)

\rolf

See Also

deldir() triang.list() plot.triang.list()

Examples

# These are the data used by Jay Call to illustrate the bug
# that appeared in a previous incarnation of triMat.
xy <- data.frame(
          x = c(0.048,0.412,0.174,0.472,0.607,0.565,0.005,0.237,0.810,0.023),
          y = c(0.512,0.928,0.955,0.739,0.946,0.134,0.468,0.965,0.631,0.782)
      )
dxy <- deldir(xy)
M   <- triMat(dxy)
plot(dxy,wlines="triang",num=TRUE,axes=FALSE,cmpnt_col=c(1,1,1,1,2,1))
# The triangle with vertices {4,5,8} was listed in the output of
# the previous (buggy) version of triMat().  It is NOT a Delaunay
# triangle and hence should NOT be listed.

deldir documentation built on Nov. 23, 2023, 9:09 a.m.

Related to triMat in deldir...