rglToLattice.RdThese functions take a user orientation matrix from an RGL scene and approximate the parameters to either lattice or base graphics functions.
The lattice package can use Euler angles in
the ZYX scheme to describe the rotation of a scene
in its wireframe or
cloud functions. The
rglToLattice function computes these angles
based on rotm, which defaults to the current
user matrix. This allows RGL to be used
to interactively find a decent viewpoint and
then reproduce it in lattice.
The base graphics persp function does
not use full Euler angles; it
uses a viewpoint angle, and assume the z axis
remains vertical. The rglToBase function
computes the viewpoint angle accurately if the
RGL scene is displayed with a vertical
z axis, and does an approximation otherwise.
rglToLattice returns a list suitable to
be used as the screen argument to
wireframe.
rglToBase returns a list containing
theta and phi components which
can be used as corresponding arguments in persp.
persp3d(volcano, col = "green")
3D plot
if ((hasorientlib <- requireNamespace("orientlib", quietly = TRUE)) &&
requireNamespace("lattice", quietly = TRUE))
lattice::wireframe(volcano, screen = rglToLattice())
if (hasorientlib) {
angles <- rglToBase()
persp(volcano, col = "green", border = NA, shade = 0.5,
theta = angles$theta, phi = angles$phi)
}