首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个大盒子里可视化许多3D盒子。

在一个大盒子里可视化许多3D盒子。
EN

Stack Overflow用户
提问于 2016-02-03 12:51:09
回答 1查看 1K关注 0票数 3

我需要以某种方式对一个包含许多3D框的3D盒进行交互可视化。

我的第一个粗略的想法如下。在2D里我可以用

代码语言:javascript
复制
x<-matrix(runif(25),nrow=5,ncol=5);
image(x)

要将矩阵中的每个单元格着色,使其看起来像大矩形,其中将包含小矩形。

怎么能把这个翻译成3D呢?假设在3D中,大盒子的大小是10x10x10。在实践中,我想选择盒中1000个元素中的每一个元素的颜色,我知道rgl可以用来制作交互式的3D图形,但是我对如何为3D数组中的每个元素着色有问题。

如果你有一些更好的解决方案的建议,我很乐意听到它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-03 15:47:09

如果我的理解是正确的,我认为这应该是可行的:

代码语言:javascript
复制
library(rgl)
grd <- expand.grid(x=seq(0,10,2), y=seq(0,10,2), z=seq(0,10,2))
grd$dist <- sqrt(grd$x^2 + grd$y^2 + grd$z^2) # distance to coordinate 0,0,0
grd$col <- rainbow(ceiling(max(grd$dist+1)))[ceiling(grd$dist+1)]
grd$alpha <- rep(c(0.2, 1), each=nrow(grd)/2)
open3d()
for(i in seq(nrow(grd))){
  shade3d( translate3d( cube3d(col = grd$col[i]), grd$x[i], grd$y[i], grd$z[i]) , alpha=grd$alpha[i])
}
rgl.snapshot("cube.png")

此示例用于6x6x6立方体,颜色基于中心到origen的欧几里德距离。希望这将向您展示一种方式,以适应您的颜色,因为你喜欢。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35177603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档