R: rgl 3D plots bounding box faces 颜色和笔画

R: rgl 3D plots bounding box faces colors and strokes

我目前正在使用 rgl 和 persp3d() 绘制简单的 3D 图。我尝试使用 bbox3d() 但我无法使框周围的笔画(back/bottom 中的 3 个平面)出现(类似于 axes3d()):

axes3d()的问题是边界box/planes没有填充颜色(至少我不知道如何实现)。 感谢您的宝贵时间!

这里是生成实际版本的代码:

library("rgl")
x=c(0,1,2,3,4,5,6)
y=x
z=outer(x,y,function(x,y){x+y})
persp3d(x,y,z,col="grey")
bbox3d(lwd=5,box=T,color=c("grey","black"))

您可以将 segments3dmarginfloating 属性结合使用。例如:

library("rgl")
x=c(0,1,2,3,4,5,6)
y=x
z=outer(x,y,function(x,y){x+y})
open3d()
#> glX 
#>   1
persp3d(x,y,z,col="grey", axes=FALSE)
limits <- par3d("bbox")
bbox3d(col=c("gray", "black"), polygon_offset = 1)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="x++",
           floating = TRUE)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="x--",
           floating = TRUE)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="y++",
           floating = TRUE)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="y--",
           floating = TRUE)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="z++",
           floating = TRUE)
segments3d(x = c(-Inf, Inf),
           y=0, z=0,
           lwd=5, margin="z--",
           floating = TRUE)

reprex package (v2.0.1)

于 2022-03-18 创建

它并不完美,因为线段在角落处的渲染效果不佳,而且在您进行任何旋转之前的初始显示中似乎存在错误。 ?mtext3d 帮助主题中描述了边距对象的有趣坐标系。