无法通过rgl R包的plot3d()函数绘制rglscene对象

时间:2016-04-14 20:30:36

标签: r rgl

我遇到了R包rgl(版本0.95.1441)的问题,特别是我无法重现scene3d rgl函数文档的示例部分中的代码:

http://www.inside-r.org/packages/cran/rgl/docs/plot3d.rglscene

我在Windows 8下使用版本3.2.4的R和R studio 0.99.892。

open3d()
z <- 2 * volcano        # Exaggerate the relief
x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
persp3d(x, y, z, col = "green3", aspect = "iso")

s <- scene3d()
# Make it bigger
s$par3d$windowRect <- 1.5*s$par3d$windowRect
# and draw it again
plot3d(s)

我可以在调用persp3d函数后生成3D图像,并且能够将rglscene对象保存到变量s中。但是,在执行当前列表的最后一个字符串之后,出现了一个非常窄的窗口,并且无法查看它是否包含任何内容。我怎么解决它?

1 个答案:

答案 0 :(得分:2)

s中没有par3d组件。它是s $ rootSubscene的一部分。 (这不是它的记录方式,但它就是这样的。)

如果想要将场景的大小加倍,则需要更改两件事:windowRect和视口。所以这对我有用:

open3d()
z <- 2 * volcano        # Exaggerate the relief
x <- 10 * (1:nrow(z))   # 10 meter spacing (S to N)
y <- 10 * (1:ncol(z))   # 10 meter spacing (E to W)
persp3d(x, y, z, col = "green3", aspect = "iso")

s <- scene3d()
# Make it bigger
par3d <- s$rootSubscene$par3d
par3d$windowRect <- 1.5*par3d$windowRect
par3d$viewport <- 1.5*par3d$viewport
s$rootSubscene$par3d <- par3d

# and draw it again
plot3d(s)