开放区域

更新时间:2024-07-05 23:11

开放区域是只有部分边界被定义或者其边界超出数据空间的几何区域,开放区域一般针对几何图形的边界不重要或者是无限的情况,例如,开放的直线、开放的平面和开放的空间,把这些开放形状描述为抽象的类。

简介

基本概念

开放区域的边界是由一段线段或者开放线段组成,它是一组更低维的几何图形,单边开放线段的边界包含一个端点,两边开放线段中剩余的部分,例如单边开放线段的内部是指除了端点之外直线上的点集,两边开放的矩形的内部是指一个矩形区域,这个区域的边界被删除并可以向两个方向无限扩展。

如图是二维空间中常见的几种开放区域,图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(右后方),其后的处理方法与基于对象方位的方向关系模型处理方法相同。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}