2016-04-14 47 views
0

我遇到了R包rgl(版本0.95.1441)的问题,特别是我无法从文档的“示例”部分重现代码该scene3d rgl功能:无法通过rgl的plot3d()函数绘制rglscene对象R包

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

我正在Windows 8

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) 

我能够愈伤组织后产生3D图像下使用的3.2.4版本和R工作室0.99.892 [R ng persp3d函数,我可以将rglscene对象保存到变量s中。但是,在执行本列表的最后一个字符串之后,出现了一个非常狭窄的窗口,无法查看它是否包含任何内容。我如何解决它?

回答

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) 
+0

@ user2554330非常感谢你! – Denis

+0

此外,从我的麻烦的原因之一是多编辑'''变量。只有当我在创建之前明确地删除变量(我多次使用代码进行播放,所以我也多次创建了所提到的变量),代码才能正确工作。例如:'... rm(s)s < - scene3d()...'而不是''s < - scene3d()...的简单覆盖''我不明白为什么,但是对于我这是一个重要的方面。 – Denis