I've just committed some changes to rgl that will probably detect bitmaps that are specified to be too large. As well, Brian Ripley backported some of the R-devel additions to the RweaveLatex driver, so now R 2.13.0-patched (revision 55572 or newer) should
work as well as R-devel.

Duncan Murdoch

On 20/04/2011 8:56 PM, Duncan Murdoch wrote:
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