Plot a Delaunay triangulation
The deldir()
function in the deldir package computes a Delaunay triangulation of a set
of points. These functions display it as a surface.
## S3 method for class 'deldir' plot3d(x, ...) ## S3 method for class 'deldir' persp3d(x, ..., add = FALSE) ## S3 method for class 'deldir' as.mesh3d(x, col = "gray", coords = c("x", "y", "z"), smooth = TRUE, normals = NULL, texcoords = NULL, ...)
x |
A |
add |
Whether to add surface to existing plot ( |
col |
Colors to apply to each vertex in the triangulation. Will be recycled as needed. |
coords |
See Details below. |
smooth |
Whether to average normals at vertices for a smooth appearance. |
normals |
User-specified normals at each vertex. Requires |
texcoords |
Texture coordinates at each vertex. |
... |
See Details below. |
These functions construct a mesh3d
object
corresponding to the triangulation in x
. The
plot3d
and persp3d
methods plot it.
The coords
parameter allows surfaces to be
plotted over any coordinate plane. It should be
a permutation of the column names c("x", "y", "z")
from the "deldir"
object. The first will be used
as the x coordinate, the second as the y coordinate,
and the third as the z coordinate.
The ...
parameters in plot3d.deldir
are passed to persp3d.deldir
; in persp3d.deldir
they are
passed to both as.mesh3d.deldir
and persp3d.mesh3d
;
in as.mesh3d.deldir
they are used as material parameters
in a tmesh3d
call.
x <- rnorm(200, sd = 5) y <- rnorm(200, sd = 5) r <- sqrt(x^2 + y^2) z <- 10 * sin(r)/r col <- cm.colors(20)[1 + round(19*(z - min(z))/diff(range(z)))] save <- options(rgl.meshColorWarning = FALSE) # This code is awkward: to work with demo(rglExamples), # we need auto-printing of the plots. This means we # have to repeat the test for deldir. haveDeldir <- requireNamespace("deldir", quietly = TRUE) if (haveDeldir) { dxyz <- deldir::deldir(x, y, z = z, suppressMsge = TRUE) persp3d(dxyz, col = col) } if (haveDeldir) { open3d() # Do it without smoothing and with a different orientation. persp3d(dxyz, col = col, coords = c("z", "x", "y"), smooth = FALSE) } options(save)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.