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

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

但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多面体(multipatch)解析(一)的更多相关文章

  1. ArcGIS三大文件格式解析

    原文:ArcGIS三大文件格式解析 Shape数据 Shapefile是ArcView GIS 3.x的原生数据格式,属于简单要素类,用点.线.多边形存储要素的形状,却不能存储拓扑关系,具有简单.快速 ...

  2. ArcGIS多面体(multipatch)解析——引

    多面体(multipatch)结构在ArcGIS数据结构中是与点.线.面平行的一种数据结构,对于ArcGIS三维来说是一个很核心的结构,有了它,ArcGIS平台才可以灵活的描述规则和不规则的三维实体. ...

  3. 《ArcGIS Runtime SDK for Android开发笔记》——(6)、基于Android Studio的ArcGIS Android工程结构解析

    1.前言 Android Studio 是第一个Google官方的 Android 开发环境.其他工具,例如 Eclipse,在 Android Studio 发布之前已经有了大规模的使用.为了帮助开 ...

  4. ArcGIS空间分析工具

    1. 3D分析 1.1. 3D Features toolset 工具 工具 描述 3D Features toolset (3D 要素工具集) Add Z Information 添加 Z 信息 添 ...

  5. Sketchup+ArcGIS三维建模与管理

    一.软件安装及其说明 1.需要安装的软件及其安装: 这份报告主要涉及到的有三个需要安装的软件ArcGIS9.3(或9.2) .Sketchup6.0和SketchUp6 ESRI 插件. ArcGIS ...

  6. arcgis api for js入门开发系列十叠加SHP图层

    上一篇实现了demo的热力图,本篇新增叠加SHP图层,截图如下: 叠加SHP图层效果实现的思路如下:利用封装的js文件,直接读取shp图层,然后转换geojson,最后通过arcgis api来解析转 ...

  7. arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  9. Flex 加载dwg

    之前写的几种格式不是专门gis格式,这次来说说加载dwg.首先dwg格式不同于dxf格式,虽然autocad都能加载进去,真正用的比较多的是dwg格式,反正测绘,国土规划部门都是,吐槽下,然而auto ...

随机推荐

  1. crawler_爬虫开发的准备工作【工具】

    俗话说工欲善其事必先利其器,做java网络爬虫开发分析网页的分析工具,抓包工具比不可少,一下是个人常用的几个工具. 1.firefox低版本是为了支持httpwather , ie各个版本都支持htt ...

  2. 64bit Centos6.4编hadoop-2.5.1

    64bit Centos6.4编hadoop-2.5.1   1.说明 a)       因为从apache下载下来的tar.gz包是用32 bit编译的,全部假设用Linux 64作为hadoop的 ...

  3. 你知道OneNote的OCR功能吗?office lens为其增大威力,中文也识别

    原文:[原创]你知道OneNote的OCR功能吗?office lens为其增大威力,中文也识别 OneNote提供了强大的从图片中取出文字的功能,大家只要装上了桌面版OneNote(本人用的2013 ...

  4. Linux基础正则表达式:grep,sed

    先说明语系对正则表达式的影响    LANG=C:0,1,2,3,4...A,B,C,D...Z a b c d ... z    LANG=zh_CN:0,1,2,3,4...a A b B c C ...

  5. [CLR via C#]5.1 基元类型

    原文:[CLR via C#]5.1 基元类型 某些数据类在开发中非常常用,以至于许多编译器允许代码已简化的语法来操作它们.例如可以使用以下语法来分配一个整数: System.Int32 a = ne ...

  6. Effective C++ 10

    10.假设写了operator new,就要同一时候写operator delete. 为什么要写自己的operator new和delete,首先这不叫重载,这叫隐藏. new仅仅是用来申请空间,而 ...

  7. how tomcat works 读书笔记九 Session管理

    在看本文之前,请先查阅相关Session与Cookie的资料. 这篇资料不错 http://blog.csdn.net/fangaoxin/article/details/6952954 Catali ...

  8. Post和Get差异

    GET和POST差别例如以下: 1,生成方式 get方式有四种:1)直接在URL地址栏中输入URL.2)网页中的超链接.3)form中method为get. 4)form中method为空时.默认是g ...

  9. nodejs开发aspnet5项目

    结合nodejs开发aspnet5项目 1.安装kvm   官方教程地址:https://github.com/ligershark/Kulture 打开 powershell命令窗口,找不到可以在开 ...

  10. 【剑指offer】Q32:从1至n整1出现的次数(python)

    def q32(n, len): if n < 0: return 0 elif n <= 1: return n total = 0 while n > 0: if n >= ...