ArcObjects SDK 018 Geometry

1、Geometry体系结构

如果要看完整的Geometry体系结构,那么可以去查看帮助中的类结构图,非常完整和严谨。可以通过下图方式打开。

image1.png

点击打开后,会发现里面的结构非常复杂。但如果我们抽丝剥茧的看的话,其结构逻辑又非常严谨。如下图所示。

image2.png

这样看起来就比较繁杂,我们可以把我们常用的Geometry提取出来,并把其关系连接起来,得到一个相对简单的结构。

image3.png

2、IRelationalOperator接口

该接口为几何体的相关性判断接口,该接口的定义如下。

image4.png

主要判断几何体之间是都存在包含、交叉、重叠、在内部等,具体点开每个函数,都会有图形说明,描述的非常详细和直观。例如交叉关系的帮助页如下图所示。

image5.png

这段文字说的是Crosses函数判断只对线-线、线-面和面-线有效,并且在图片中说明了哪种算是Crosses关系。

3、ITopologicalOperator接口

该接口为空间拓扑计算接口,该接口的定义如下。

image6.png

这个接口主要对几何体的拓扑结构进行分析计算,例如求一个几何体的缓冲区、得到其外包凸多边形、裁切、得到相交几何体、合并等。同样进入每个函数的详细页面,都会有详细的说明以及直观的示意图。以Buffer为例,如下图所示。

image7.png

说明的大概意思为,缓冲区距离设置的值是和几何体本身的单位是一致的。可以设定复制,在多边形内部生成几何体,但折现不能这么使用。这些函数只能应用point, multipoint, polyline and polygon,如果需要使用Line, Circular Arc, Elliptic Arc等,则需要转换以下。例如Elliptic Arc可以先转换成Polygon,再进行运算。

4、其他功能

IGeometry. Project,该函数可以把当前几何体投影成指定的空间参考。ITransform2D和ITransform3D提供了几何体的旋转、平移以及其他一些复杂的几何体空间转换功能。IHitTest接口,平产用的不是太多,例如我们点击一个Polygon的时候,如果只是判断是否点击到了多边形,则通过IRelationalOperator接口判断即可。但如果想具体知道点击了那个部分、那个边线或者节点,则可以使用IHitTest接口。

posted @ 2022-12-21 11:51  mytudousi  阅读(85)  评论(0编辑  收藏  举报