R: Write Asymptote code for an rgl scene

writeASY {rgl} | R Documentation

## Write Asymptote code for an rgl scene

### Description

Asymptote is a language for 3D graphics that is highly integrated with LaTeX. This is an experimental function to write an Asymptote program to approximate an rgl scene.

### Usage

    writeASY(scene = scene3d(),
             title = "scene",
             outtype = c("pdf", "eps", "asy", "latex", "pdflatex"),
             prc = TRUE,
             runAsy = "asy %filename%",
             defaultFontsize = 12,
             width = 7, height = 7,
             ppi = 100,
             ids = NULL)

### Arguments

`scene` | rgl scene object
`outtype` | What type of file to write? See Details.
`prc` | Whether to produce an interactive PRC scene.
`title` | The base of the filename to produce.
`runAsy` | Code to run the Asymptote program.
`defaultFontsize` | The default fontsize for text.
`width, height` | Width and height of the output image, in inches.
`ppi` | “Pixels per inch” to assume when converting line widths and point sizes (which rgl measures in pixels).
`ids` | If not `NULL`, write out just these rgl objects.

### Details

Asymptote is both a language describing a 2D or 3D graphic, and a program to interpret that language and produce output in a variety of formats including EPS, PDF (interactive or static), etc.

The interactive scene produced with `prc = TRUE` requires `outtype = "pdf"`, and (as of this writing) has a number of limitations:

- As far as we know, only Adobe Acrobat Reader of a sufficiently recent version can display these scenes.

- Current versions ignore lighting settings.

### Value

The filename of the output file is returned invisibly.

### Note

This function is currently under development and limited in the quality of output it produces. Arguments will likely change.

There are a number of differences between the interactive display in Asymptote and the display in rgl. In particular, many objects that are a fixed size in rgl will scale with the image in Asymptote. Defaults have been chosen somewhat arbitrarily; tweaking will likely be needed.

Material properties of surfaces are not yet implemented.

### Author(s)

Duncan Murdoch

### References

J. C. Bowman and A. Hammerlindl (2008). Asymptote: A vector graphics language, TUGBOAT: The Communications of the TeX Users Group, 29:2, 288-294.

### See Also

`scene3d` saves a copy of a scene to an R variable; `writeWebGL`, `writePLY`, `writeOBJ` and `writeSTL` write the scene to a file in various other formats.

### Examples

    x <- rnorm(20)
    y <- rnorm(20)
    z <- rnorm(20)
    plot3d(x, y, z, type = "s", col = "red")
    olddir <- setwd(tempdir())
    writeASY(title = "interactive")  # Produces interactive.pdf
    writeASY(title = "noninteractive", prc = FALSE) # Produces noninteractive.pdf
    setwd(olddir)

[Package rgl version 0.99.9 Index]