trans3D: Transformation of 3D elements

View source: R/functions.R

trans3DR Documentation

Transformation of 3D elements

Description

trans3D is the plot3D equivalent of trans3d, that projects 3-D elements to 2 dimensions.

Usage

trans3D (x, y, z, pmat) 

Arguments

x, y, z

Vectors, matrices, arrays, with x, y and z-values.

pmat

A 4 x 4 viewing transformation matrix, suitable for projecting the 3D coordinates (x,y,z) into the 2D plane using homogeneous 4D coordinates (x,y,z,t); such matrices are returned by any of the 3-D plotting functions from package plot3D and by persp().

Value

A list with two components:

x, y

the projected 2-D coordinates of the 3-D input x, y, z

In contrast to trans3d, trans3D the returned values x and y will be of the same class and dimensions as the input x and y. If inputted x, y, z are matrices or arrays, so will the projected coordinates be.

Author(s)

Karline Soetaert <karline.soetaert@nioz.nl>

See Also

scatter3D, slice3D, surf3D.

Examples

## ========================================================================
## 3-D mesh
## ========================================================================

 x <- y <- z <- c(-1 , 0, 1)

# plot a 3-D mesh
 (M <- mesh(x, y, z))

# plot result
 pmat <- scatter3D(M$x, M$y, M$z, pch = "+", cex = 3, colkey = FALSE)

# add line
 XY <- trans3D(x = c(-1, 1), y = c(-1, 1), z = c(-1, 1), pmat = pmat) 
 lines(XY, lwd = 2, col = "blue")

## ========================================================================
## Example 2
## ========================================================================

 pmat <- perspbox (z = diag(2))
 XY <- trans3D(x = runif(30), y = runif(30), z = runif(30), pmat = pmat) 
 polygon(XY, col = "darkblue")

plot3D documentation built on May 29, 2024, 5:46 a.m.

Related to trans3D in plot3D...