2017-03-16 110 views
1

我使用包{rgl}中的函数plot3d(),使用顶点坐标和线段创建了一个四面体。下面的代码使得mentioned plot填充三维图中两个线段之间的区域{rgl}

library("rgl") 
CCl4=c(5,5,5,10) 
Luminol=c(0.01,0.001,0.005,0.005) 
Na2CO3=c(0.01,0.01,0.1,0.05) 

plot3d(Luminol, Na2CO3, CCl4, type = "s") 

for(i in 1:4){ 
    for(k in 1:4){ 
       segments3d(x=Luminol[c(i,k)],y=Na2CO3[c(i,k)],z=CCl4[c(i,k)]) 
       } 
     } 

现在,我想以填充点之间的区域(优选地使用RGB颜色,所以我可以使用的α值限定的透明度),但我还没有找到一个多边形()之类函数在rgl中。有没有办法填补这个领域?

在此先感谢。

+0

你也可以使用'polygon3d()'如果你真的需要一个普通的多边形,而不是仅仅作为三角形麦克介绍。不知道为什么你找不到它...... – user2554330

回答

3

这是你在找什么?请求中未完全清楚。我为所有事物添加了颜色以帮助解决问题。

library("rgl") 
CCl4=c(5,5,5,10) 
Luminol=c(0.01,0.001,0.005,0.005) 
Na2CO3=c(0.01,0.01,0.1,0.05) 

clrs <- c("red","blue","green","darkgrey") 

plot3d(Luminol, Na2CO3, CCl4, type = "s",col=clrs) 

for(i in 1:4){ 
    clr <- clrs[i] 
    for(k in (i+1):4){ 
     v <- c(i,k) 
     segments3d(Luminol[v],Na2CO3[v],CCl4[v],color=clr) 
    } 
} 

for (i in 1:4){ 
    clr <- clrs[i] 
    v <- setdiff(1:4,i) 
    triangles3d(Luminol[v],Na2CO3[v],CCl4[v],alpha=0.5,col=clr) 
} 

产生:

enter image description here

+0

这正是我们所需要的。你添加的颜色是一个很好的触摸,真的很有帮助。对不清楚的不好意思。谢谢你的答案。 – CristhianParedes

相关问题