zoukankan      html  css  js  c++  java
  • ArcEngine 体系结构Geometry几何体的抽象和点的表达AO学习资料笔记

    在使用 ArcEngine 进行开发的时候,用的最多的就是其 Geometry 库中的对象,Geometry 库也是 ArcEngine 的基础.这一段时间打算将开发中用到过的和
    Geometry 有关的内容总结一下,其实这些内容基本上在 ArcEngine 的帮助 文档中都可以找到.
    Geometry 库在体系结构上分为下面几个部分:
      1.空间对象的表达和构造
      2.空间对象的拓扑运算和关系判定
      3.空间对象的变换(在这里引入了地理坐标系统和投影坐标系统)
      4.其他辅助接口
    本篇主要论述空间对象的表达,下一篇将讨论空间对象的构造.
      ArcEngine 中的几何体的主要层次表示如下

    其中 IGeometry 处于最顶端,是所有几何体的基接口,它包含了 ArcEngine   对于几何体的一般定义。主要包括四个属性:维数、是否为 Empty、外包、图形是否
    为空和空间参考(SpatialReference)。这四个方面都是很重要。其中维数(Dimension)在涉及到几何运算的时候会被经常用到,但是由于几何对象的操作都比较特殊,而且我们都有比较直观的感受,所以在开发的过程中经常忽略这个属性也不会导致错误.包络面是一个特殊的概念,它表达的是一个几何图形的外包矩形,这个外包矩形在作空间关系判断的时候可以很快的作出非判断。图形为空是由于计算机的处理所引入的一个概念,计算机操作可能会产生一些实际上不符合理论要求的几何图形,其中有一些情况就会使得几何图形为空。例如点的坐标为 Double.NaN(NaN 为 IEEE 定义的一个特殊数,表示不是一个可以理解的数值).或者某个多边形只有三个共线的点等等。这些情况下几何图形显然不能参与运算了,但是仍然可以被存储,这些就是 Empty 的图形,在获取几何图形后必须要先判断其是否为 Empty,如果是就不能参与几何运算。空间参考为几何图形定义两个方面的内容:其一是几何图形所在的坐标系统,其二是告诉你数据的有效精度,在计算机中坐标数据一般都使用浮点数,但是浮点运算是有误差的。所以必须制定精度才能比较准确的运算。否则就会出现计算不对称的情况例如:1/3*3 一般都不等于 1。但是如果指定了精度就可以解决这类问题了。  
      IGeometry 派生出四个子类
      IPoint 表示一个点
      IMultipoint 用多个点表示的一个对象
      IEnvelope 表示一个包络面(也就是外包)
      ICurve 表示曲线
    IPoint 表示一个点,从概念上讲特别简单,但是 ESRI 在 IPoint 这个接口上添加了两个特别的方法:
      ConstrainAngle(double constrainAngle,IPoint anchor,bool allowOpposite)这个方法的运算结果如下所述:
       首先用anchor和constrainAngle在一个以anchor为极点的极坐标系中构造一个无限的射线(矢量)然后从 IPoint 当前的坐标出发作一个垂直于这条射线的直线,交点就是 IPoint 的新的当前值.如果 allowOpposite 为 true,那么还可以向射线的反向延长线作垂线。这个方法可以用来约束新点必须在某条直线上。如图所示

    ConstrainDistance(double distance,IPoint anchor);这个方法的运算结果如下所示:
     首先以anchor为圆心distance为半径作一个圆,然后连接anchor和IPoint的当前点位置构成一条射线,这条射线或者其延长线会和圆有一个交点,这个点就是 IPoint 的当前位置。这个方法可以用来约束新点距离某个点的距离必须为多少。如图所示:

     

    IPoint 的构造方法有两大类:
      1.直接构造.开发者 new 一个 PointClass 对象自己手工给它设定坐标的值.
      2.使用 IConstructPoint 来构造.IConstructPoint 提供了 10 中构造点的方法.
    关于 IPoint 的构造将在专门的文章中列出。

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/hl3292/p/1851069.html
Copyright © 2011-2022 走看看