几何对象位置判断是进行拓扑关系运算的重要一环。在与面状实体的拓扑关系运算中,几何对象在面的内部和外部被认作是两种不同的拓扑关系,几何关系图表达强调几何对象间的层次关系,对于位置关系的表达较弱。因此,在推导实体间的拓扑关系时,需要几何对象位置判断加以辅助,根据几何对象间不同的位置关系可以推导出不同的拓扑关系。位置判断主要针对几何对象与面状几何对象之间,包括点与多边形、线与多边形、多边形与多边形的位置判断。
1.点与多边形的位置判断
点与多边形的位置判断是计算几何中一个非常基本但是十分重要的算法。常用的算法是射线法和转角法,射线法的算法思想是:以点P为起点,向任意方向作射线L,射线L穿过多边形边界的次数称为交点数目,当交点数目是奇数时,点P在多边形外部,当交点数目是偶数时,点在多边形内部。
这个方法从直觉上很容易理解,每次射线穿过多边形的一个边,它的出入特性改变了,最终,任何射线都穿出多边形。因此,如果点在多边形的内部,那么穿越边界(“→”)的次序是in→out→……→in→out,并且穿越的次数为奇数,同样,如果点在外部,总的穿越次数为偶数次,out→……→in→out。
2.线与多边形的位置判断
线与多边形的位置判断,首先可以进行线段与多边形的位置判断,线与多边形的位置判断可由线段的位置关系进行推导。
线段在多边形中的位置判断,首先是线段端点的位置判断,如果线段的一个端点在多边形的外部,则线段必然不在多边形内部,因此线段的两个端点都在多边形内部是判断线段是否在多边形内部的第一个条件。但由于多边形有可能是凹多边形,所以这不能成为位置判断的充分条件。
其次是线段与多边形的交点判断,当两个线段相交时,交点可以在线段的端点处理,也可以在线段的内部(当交点都不在两个线段的端点处时,称两线段内交)。由于多边形的内部和外部在多边形的边的两侧,当线段和多边形的某条边内交时,线段一定会有一部分在多边形外。因此,线段与多边形的所有边都不内交是判断线段是否在多边形内部的第二个条件。(www.daowen.com)
线段和多边形的交点是否是线段的端点,并不会影响线段在多边形内部的判断。但如果线段和多边形的顶点相交,则必须判断多边形是否包含两相邻交点之间的线段,当两相邻交点的中点在多边形内部时,则该线段一定在多边形的内部。
因此,在线段与多边形的位置判断的计算中,首先应判断线段和多边形的边是否有内交的情况,如果线段和多边形的某条边内交,则线段一定在多边形外部;如果线段和多边形的每条边都不内交,则线段和多边形的交点在线段的端点处或者是多边形的顶点位置,这时只需要判断相邻两交点的中间点是否在多边形内部。
有了线段与多边形的位置关系判断方法后,可以推导出线与多边形的关系,通过构成线的每条线段与多边形的位置判断结果,得到线与多边形的位置关系。如果每条线段都在多边形内部,则线在多边形的内部,否则线在多边形的外部。
3.多边形与多边形的位置判断
通过构成多边形的每条线段与多边形的位置判断,可以推导出多边形与多边形的位置关系。如果构成多边形的每条线段都在多边形内部,则多边形在多边形的内部,否则多边形在多边形的外部。
4.几何对象与复合面的位置判断
通过几何对象与复合面的外环与内环的关系,可以推导出几何对象与复合面的位置关系。如果几何对象同时在外环的内部和内环的外部时,判断其在复合面的内部。如果几何对象在外环的外部或内环的内部时,判断其在复合面的外部。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。