[发明专利]带岛的多边形曲线偏移算法在审
申请号: | 201811495256.9 | 申请日: | 2018-12-07 |
公开(公告)号: | CN109636879A | 公开(公告)日: | 2019-04-16 |
发明(设计)人: | 刘圣军;刘韬;刘新儒 | 申请(专利权)人: | 中南大学 |
主分类号: | G06T11/20 | 分类号: | G06T11/20;G06F8/34 |
代理公司: | 长沙永星专利商标事务所(普通合伙) 43001 | 代理人: | 邓淑红 |
地址: | 410083 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 时间复杂度 判定 去除 偏移算法 多边形曲线 偏移 时针 凹点 凸点 算法复杂度 偏移方向 曲线方向 一步检测 点偏移 线偏移 法向 全局 | ||
本发明公开了一种带岛的多边形曲线偏移算法,它首先对各多边形的时针方向进行定向;其次对多边形偏移方向和时针方向进行约定;接着对多边形上各顶点进行凹点或凸点的判定区分;然后对于判定为凹点的顶点采用法向‑线偏移,对于判定为凸点的顶点采用点偏移;再判定局部无效边并去除;最后去除全局无效边即可得到偏移后的曲线。在整个过程中第一步检测曲线方向并且偏移所有的顶点,时间复杂度为O(n);判定去除局部无效边时,时间复杂度为O(nlogn);去除全局无效边具有O(n2/log(n))的时间复杂度,总而言之,整个偏移算法的时间复杂度可以被视为O(nlogn),降低了算法复杂度。
技术领域
本发明涉及一种多边形偏移算法,特别是涉及一种带岛的多边形曲线偏移算法。
背景技术
在许多的关于2D偏移等距曲线的矢量算法的研究方法中,有三种方法被广泛应用:使用Voronoi图、基于边-法向偏移和基于角平分线的偏移。其中使用Voronoi图的方法的优势是可以避免自相交的发生。但是由于生成Voronoi图的成本巨大,并且存在数值误差,在快速的算法中很少被使用。基于边-法向偏移在逻辑上是直观和简单的,以往的工作表明,可以使用边的起点和终点沿着边的法线方向进行一段距离的偏移来完成整个多边形的偏移。但是,这种方法的主要问题是需要解决偏移之后边的不连续和自相交问题的情况,并且处理它们是十分耗时的过程,导致算法的复杂性很高并容易出现数值错误。在基于角平分线偏移的方法下,由于角平分线上的点到角两边的距离相等,这样通过处理原始多边形中的角可以得到偏移之后多边形的顶点,按照顺序依次相连便可以得到偏移多边形。然后进行判定,去除局部无效边和全局无效边。但是,仅仅使用点偏移的方法在局部锐角角度极小的情况下因为不生成圆弧会发生局部的偏移量很大的情况,虽然有些算法使用截断进行了改进,但依然不是准确的结果。
发明内容
本发明的目的在于针对现有技术的不足之处,提供一种既能降低算法复杂度又能保证结果准确的带岛的多边形曲线偏移算法。
本发明提供的这种带岛的多边形曲线偏移算法,该算法包括以下步骤:
步骤一、对各多边形的时针方向进行定向;
步骤二、对多边形偏移方向和时针方向进行约定;
步骤三、对于多边形上任一顶点Pi进行凹点或凸点判定,如果为凹点采用法向-线偏移,如图为凸点则采用点偏移;
步骤四、判定局部无效边并去除;
步骤五、去除全局无效边。
在一个具体实施方式中,在步骤一中通过多边形在凸包上的极值点对多边形的时针方向进行定向。
进一步的,在步骤二中约定逆时针方向表示向多边形内部偏移、顺时针方向表示向多边形外部偏移。
在一个具体实施方式中,在步骤三中,Pi与相邻顶点Pi+1之间存在有向边ei,ei=Pi-Pi+1,为ei的单位向量,为ei的单位法向量,通过边的连续性定义ei的前向边为ei-1,定义ei的后向边为ei+1,
根据公式:对多边形上各顶点进行分类判定,
如果pconvex≤0,则称点P为多边形的凹点,
如果pconvex>0,则称点P为多边形的凸点,
凹点采用法向-线偏移的方式,凸点采用点偏移的方式。
进一步的,在步骤三中,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811495256.9/2.html,转载请声明来源钻瓜专利网。