Learn R Programming

rgl (version 0.97.0)

writeASY: 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.

Value

The filename of the output file is returned invisibly.

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.

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

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

Run the code above in your browser using DataLab