Description Usage Arguments Value Author(s) See Also Examples
This creates a function to use with play3d to
spin an rgl scene at a fixed rate.
1 2  | spin3d(axis = c(0, 0, 1), rpm = 5,
       dev = rgl.cur(), subscene = currentSubscene3d(dev))
 | 
axis | 
 The desired axis of rotation  | 
rpm | 
 The rotation speed in rotations per minute  | 
dev | 
 Which rgl device to use  | 
subscene | 
 Which subscene to use  | 
A function with header function(time, base = M), where M
is the result of par3d("userMatrix") at the time the function
is created.  This function
calculates and returns a list containing userMatrix updated by
spinning the base matrix for time seconds at rpm revolutions per
minute about the specified axis.
Duncan Murdoch
play3d to play the animation 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  | # Spin one object
open3d()
plot3d(oh3d(col = "lightblue", alpha = 0.5))
if (!rgl.useNULL())
  play3d(spin3d(axis = c(1, 0, 0), rpm = 30), duration = 2)
# Show spinning sprites, and rotate the whole view
open3d()
spriteid <- NULL
spin1 <- spin3d(rpm = 4.5 ) # the scene spinner
spin2 <- spin3d(rpm = 9 ) # the sprite spinner
f <- function(time) {
    par3d(skipRedraw = TRUE) # stops intermediate redraws
    on.exit(par3d(skipRedraw = FALSE)) # redraw at the end
    rgl.pop(id = spriteid) # delete the old sprite
    cubeid <- shade3d(cube3d(), col = "red")
    spriteid <<- sprites3d(0:1, 0:1, 0:1, shape = cubeid,
                   userMatrix = spin2(time, 
                     base = spin1(time)$userMatrix)$userMatrix)
    spin1(time)
}
if (!rgl.useNULL())
  play3d(f, duration = 2)
 | 
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.