如何解决R:rglwidget playwidget()
我想创建一个带有滑块的 rgl 小部件,使用 playwidget()
为每个子集添加不同的文本注释。
如果我运行以下
clear3d()
a1 <- spheres3d(xyz.coords(matrix(sample.int(100,81),ncol = 3)),col="blue",radius = 2)
text3d(10,10,"text1")
a2 <- spheres3d(xyz.coords(matrix(sample.int(100,27),col="red",radius = 2)
text3d(30,5,"text2")
a3 <- spheres3d(xyz.coords(matrix(sample.int(100,9),col="green",radius = 2)
text3d(5,50,"text3")
rglwidget() %>%
playwidget(start = 0,stop = 2,interval = 1,components = c("Reverse","Play","Slower","Faster","Reset","Slider","Label"),labels = c("a1","a2","a3"),subsetControl(1,subsets = list(aa=a1,bb=a2,cc=a3)))
我为所有子集修复了 3 个文本注释。知道如何解决这个问题吗?
一个更普遍的问题是如何将额外的 rglLowlevel
对象(例如 Box3d()
)绑定到每个单独的子集,以便在移动滑块时进行更改。
谢谢
解决方法
spheres3d
和 text3d
的结果都是 rgl id,它们只是具有类的整数值。您可以使用 c()
将它们连接到向量中。将您的示例修改为此,它可以工作:
library(rgl)
clear3d()
a1 <- c(spheres3d(xyz.coords(matrix(sample.int(100,81),ncol = 3)),col="blue",radius = 2),text3d(10,10,"text1"))
a2 <- c(spheres3d(xyz.coords(matrix(sample.int(100,27),col="red",text3d(30,5,"text2"))
a3 <- c(spheres3d(xyz.coords(matrix(sample.int(100,9),col="green",text3d(5,50,"text3"))
rglwidget() %>%
playwidget(start = 0,stop = 2,interval = 1,components = c("Reverse","Play","Slower","Faster","Reset","Slider","Label"),labels = c("a1","a2","a3"),subsetControl(1,subsets = list(aa=a1,bb=a2,cc=a3)))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。