R: Use base graphics for RGL background

bgplot3d {rgl} | R Documentation

## Use base graphics for RGL background

### Description

Add a 2D plot or a legend in the background of an RGL window.

### Usage

    bgplot3d(expression)
    legend3d(...)

### Arguments

`expression` | Any plotting commands to produce a plot.
`...` | Arguments to pass to the `legend` function.

### Details

The `bgplot3d` function opens a `png` device and executes `expression`, producing a plot there. This plot is then used as a bitmap background for the current RGL subscene.

The `legend3d` function draws a standard 2D legend to the background of the current subscene by calling `bgplot3d` to open a device, and setting up a plot region there to fill the whole display.

### Value

The `bgplot3d` function invisibly returns the ID of the background object that was created, with attribute `"value"` holding the value returned when the `expression` was evaluated.

The `legend3d` function does similarly. The `"value"` attribute is the result of the call to `legend`. The scaling of the coordinates runs from 0 to 1 in X and Y.

### Note

Because the background plots are drawn as bitmaps, they do not resize very gracefully. It's best to size your window first, then draw the background at that size.

### Author(s)

Duncan Murdoch

### See Also

`bg3d` for other background options.

### Examples

    x <- rnorm(100)
    y <- rnorm(100)
    z <- rnorm(100)
    open3d()
    # Needs to be a bigger window than the default
    par3d(windowRect = c(100, 100, 612, 612))
    Sys.sleep(0.1) # Allow sluggish window managers to catch up
    parent <- currentSubscene3d()
    mfrow3d(2, 2)
    plot3d(x, y, z)
    next3d(reuse = FALSE)
    bgplot3d(plot(y, z))
    next3d(reuse = FALSE)
    bgplot3d(plot(x, z))
    next3d(reuse = FALSE)
    legend3d("center", c("2D Points", "3D Points"), pch = c(1, 16))
    useSubscene3d(parent)

[Package rgl version 0.99.9 Index]