ArcGIS多面体(multipatch)解析(一)

从几何学的角度来说,再复杂的三维形状都可以通过足够多,足够小的三角形组合起来表达。比如矩形可以表达成两个三角形,如下图:

圆柱形可以由多个三角形排列而成:


但ArcGIS中的多面体构成并没有采用这种“简单三角形法”来组织,而是由如下三种基础结构构成:

1)Triangle Strip ,笔者翻译为:三角片

2)Triangle Fan,翻译为:三角扇

3)Rings,翻译为:环

下面我们将对这三种结构进行一一讲解,首先是Triangle Strip。三角片可以有序的排列在一起形成一个多面体,ArcGIS记录该多面体并不记录所有三角形以及三角形的每个节点,而是只记录类型为Triangle Strip,并按顺序0,1,2,3,4,5...n记录节点顺序即可。如下图,这样记录是不是就简洁多了?


Triangle Fan(三角扇),与三角片类似,三角扇也可以有序的排列在一起构成一个多面体,只不过ArcGIS记录的节点顺序有所不同。ArcGIS首先记录下面这个多面体是由三角扇构成,再按照0,1,0,2,0,3,.....,0,n的顺序记录节点即可描述如下“金字塔”形状。(注意:下面这个配图不是平面图形,而是一个金字塔的立体形状,0点是金字塔尖,1,2,3,4节点是塔底)


下面难度偏高的部分来了,就是Ring(环)结构。环是个相对宽泛的定义,笔者简单描述为三个节点以上(不包括3个)构成的多边形,节点可以不是共平面的。比如四边形,比如下面三个不规则形状,其中第二个所有节点是共平面的,一、三不是,但一个环都是“一笔可以画成的”,中途不能“抬笔”。

图一


图二

图三

有了三角片、三角扇和环这三种基础构成单元后,就可以按照平面构成多面体了。多面体由多个平面构成,但出于一些约束条件,逻辑上一个平面中能包括哪些东西,ArcGIS中是有明确规定的,关于这部分,我们下一篇再介绍。

ArcGIS Engine 10.1是个地理信息系统的开发平台,可以用来构建和定制地理空间应用程序。绘制多面体(Polyhedron)是其中的个功能。 在ArcGIS Engine 10.1中,绘制多面体可以通过几何对象类(Geometry Class)来实现。可以使用Polygon或Multipatch类来创建多边形或多面体。 要绘制多面体,首先需要确定多面体的坐标和形状。可以通过定义多边形的顶点坐标来创建个Polygon实例,或者通过使用多边形的外观和高度属性来创建Multipatch实例。 对于Polygon类,需要提供个点集合,并按照顺时针或逆时针方向定义多边形的边界。可以使用Polygon的AddPoint方法将点逐添加到多边形中,然后调用Finish方法来完成多边形的创建。 对于Multipatch类,除了点集合外,还需要定义多面体的外观和高度属性。可以使用Multipatch的AddRing方法将多个环添加到多面体中,然后使用AddPatch方法将这些环连接起来,并使用Height属性来设置多面体的高度。 完成多面体的创建后,可以使用绘制方法将其显示在地图中。可以调用GraphicsLayer的AddGraphic方法将多边形或多面体添加到图形层中,然后在地图视图中刷新图层,即可实现多面体的绘制。 绘制多面体ArcGIS Engine 10.1中的个常见需求,可以通过上述的步骤来完成。同时,还可以根据具体的需求进行更复杂的定制,如添加纹理、边框等效果来美化多面体的显示效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值