最大斜率射线算法判定点与多边形空间位置关系的方法

文档序号:6568326阅读:426来源:国知局
专利名称:最大斜率射线算法判定点与多边形空间位置关系的方法
技术领域
本发明涉及计算机图形学中判断点与多边形位置关系的技术领域,尤其涉及一种最大斜率射线算法判定点与多边形空间位置关系的方法。
背景技术
判定点与简单多边形的拓扑关系是地理信息系统、地理学、分析计算机图形学、计算几何、计算机辅助设计、图形图像处理等领域的一个非常基础并且常见但又十分重要的问题,因此多年来国内外学者对于这个问题作了大量的研究,形成了很多种算法来解决这个问题。目前常见的方法有射线法、叉积计算法、旋转角度法、相关边法、面积判别法等。其中叉积计算法要同时对所有边进行叉积计算;旋转角度法要进行复杂的三角运算;相关边法要遍历多遍所有边寻找对应相关边,并且需对相关边进行叉积计算;面积判别法在预处理时需要耗费大量时间。而射线法原理容易理解,算法实现简单,应用最为广泛,并且只有射线法才能解决点与内部有空洞的环状多边形的拓扑关系。但是射线法在实际使用中,需要处理一些特殊的临界状况,例如射线与多边形某一条边共线或者射线经过多边形顶点。

