一种二维图形轮廓绘制方法

文档序号:9547963阅读:851来源:国知局
一种二维图形轮廓绘制方法
【技术领域】
[0001]本发明属于图像数据处理领域,具体涉及一种二维图形轮廓绘制方法。
【背景技术】
[0002]二维图形轮廓绘制可用于创建供区域填充使用的封闭边界、孤岛检测等。零件图作为装配图的基本组成单元,其轮廓信息的快速而有效的提取,对于实现装配图绘制过程中图形自动消隐,尺寸自动标注以及进行图形特征识别和干涉性检查等,都具有十分重要的意义。视图中可能有多个封闭图形,但只有轮廓图形可包容其他图元。提取的关键是在交叉点处选择合适的路径作为图形边界。
[0003]现有技术中,常用的方法是计算已知轮廓边与其他路径的夹角,取夹角最大的路径为轮廓边现有的绘制方法,或者,通过矢量积提取轮廓线信息方法进行分析绘制,这些方法多通过直接计算二维图形内各线的空间相交关系来得到内轮廓,不适用于二维图形外轮廓绘制和不封闭二维图形的轮廓绘制,也有一些方法可以忽略不封闭图形的间隙,但是上述方法在图形内线数量较多的情况下计算量大,完成轮廓绘制需要耗费的资源多、时间长。因此,需要一种新的方法来解决二维图形外轮廓绘制和不封闭二维图形的轮廓绘制,同时减少参与计算的线的数量、减小计算量。

【发明内容】

