rgl - 如何旋转两个打开的设备

时间:2015-03-02 10:18:42

标签: r rgl

在网页rgl Overview上,以下示例使用mfrow3d打开两个rgl设备并使用同一鼠标控制它们。但是,如果使用play3d(spin3d()),则只会旋转两个设备中的最后一个。

library(MASS)
# from the fitdistr example
set.seed(123)
x <- rgamma(100, shape = 5, rate = 0.1)
fit <- fitdistr(x, dgamma, list(shape = 1, rate = 0.1), lower = 0.001)
loglik <- function(shape, rate) sum(dgamma(x, shape=shape, rate=rate, 
                                           log=TRUE))
loglik <- Vectorize(loglik)
xlim <- fit$estimate[1]+4*fit$sd[1]*c(-1,1)
ylim <- fit$estimate[2]+4*fit$sd[2]*c(-1,1)

mfrow3d(1, 2, sharedMouse = TRUE)
persp3d(loglik, 
        xlim = xlim, ylim = ylim,
        n = 30)
zlim <- fit$loglik + c(-qchisq(0.99, 2)/2, 0)
next3d()
persp3d(loglik, 
        xlim = xlim, ylim = ylim, zlim = zlim,
        n = 30)

有没有办法让两个图像同时旋转?

1 个答案:

答案 0 :(得分:0)

rgl的当前开发版本(0.95.1476,仅适用于R-forge,请参阅How do I install the latest version of rgl?)现在默认执行此操作。您还可以控制不共享鼠标的子场景,例如 通过像

这样的代码
play3d(spin3d(subscene = subsceneList()))