我想创建一个将3D测深数据(海)与2D多边形(陆地)相结合的图形。
例如,在这样的情节(http://chenangliu.info/en/wp-content/uploads/2014/02/wireframe.jpg)中,我想在紫色区域添加一个平面,以及点,文字...... ...
我注意到了rasterVis包,它完美地绘制了我的测深光栅。但是,我不知道如何添加土地,就像常规的2D多边形一样。我尝试通过将土地面积的网格值设置为零来解决这个问题,但结果并不完美,因为边界不清晰,有湖泊,......应该不应该是3D。
所以这很好用:
library(rasterVis)
pal<-colorRampPalette(c("darkblue","lightblue","green"))
#----this doesn't help
bathy[bathy>0,]=0
#----
plot3D(bathy,col=pal)
这不是:
polygon3d(europa) # error: Error: n > 2 is not TRUE
最后一个函数不起作用[idem for polygon()],就像我的其他函数尝试这样做一样。 我想这不是很难做到,但我无法找到任何这方面的例子。所以任何提示都会受到欢迎。
答案 0 :(得分:1)
您必须根据其规格使用polygon3d
。由于您不提供重现代码的数据,因此我使用plot3D
帮助页面中的示例:
library(raster)
library(rasterVis)
library(rgl)
data(volcano)
r <- raster(volcano)
extent(r) <- c(0, 610, 0, 870)
plot3D(r)
现在,您可以使用包rgl
中定义的函数添加3D多边形:
x <- c(30, 400, 400, 30)
y <- c(30, 30, 500, 500)
polygon3d(x, y, z=rep(100, 4), col = 'red')
polygon3d(x, y, z=rep(120, 4), col = 'blue')
polygon3d(x, y, z=rep(140, 4), col = 'black')