开放区域是只有部分边界被定义或者其边界超出
数据空间的几何区域,开放区域一般针对
几何图形的边界不重要或者是无限的情况,例如,开放的直线、开放的平面和开放的空间,把这些开放形状描述为抽象的类。
简介
基本概念
开放区域的边界是由一段线段或者开放线段组成,它是一组更低维的几何图形,单边开放线段的边界包含一个端点,两边开放线段中剩余的部分,例如单边开放线段的内部是指除了端点之外直线上的点集,两边开放的矩形的内部是指一个矩形区域,这个区域的边界被删除并可以向两个方向无限扩展。
如图是二维空间中常见的几种开放区域,图a和图b分别表示单边开放线段和两边开放线段,图c、图d和图e表示开放矩形。
如图所示给出了上图各类开放区域的属性和
构造函数通过构造函数可以构建每个类,通过端点和方向就可以定义OpenLine1,因为OpenLine2延伸了两个端点,所以需要内部端点和一个方向来定义类OpenLine1和OpenLine2的属性是相同的,他们之间不同的地方是各种操作的定义,类OpenRect1是由两个矩形的端点和一个代表开放方向的方向定义,类OpenRect2是一个两边开放的矩形,需要一个矩形的端点和一对有序的方向定义,类OpenRect3是半个平面或三边开放的
矩形,需要OpenLine2和一个方向定义。它们都是开放区域的子类。
扩展概念
由于在
定量的方向关系查询中还需要在数据空间中进行任意角度的查询,上述开放区域的基本抽象类远远不能满足需要,所以在这里他们进行
扩展,如图所示,扩展后的开放区域包括图a所示的开放
梯形和图b类所示的开放扇形两类。
用开放区域建立方向关系模
绝对参考框架下的方向关系模型
我们以绝对参考框架为例,界山如可利用开放区域建立方向关系模型,给定两个区域对象TO和RO,确定目标对象TO关于参考对象RO的对象,首先求出参考对象RO的MBR,根据求得的MBR把RO的四周划分为九个方向区域,如图所示,MBR是矩形ABCD。
从图片中可以看出,这九个方向区域中有八个是开放矩形,其中NE、NW、SE和SW是两边开放矩形,N、E、W和S是单边开放矩形,为了确定目标对象TO关于参考对象RO的方向,只需要检验TO落在RO的哪个方向区域就可以了。该运算可转化为TO和方向区域之间的重叠关系运算,先确定TO与那些方向区域重叠,然后把和TO相交的所有方向区域合并,得到最终结果。如公式North West(TO,RO)<=>openOverlap(TO,NW)其他的方向关系也都可以这样处理。
基本对象方位的方向关系模
基于对象方位的方向关系是目标对象关于参考对象方位(基于参考对象运动方向)的方向。参考对象是一个有方位的对象,如图所示,给定两个区域对象A和B,确定目标对象A关于参考对象B的方向,首先求出B的和其方位平行MBR,再根据求得的MBR把B的四周划分为九个区域,SP(重合)、EF(正前方)、EB(正后方)、EL(正左方)、ER(正右方)、LF(左前方)、LB(左后方)、RB(右后方)、,如图b所示,在图a中说明了参考对象B的方位、、、和和B的四个顶点。参考对象的前方和后方四个相互垂直方向向量front和right表示,通过使用关于方向的reverse运算,那么参考对象的左方和后方可表示为front.reverse()和right.reverse()。为了确定目标对象A关于参考对象B的方向,通过检验A落在B的哪个方向区域来确定,如图表示。
把这九个方向区域标识成空间对象,九个对象区域中有八个是开放矩形,RF、LF、LB和RB是两边开放的矩形,EF、EB、EL和ER是单边开放的矩形。
这里定义九种谓词,每个谓词都将检查目标对象A是否和参考对象B相应的方位的方向区域相交。当且仅当目标A相交于B的EF、EB、ER、EL各个区域时,谓词EF(A,B)、RB(A,B)、ER(A,B)、EL(A,B)的返回值为真。同样的,当且仅当目标对象A相交于B的RF、RB、LF、LB各个区域时,谓词RF(A,B)、EB(A,B)、LF(A,B)、LB(A,B)的返回值为真。如图所示,这些谓词使用isBetween运算定义。例如:当且仅当A中存在一点P。点P在方向区域之内,即方向在front和right之间,并且方向在front和right.reverse()之间,满足A在B的前方。
基于观察者的方向关系模型
基于观察者的方向是指从观察者的角度观察的方向关系,在这个系统中有三个相关的成分:目标对象A、参考对象B和观察者。观察者有自己的方位。给定三个成分,就可以从观察者角度估计目标对象A和参考对象B的方向关系。
基于观察者的方向关系模型与基于对象方位的方向关系模型类似,不同之处在于,在确定参考对象方位平行的MBR时,改为确定参考对象与观察者方位平行的MBR,然后同样根据求得的MBR把参考对象的四周划分为九个方向区域,SP(重合)、EF(正前方)、EB(正后方)、EL(正左方)、ER(正右方)、RF(右前方)、LF(左前方)、LB(左后方)、RB(右后方),其后的处理方法与基于对象方位的方向关系模型处理方法相同。