我的rgl.spheres需要帮助。我有下面的代码,并且在rgl设备内以球形形式添加一组数据正在(对于整个数据集)在3D中工作。我只是创建了这些数据的子集,并希望以不同的颜色绘制它们,甚至定制它们以为每个子集添加一个椭圆。
就像通常在2D中使用“正常” R型图一样,我只是像打开图一样
plot(x,y, col="red", cex=1, ...)
使用“ points”命令,将每个子集添加到初始图下方。我想为rgl设备使用相同的结构,但是即使在rgl.spheres(....add=T)
内部也无法正常工作。有没有人想克服这个问题?致以最诚挚的问候,并非常感谢克里斯
我已经尝试在rgl.spheres(... add=T)
中使用,并试图(自己)找到诸如add.spheres(...)或rgl.add.spheres(...)之类的逻辑命令,但是这些命令显然不起作用。
rgl.open()
x <- c(1,2,3,4,5,6)
y<-c(9,5,2,7,7,3)
z<-c(0.1,1,1,4,6,7)
x1 <- 1
y1 <- 9
z1 <- 0.1
rgl.spheres(x,y,z, r = 0.1, color = "grey")
rgl.spheres(x1,y1,z1, r=0.1, color="red", add=T) # is not working
因此,如果对rgl中的球体或其他对象有类似“ points”命令的类似命令,则应该有一个红色球体和一些灰色球体。
答案 0 :(得分:0)
您可能应该使用rgl
阅读有关vignette("rgl", package="rgl")
的小插图。但快速总结:
rgl.*
函数。它们是低级功能,除非您对它们的工作原理非常熟悉,否则将给您带来麻烦。使用*3d
函数,例如open3d
,spheres3d
等spheres3d
)总是添加到当前场景中。您不需要add = TRUE
。(1, 9, 0.1)
,因此只有第一个会出现。您可以通过以下方式覆盖它
或通过使用材质属性depth_test
的设置,使第二条语句绘制更大的球体(其侧面将更靠近查看器,因此可见)。设置depth_test = "lequal"
意味着将显示最后绘制的内容。将所有这些放在一起,这是您的代码的修订版:
library(rgl)
open3d()
x <- c(1,2,3,4,5,6)
y<-c(9,5,2,7,7,3)
z<-c(0.1,1,1,4,6,7)
x1 <- 1
y1 <- 9
z1 <- 0.1
spheres3d(x,y,z, r = 0.1, color = "grey")
spheres3d(x1,y1,z1, r=0.1, color="red", depth_test = "lequal")