发明内容
本发明的目的是为克服现有技术存在的问题,提供一种最大斜率射线算法判定点与多边形空间位置关系的方法。最大斜率射线算法判定点与多边形空间位置关系的方法的步骤如下1)以待判定点P(1为原点建立直角坐标系;2)比较待判定点Ptl的X坐标和y坐标与多边形P中各点X坐标和y坐标的最大值和最小值,当存在待判定点Ptl的X坐标小于多边形P中各点X坐标的最小值、待判定点 Po的X坐标大于多边形P中各点X坐标的最大值、y坐标或待判定点Po的y坐标小于多边形P中各点y坐标的最小值或待判定点Ptl的y坐标大于多边形P中各点y坐标的最大值, 直接确定待判定点Po在多边形P的外部;3)判断待判定点P。的χ坐标 、y坐标yQ与多边形P(Pll)2…Pn)各条边PiPw,i = 1,2,3,…,η 是否|薛足;χ0(γ「γ +1)-γ0(χ「χ +1) = Xi^yi-XiYi+! Λ η η(χ”χ +1) ^ x0 ^ max (Xi, xi+1) Λ min(yi,yi+1) ^ y0 ^ max (yi yi+1), i = 1,2,3,…,n,如果是,则待判定点 p。(x。,y0) 在多边形P的边上;4)判断待判定点ρ。的χ坐标&、y坐标yQ与多边形P中各点χ坐标和y坐标的最大值和最小值 Xmax, Xmin,ymax,ymin 是否满足 =Xmin V X0 = xmax V y0 = ymin V y0 = ymax,如果是,则待判定点Po (χ。,Y0)在多边形P的外部;5)找出多边形P的最大斜率,若大于等于10,则从待判定点Ptl出发做一条斜率为最大斜率两倍的射线;若小于10或不存在,则做一条斜率为10的射线;6)计算射线与多边形的交点个数,奇数则Ptl在多边形P的内部,否则待判定点Ptl在多边形P的外部。所述的步骤2)包括(1)求出多边形P中各点χ坐标和y坐标的最大值和最小值,分别记为Iax,Xfflin,
Ymax,^min ‘(2)如果待判定点Ptl的χ坐标&大于iax、χ坐标&小于iin、y坐标yQ大于ymax 或1坐标Iq小于ymin,则待判定点Po(χ。,y0)在多边形P的外部。所述的步骤5)包括(1)计算多边形 Ρ(Ριρ2···ρη)中各点的斜率 I^ki = (Yi-Yo)Z(Xi-Xo)'! = 1,2,…, n,取出Ici中最大的记为kmax,如果kmax小于10,则kmax令=10 ;(2)以待判定点Ptl为起始点向右上方做一条斜率为2kmax的射线。所述的步骤6)包括(1)找出射线上Y轴坐标等于ymax的点,记为Pm(xm,ym),令i = 1,射线与多边形的交点个数 M = O, pn+1 (xn+1, yn+1) = P1 (X1, Y1);(2)如果多边形 P 的一条边 PiPw 满足(Xi < X0 Λ xi+1 < x0) V (Yi < y0 Λ < y0) V (yrYo > 0 Λ Gi-Yci) < kmax (Xi-X0) Λ Xi-^ >
权利要求
1.一种最大斜率射线算法判定点与多边形空间位置关系的方法,其特征在于它的步骤如下1)以待判定点Po为原点建立直角坐标系;2)比较待判定点Ptl的χ坐标和y坐标与多边形P中各点χ坐标和y坐标的最大值和最小值,当存在待判定点Ptl的χ坐标小于多边形P中各点χ坐标的最小值、待判定点Ptl的χ 坐标大于多边形P中各点χ坐标的最大值、y坐标或待判定点Po的y坐标小于多边形P中各点y坐标的最小值或待判定点Ptl的y坐标大于多边形P中各点y坐标的最大值,直接确定待判定点Po在多边形P的外部;3)判断待判定点PtlWx坐标 、y坐标%与多边形P(P1Ivin)各条边PiPi+1,i = 1, 2,3,…,η 是否 薛足;S0(又厂又树)-Y0(Xi-Xw) =Xi^yi-XiywAmin(XpXw) ^ x0 ^ max(Xi, xi+1) Λ min(yi,yi+1) ^ y0 ^ max (yi yi+1), i = 1,2,3,…,n,如果是,则待判定点 p。(x。,y0) 在多边形P的边上;4)判断待判定点Ptl的χ坐标X(1、y坐标与多边形P中各点χ坐标和y坐标的最大值和最小值 Iax,xmin,ymax,ymin 是否满足 =Xmin V X0 = xmax V y0 = ymin V y0 = ymax,如果是,则待判定点Po (χ。,Y0)在多边形P的外部;5)找出多边形P的最大斜率,若大于等于10,则从待判定点Ptl出发做一条斜率为最大斜率两倍的射线;若小于10或不存在,则做一条斜率为10的射线;6)计算射线与多边形的交点个数,奇数则Ptl在多边形P的内部,否则待判定点Ptl在多边形P的外部。
2.根据权利要求1所述的一种基于最大斜率射线算法判定点与多边形空间位置关系的方法,其特征在于所述的步骤2、包括(1)求出多边形P中各点χ坐标和y坐标的最大值和最小值,分别记为^iax,xfflin, yfflax,Yrnin >(2)如果待判定点Ptl的χ坐标&大于χ_、χ坐标&小于iin、y坐标%大于ymax或y 坐标%小于ymin,则待判定点P。U。,Y0)在多边形P的外部。
3.根据权利要求1所述的一种基于最大斜率射线算法判定点与多边形空间位置关系的方法,其特征在于所述的步骤幻包括(1)计算多边形P(P1P2'"Pn)中各点的斜率 ki; ki = (Yi-Yo)Z(Xi-Xo)' i = 1,2,…,η, 取出h中最大的记为kmax,如果kmax小于10,则kmax令=10 ;(2)以待判定点Ptl为起始点向右上方做一条斜率为Aax的射线。
4.根据权利要求1所述的一种基于最大斜率射线算法判定点与多边形空间位置关系的方法,其特征在于所述的步骤6)包括(1)找出射线上Y轴坐标等于ymax的点,记为Pm(xm,ym),令i= 1,射线与多边形的交点个数 M = 0,pn+1 (xn+1, yn+1) = P1 (X1, Y1);(2)如果多边形P 的一条边 PiPw 满足
全文摘要
本发明公开了一种最大斜率射线算法判定点与多边形空间位置关系的方法。包括如下步骤1)以待判定点p0为原点建立直角坐标系;2)判断是否存在特殊情况,可以直接确定p0在多边形P的边上或外部;3)找出多边形P的最大斜率,若大于等于10,则从p0出发做一条斜率为最大斜率两倍的射线;若小于10或不存在,则做一条斜率为10的射线;4)计算射线与多边形的交点个数,奇数则p0在多边形P的内部,否则p0在多边形P的外部。本发明有效避免了传统射线法可能出现的特殊相交状况发生,在计算机图形学领域具有重要的实际应用价值,应用前景较广。
文档编号G06T11/20GK102360509SQ20111031830
公开日2012年2月22日 申请日期2011年10月19日 优先权日2011年10月19日
发明者刘仁义, 张丰, 杜震洪, 许从余, 陈明 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1