On 20/04/2011 7:10 PM, Dominick Samperi wrote:
On Wed, Apr 20, 2011 at 2:29 PM, Duncan Murdoch
<murdoch.dun...@gmail.com>  wrote:
On 20/04/2011 1:52 PM, Dominick Samperi wrote:

On Tue, Apr 19, 2011 at 2:18 PM, Duncan Murdoch
<murdoch.dun...@gmail.com>    wrote:
  I have just committed some code to the rgl package on
  https://r-forge.r-project.org/projects/rgl/ to allow rgl images to be
  inserted into Sweave documents.  (This is not in the CRAN version yet.)
  It
  makes use of the custom graphics driver support added by Brian Ripley.

  In R-devel (which will become R 2.14.0 next spring in New Zealand, next
fall
  in most other places), usage is quite straightforward.  For
  example, code like this in a Sweave document:

  <<fig=true, grdevice=rgl.Sweave, pdf=false, stayopen=TRUE>>=
  x<- rnorm(100); y<- rnorm(100); z<- rnorm(100)
  plot3d(x, y, z)
  @

  will insert a .png snapshot of the figure.  Because that chunk has
  "stayopen=TRUE", it can be followed by another chunk to add
  to the figure, e.g.

  <<fig=true, grdevice=rgl.Sweave, pdf=false>>=
  lines3d(x[1:10], y[1:10], z[1:10], col="red")
  @

  All of this is possible in R 2.13.0, but it takes more work:  see the
  ?rgl.Sweave help page.

  I will eventually add postscript and PDF output options as well, and
perhaps
  some support for the LaTeX movie15 package, but those are not there
yet.
    Comments or bug reports are welcome.

  Duncan Murdoch

I inserted your example into testrgl.Rnw under R 2.13.0, with
Sweave.snapshot()
at the end of both chunks, but things did not work as expected.

I used:
$ R CMD Sweave testrgl.Rnw
$ pdflatex tesetrgl
(view testrgl.pdf)

When R CMD Sweave is run the graphics is displayed interactively.

That's unavoidable as far as I know.  I don't think there's a general
purpose way to tell OpenGL to render in the background, so it works by
rendering on screen, then copying a bitmap to the .png file.

There is no graphics in the PDF file, even though both .png files
are read when pdflatex is run.

Do they look okay?  One possible problem is that you may have asked for a
bitmap too big for your hardware to render, in which case those png files
will end up with junk (probably blank).  Setting resolution=100 in the chunk
headers will do it more coarsely.  (The default is 300 dpi.)  The same
effect comes from width=1, height=1  (or some other small numbers).

Duncan Murdoch


The resolution=100 tip fixed the problem, thanks.

I'll see if I am skipping over some error message in there. It would be much better for Sweave to fail with an error than generate empty images.


> Now I see the snapshots
in the PDF file. Using this in a package will certainly change the
user experience,
but it moves away from the traditional batch-oriented R package
processing, it seems to me.

I don't follow that.

The idea of adding support for movies and 3D graphics to Sweave/PDF files
sounds very interesting and revolutionary.

Movies will likely be pretty slow. I think you'll want caching of some sort if you want to produce those.

Duncan Murdoch


Dominick

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to