首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向rasterVis中添加平面多边形

向rasterVis中添加平面多边形
EN

Stack Overflow用户
提问于 2014-06-26 13:28:29
回答 1查看 370关注 0票数 1

我想要创建一个图形,将三维测深网格数据(sea)与2D多边形(陆地)结合起来。

例如,在这样一个图(http://chenangliu.info/en/wp-content/uploads/2014/02/wireframe.jpg)中,我想在紫色区域添加一个平面,以及点、文本、.

我注意到了rasterVis包,它完美地绘制了我的测深光栅。然而,我不知道我怎么可能增加土地,就像一个普通的2D多边形。我试图通过将土地面积的网格值设置为零来解决这个问题,但是结果并不完美,因为边界不清晰,有湖泊,……不应该是3D的。

所以这很好用:

代码语言:javascript
复制
library(rasterVis)
pal<-colorRampPalette(c("darkblue","lightblue","green"))
    #----this doesn't help
     bathy[bathy>0,]=0
    #----
plot3D(bathy,col=pal)

这并不是:

代码语言:javascript
复制
polygon3d(europa)  # error: Error: n > 2 is not TRUE

最后一个函数对多边形()不起作用,就像我的其他尝试一样。我想这不是太难,但我不能详细说明这方面的任何例子。所以任何暗示都是值得欢迎的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-27 12:27:57

您必须根据polygon3d的规格使用它。由于您没有提供数据来再现代码,所以我使用plot3D帮助页面中的示例

代码语言:javascript
复制
library(raster)
library(rasterVis)
library(rgl)

data(volcano)
r <- raster(volcano)
extent(r) <- c(0, 610, 0, 870)

plot3D(r)

现在,您可以添加具有在包rgl中定义的函数的3D多边形:

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24431883

复制
相关文章

相似问题

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