[0004]为了解决上述问题,本发明提出了一种适用于二维图形外轮廓绘制和不封闭二维图形的轮廓绘制的二维图形轮廓绘制方法,该方法也适用于封闭的二维图形轮廓绘制,所述二维图形由多条线段组成,这些线段构成封闭的二维图形,或者,这些线段之间存在间隙,从而构成不封闭二维图形,本发明二维图形轮廓绘制方法包括以下步骤:获取绘制所述二维图形轮廓的最大间隙值,设置一圆,并使该圆沿由所述二维图形内的线构成的边界运动,直至所述圆运动至起始点,连接所述圆运动的轨迹点完成二维图形轮廓绘制,其中,所述间隙值指所述二维图形内相邻的两条需要封闭的线段端点之间的距离,所述设置的圆的的直径大于所述二维图形轮廓的最大间隙值。
[0005]优选的是,所述圆的运动方式包括平移/旋转。
[0006]在上述方案中优选的是,所述圆运动的轨迹点为所述圆的圆心,或者所述圆上除圆心以外的任一固定点,或者与所述圆心或者所述固定点存在线性关系的点。
[0007]在上述方案中优选的是,当多条存在间隙的线段共线时,且该间隙值小于所述二维图形轮廓的最大间隙值,合并所述多条线段;以及,当多条存在间隙的线段不共线时,且该间隙值小于所述二维图形轮廓的最大间隙值,所述圆自间隙一侧的线段接触到间隙另一侧的线段后,沿所述之后接触的线段继续运动。
[0008]在上述方案中优选的是,在所述圆自间隙一侧的线段接触到间隙另一侧的线段后,沿所述之后接触的线段继续运动时,包括确定所述圆沿接触后的最优线段运动的步骤,所述最优线段的选取包括在根据所述圆移动范围极限筛选出的二维图形内的部分线段的集合、或者整个线段集合,或者位于两者之间的任意线段集合内进行。
[0009]在上述方案中优选的是,在确定所述线段集合中的最优线段时,包括对所述圆最小移动距离或角度的判断,所述圆最小移动距离或角度指所述圆的运动轨迹的最小移动距离或角度。
[0010]在上述方案中优选的是,在确定所述线段集合中的最优线段时,包括对碰撞点位置的判断,所述碰撞点位置的判断为选取与切点或旋转中心点的弧长最长的碰撞点所在的线段为最优线段,其中,所述切点指所述圆与接触所述线段集合之前所接触的线段之间的切点,所述旋转中心点指所述圆与接触所述线段集合之前所接触的线段之间的交点。
[0011]在上述方案中优选的是,在确定所述线段集合中的最优线段时,包括使用几何上受到弧长变化影响且其变化趋势存在规律性变化的变量作为判断依据。
[0012]在上述方案中优选的是,在确定所述线段集合中的最优线段时,包括对碰撞点相同的线段的角度判断,所述角度判断为选取与所述圆切线夹角最小的线段为最优线段,其中,所述切线的切点为所述碰撞点。
[0013]在上述方案中优选的是,所述二维图形内的曲线使用多段直线线段模拟。
[0014]本发明的技术方案在于模拟了小圆沿二维图形滚动从而绘制二维图形轮廓,包括以下步骤。
[0015]指定圆直径与选择起始线段;
[0016]筛选可能与圆碰撞的线集合;
[0017]转换集合内的非线段为线段;
[0018]合并集合内的共线线段,相互不重叠且相邻端点距离大于小圆直径的除外;
[0019]求解小圆与集合内线段最近的碰撞点、对应的圆心点和碰撞到的线段集合;
[0020]在碰撞到的线段集合内筛选小圆下一步移动的依附线段;
[0021]判断小圆下一步移动是沿线段平移还是绕线段端点旋转;
[0022]判断小圆的移动轨迹是否封闭,如果没有封闭,则继续筛选可能与小圆碰撞的线集合,重复上述操作;
[0023]连接小圆圆心轨迹点。
[0024]本发明的优点是:本发明可以实现二维图形的轮廓绘制,含封闭二维图形的内轮廓或外轮廓绘制、间隙小于小圆直径的非封闭二维图形的内轮廓或外轮廓绘制,参与计算的线数量少、计算量小,可以应用于创建区域填充封闭边界、孤岛检测等。
【附图说明】
[0025]图1为按照本发明二维图形轮廓绘制方法的一优选实施例的流程图。
[0026]图2为图1所示实施例的封闭二维图形轮廓绘制结果示意图。
[0027]图3为图1所示实施例的不封闭二维图形轮廓绘制结果示意图。
[0028]图4为图1所示实施例的多间隙二维图形轮廓绘制结果示意图。
[0029]图5为图1所示实施例的与圆接触的线段集合示意图。
[0030]图6为图1所示实施例的所述圆平移到一个位置同时碰撞到多条线段示意图。
[0031]图7为图1所示实施例的所述圆旋转到一个位置同时碰撞到多条线段示意图。
[0032]图8为图1所示实施例的所述圆在同一个碰撞点同时碰撞到多条线段示意图。
[0033]图9为图1所示实施例的碰撞点是切点的所述圆与线段碰撞情况示意图。
【具体实施方式】
[0034]为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
[0035]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
[0036]本发明的目的在于提出一种绘制封闭和不封闭的二维图形的轮廓的方法,方法参与计算的线的数量少、计算量小。该方法也适用于封闭的二维图形轮廓绘制,所述二维图形由多条线段组成,这些线段构成封闭的二维图形,如图2所示,或者,这些线段之间存在间隙,从而构成不封闭二维图形,如图3所示,图2或图3中,粗线表示现有的二维图形,细线为本发明所需要完成的绘制后的轮廓线,由虚线构成的圆为本发明提供的二维图形轮廓绘制过程中的运动圆,箭头表示所述圆的运动方向,其余图示与本图示示例相同,以下不再赘述。同时,需要说明的是,为后续计算机处理程序的简便性,上述的多条粗线表示的某些线段为原二维图形线条模拟后的线段,比如原二维图形的线条为弧线、曲线,可以模拟成多条相互连接的细小线段,以下仅以线段来代指所述二维图形的构成元素。
[0037]本发明二维图形轮廓绘制方法包括以下步骤:获取绘制所述二维图形轮廓的最大间隙值,设置一圆(以下“小圆”等同),并使该圆沿由所述二维图形内的线构成的边界运动,直至所述圆运动至起始点,连接所述圆运动的轨迹点完成二维图形轮廓绘制,其中,所述间隙值指所述二维图形内相邻的两条需要封闭的线段端点之间的距离,所述设置的圆的的直径大于所述二维图形轮廓的最大间隙值。参考图2及图3,所述圆的轨迹点(圆心)连接形成的细线构成的图形即为本发明所要绘制的二维图形轮廓,图4给出了间隙值的判定方法示意图,该图4中,所有的线段之间实际上均需要封闭处理,即该图中,所有的线段实际上应为连接在一起的、无间隙的线段,因此,在设定圆的直径时,应使其大于这些间隙值中的最大值,从而能够保证所述圆在图4中的二维图形内部运动。需要说明的是,按实际轮廓绘制需要,所述圆直径可以设置为小于不需要封闭的间隙尺寸且大于需要封闭的间隙尺寸,如图3所示的右上角的大间隙不需要封闭,设置的圆的直径小于所述不需要封闭的间隙尺寸,完成了不封闭二维图形轮廓的绘制,另外,在绘制二维图形的内轮廓时,圆直径不可大于所述二维图形可能形成的轮廓尺寸,否则圆无法在二维图形内部移动,将造成轮廓绘制失败。
[0038]还需要提前说明的是,上述的间隙值为二维图形内相邻的两条需要封闭的线段端点之间的距离,这里的两个端点为相对的端点,即包括两种情况,一种是,两条线段需要在端点处封闭,此时,间隙值即为两个端点之间的距离,另外一种情况是,一条线段的端点需要与其相邻的一条线段进行封闭,此时,第一条线段其距离第二条线段的任一端点的距离大于其自该端点向第二条线段的垂线的距离,此时,所述间隙值为自一条线段的端点至另一条线段的垂线长度中较小者,所述垂线的垂足在所述另一条线段上。
[0039]图1给出了绘制二维图形轮廓的详细步骤,在移动圆直到所述圆回到起始点完成轮廓的轨迹封闭的前提下,本实施例中还给出了详细的所述圆运动的限制或判定,包括将与所述圆接触(以下“碰撞”与之等同)的曲线转换成线段的步骤,合并共线线段的步骤,求解所述圆与线段最近的碰撞点的
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1