无法通过 rgl R 包的 plot3d() 函数绘制 rglscene 对象
Cannot plot rglscene object by means of plot3d() function of rgl R package
我在使用 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
中。但是,在执行当前列表的最后一个字符串后,出现了一个非常窄的 window 并且无法查看它是否包含任何内容。我该如何解决?
s中没有par3d组件。它是 s$rootSubscene 的一部分。 (这不是它的记录方式,但事实就是如此。)
如果你想把场景的大小加倍,你需要改变两个东西:windowRect 和 viewport。所以这对我有用:
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)
我在使用 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.892open3d()
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
中。但是,在执行当前列表的最后一个字符串后,出现了一个非常窄的 window 并且无法查看它是否包含任何内容。我该如何解决?
s中没有par3d组件。它是 s$rootSubscene 的一部分。 (这不是它的记录方式,但事实就是如此。)
如果你想把场景的大小加倍,你需要改变两个东西:windowRect 和 viewport。所以这对我有用:
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)