
Last chance! 50% off unlimited learning
Sale ends in
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.
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 = tagged3d(tags),
tags = NULL,
version = "2.65")
The filename of the output file is returned invisibly.
RGL scene object
What type of file to write? See Details.
Whether to produce an interactive PRC scene.
The base of the filename to produce.
Code to run the Asymptote program.
The default fontsize for text.
Width and height of the output image, in inches.
“Pixels per inch” to assume when converting line widths and point sizes (which RGL measures in pixels).
If not NULL
, write out just these
RGL objects.
Alternate way to specify ids
. Ignored if ids
is
given.
Asymptote version 2.44 had a definition for its “light()” function
that was incompatibly changed in versions 2.47 and 2.50.
The current code has been tested with version 2.65.
If you are using an older version, set version
to your version number and it may work better.
Duncan Murdoch
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.
J. C. Bowman and A. Hammerlindl (2008). Asymptote: A vector graphics language, TUGBOAT: The Communications of the TeX Users Group, 29:2, 288-294.
scene3d
saves a copy of a scene to an R variable; rglwidget
,
writePLY
, writeOBJ
and writeSTL
write the scene to a file in various other formats.
if (FALSE) {
# On some systems, the program "asy" used
# to process the output has bugs, so this may fail.
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)
}
Run the code above in your browser using DataLab