一种拼版方法

文档序号:6464685阅读:489来源:国知局
专利名称:一种拼版方法
技术领域
本发明涉及出版印刷技术领域,尤其涉及一种拼版方法。
技术背景在出版印刷处理过程中,拼版目的是为了在一个大版内尽可能排入更 多的同种拼版对象元件,以提高材料的利用率,如包装盒型拼版,目的就 是为了在一个大版内尽可能排入更多的同种包装盒型元件,以提高包装纸 的利用率。为了实现这一个目的,通常使用插拼的思想,即利用拼版对象 与外接矩形之间的空隙,使拼版对象尽可能接近。这涉及到如何计算拼版 对象曲线之间的距离以及选取什么样的拼版模式。现有的折线距离只能探 测到两个拼版对象在某一个方向上相向运动首次发生碰撞的距离,而事实 上,对于许多两个多边形的拼版对象,如两个凹多边形拼版对象,如果在 首次发生碰撞之后继续移动,可能越过首次发生碰撞的位置,进一步接近 而相互之间不再发生相交,这样相互之间的距离可以更小,从而进一步缩 小两拼版对象所占的面积,从而节省材料。发明内容本发明目的在于提供一种能进一步縮小拼版对象所占的面积以最终 达到节省材料、降低成本的拼版方法,以克服现有技术的不足。为了实现上述发明目的,本发明采用的技术方案是, 一种拼版方法, 该方法包括以下步骤(1) 对拼版对象进行轮廓提取;(2) 计算两个拼版对象之间的折线距离Dl并按该折线距离Dl拼凑 好两个拼版对象;其中计算两个拼版对象的折线距离Dl是通过在拼版方向上计算两个 拼版对象的局部折线距离来得到两个拼版对象在该方向上的折线距离,所述在拼版方向上计算两个拼版对象的局部折线距离的方法包括以下步骤a、 在拼版方向上获取两个拼版对象相邻两条折线的所有端点;b、 取其中一个端点并获取该端点的所有潜在碰撞点;C、根据该端点的所有潜在碰撞点,确定该端点到相邻两条折线中不 包含此端点的折线的距离并将其作为两条折线之间潜在的折线距离;d、重复步骤b和c,确定其它所有端点处两条折线之间潜在的折线距 离,且在所有潜在的折线距离中选取最短的作为两个拼版对象轮廓上相邻 两折线之间的折线距离即局部折线距离;(3) 按拼凑两个拼版对象的方法拼出一行拼版对象R1 ;(4) 计算两行拼版对象之间的偏移量,并按两行拼版对象之间的偏 移量拼凑好两行拼版对象得到当前拼版方案;(5) 根据当前拼版方案在版内拼出拼版对象并进行截取。进一步,所述步骤(2)中计算两拼版对象之间的折线距离D1的方法 为将一个拼版对象围绕另一个拼版对象以设定的歩长按顺时针方向或逆 时针方向移动,计算移动后该位置处两个拼版对象之间的折线距离Dl;所述歩骤(4)中,计算移动后该位置处两行拼版对象之间的偏移量, 按该偏移量拼凑好两行拼版对象,并判断该拼插结果是否优于当前拼版方 案,如果该拼插结果优于当前拼版方案则将该拼插结果作为当前拼版方在步骤(4 )之后还包括下面步骤重复步骤(2) 、 ( 3 )和(4 ), 直到一个拼版对象围绕另一个拼版对象转动一周为止。在此方案中我们也 可以将一个拼版对象围绕另一个拼版对象以不固定的步长按顺时针方向 或逆时针方向移动到某一位置,然后计算该位置处两拼版对象之间的折线 距离Dl。更进一步,步骤(2)中,将一个拼版对象围绕另一个拼版对象的外 接矩形以固定的步长按顺时针方向或逆时针方向移动。或者,将一个拼版对象围绕另一个拼版对象的外接矩形以不固定的步 长按顺时针方向或逆时针方向移动。进一步,所述计算两行拼版对象之间的偏移量包括以下步骤A、 根据步骤(3)中拼出的一行拼版对象R1复制出另外一行拼版对象R2,并将拼版对象R1和R2作为两个新的拼版对象;B、 拼版对象R2沿着拼版对象R1的一侧按设定的歩长移动,计算这 两个新的拼版对象之间的折线距离D2,此时这两个新的拼版对象之间的折 线距离D 2就为该位置处两行拼版对象之间的折线距离D 2 ;C、 判断该位置处两行拼版对象之间的折线距离D2是否小于当前两 行拼版对象之间的偏移量,如果是则保存该位置处两行拼版对象之间折线 距离D2并将该位置处两行拼版对象之间折线距离D2做为当前两行拼版对 象之间的偏移量;D 、重复步骤B和C ,直到拼版对象R2沿拼版对象Rl移动过的距离 超过事先设定的阈值。更进一歩,所述获取该端点的所有潜在碰撞点具体包括以下步骤 bl、在该端点处按拼版方向做竖直方向或水平方向的参考线,并将该参考线与不包含此端点的另一折线的交点按与该端点的距离排序,其中距离最小的排在最前面;b2、取其中所有的奇数点作为潜在碰撞点。进一步,所述根据该端点的所有潜在碰撞点确定该端点到相邻两条折 线中不包含此端点的折线的距离并将其作为两条折线之间潜在的折线距 离具体包括以下步骤cl、取其中一个潜在碰撞点并判断在该潜在碰撞点处两个多边形是否相交,如果相交则将该点从潜在碰撞点中去掉;c2、重复步骤cl,直到所有潜在碰撞点考察完为止;c3、取得所有潜在碰撞点中与该端点距离最远那个作为相邻两条折线之间潜在的折线距离。更进一步,所述判断在该潜在碰撞点处两个多边形是否相交具体包括 以下步骤并判断多边形A 和B所有边的奇偶性;其中奇偶边的定义为对于一个多边形,在它的一条边e上取一点向 下做射线,计算此射线与多边形相交并且右端点不在射线上的线段数目, 该线段数目包括e在内,如果此数目为奇数,则e为奇边,如果此数目为 偶数,则e为偶边;II、 运用改进的Bentley&OUmann扫描线算法,建立线段集合和事件 点集合,并将线段集合初始化为空,其中线段集合为有序集合,集合内线 段以与当前扫描线交点的纵坐标大小排序,事件点集合为所有线段的端点 且事件点按从左到右排序;III、 判断事件点是否已全部被扫描完,如果是则执行步骤V;否则按 序扫描下一事件点并判断该事件点是否为线段a的起点,如果不是则转入 步骤IV,如果是则将线段a按序插入线段集合,计算它与相邻两条线段的 交点,并将交点插入到事件点集合中,设线段a属于多边形A,判断a下 方属于多边形B的第一条边b的奇偶性;如果a与扫描线重合且a和b内域没有重叠,或a与扫描线不重合且 a与b重叠同时a和b奇偶性不一致,或a与扫描线不重合且a与b也不 重叠同时a为偶边,就需重复步骤III;如果a与扫描线重合且a和b内域有重叠,或a与扫描线不重合且a 与b重叠同时a和b奇偶性一致,或a与扫描线不重合且a与b也不重叠 同时a为奇边,则将IsInterSect的值设为True并执行歩骤V;IV、 判断该事件点是否为线段a的终点,如果是则将线段a从线段集 合中删除并重复步骤III;如果不是则将线段a和b在线段集合中的位置 交换,并计算它们和各自新相邻的线段的交点,把交点插入到事件点中并 重复步骤III;V、 如果IsInterSect的值为True则A和B相交,否则A和B不相交。进一歩,在完成步骤(1)之后及开始步骤(2)之前,将拼版对象旋 转一定的角度。更进一步,所述将拼版对象旋转的角度为180度。进一步,所述对在版内拼出拼版对象并进行截取的方法为直接截取, 即将面板的原点与某个拼版对象外边界的矩形框左下角重合进行截取,以 保留完整的拼版对象。更进一步,所述对在版内拼出拼版对象并进行截取的方法为旋转后截 取,即首先将拼版的结果旋转一定角度,然后再用矩形框截取。 上述各方案的拼版对象可以为盒型等。本发明的效果在于由于采用了改进的求折线距离的方法,因此采用 本发明所述的方法,可以在拼版时使两个拼版对象所占的面积縮小,同时 在拼凑拼版对象时,让一个拼版对象沿另一个拼版对象旋转一周,以找到 两拼版对象最佳的拼版方向,实现了根据具体拼版对象选择最佳的拼版方 向,从而最终节省了原材料,大大降低了生产成本。


图1为本发明实施例一中一种拼版方法的流程图;图2为本发明实施例一中拼版对象轮廓图;图3为本发明实施例一中已拼好的两个拼版对象图;图4为本发明实施例一中已拼好的一行拼版对象图;图5为本发明实施例一中两行拼版对象之间折线距离示意图;图6为本发明实施例一中最优拼版方案图;图7为本发明实施例一中最终所获的拼版方案图;图8为本发明实施例一中现有技术最终所获的拼版方案图;图9为本发明实施例二中一种拼版方法的流程图;图10为本发明实施例二中拼版对象轮廓图;图11为本发明实施例二中两个拼版对象位于起始位置的示意图; 图12为本发明实施例二中起始位置己拼好的两个拼版对象图; 图13为本发明实施例二中起始位置己拼好的一行拼版对象图;图14为本发明实施例二中起始位置已拼好的两行拼版对象图;图15为本发明实施例二中两个拼版对象位于另一位置的示意图;图16为本发明实施例二中另一位置已拼好的两个拼版对象图;图17为本发明实施例二中另一位置己拼好的一行拼版对象图;图18为本发明实施例二中另一位置已拼好的两行拼版对象图;图19为本发明实施例二中旋转截取示意图;图20为本发明实施例二中旋转截取后最终拼版结果示意图;图21为本发明实施例二中现有技术所获得的最终拼版结果示意图;图22为本发明实施例三中一种拼版方法的流程图;图23为本发明实施例三中拼版对象轮廓图;图24为本发明实施例三中两个拼版对象位于起始位置的示意图; 图25为本发明实施例三中起始位置已拼好的两个拼版对象图; 图26为本发明实施例三中起始位置已拼好的一行拼版对象图; 图27为本发明实施例三中起始位置已拼好的两行拼版对象图; 图28为本发明实施例三中两个拼版对象位于另一位置的示意图; 图29为本发明实施例三中另一位置已拼好的两个拼版对象图; 图30为本发明实施例三中另一位置已拼好的一行拼版对象图; 图31为本发明实施例三中另一位置已拼好的两行拼版对象图; 图32为本发明实施例三中直接截取后最终拼版结果示意图; 图33为本发明实施例三中现有技术所获得的最终拼版结果示意图; 图34为本发明实施例一中在某一碰撞点处判断两个多边形是否相交 的流程图。
具体实施方式
下面结合说明书附图对本发明所述的一种拼版方法作进一歩详细的 描述实施例一如图1所示, 一种拼版方法,包括以下几个步骤a)步骤ioi、对拼版对象进行轮廓提取。按此步骤得到的拼版对象轮廓如图2所示。(2)步骤102、计算两个拼版对象之间的折线距离Dl并按该折线距离 Dl拼凑好两个拼版对象;其中计算两个拼版对象之间的折线距离Dl具体是通过在某个方向上 计算两个拼版对象局部折线之间的距离来得到两个拼版对象在该方向上 的折线距离, 一般情况下使用水平方向或竖直方向两拼版对象轮廓上相邻 折线距离来作为两拼版对象之间的折线距离。本实施例中,使用水平方向 两拼版对象轮廓上局部折线距离来作为两拼版对象之间在水平方向上的 折线距离,在水平方向上计算两拼版对象轮廓上局部折线距离的方法包括以下步骤a、 在水平方向上获取两拼版对象轮廓上相邻两条折线的所有端点;b、 取其中一个端点并获取该端点的所有潜在碰撞点;c、 根据该端点的所有潜在碰撞点,确定该端点到相邻两条折线中不 包含此端点的折线的距离并将其作为两条折线之间潜在的折线距离;d、 重复步骤b和c,确定其它所有端点处两条折线之间潜在的折线距 离,且在所有潜在的折线距离中选取最短的作为两拼版对象轮廓上相邻两 条折线之间的折线距离,即局部折线距离。本实施例中,按此方法计算所 得两拼版对象之间的水平折线距离后再按照计算所得到的水平折线距离 移动两拼版对象,拼出两拼版对象相结合的图如图3所示。前面步骤b中所述获取该端点的所有潜在碰撞点具体包括以下步骤 bl、在该端点处按拼版方向做竖直方向或水平方向的参考线,并将该参考线与不包含此端点的另一折线的交点按与该点的距离排序,其中距离最小的排在最前面;b2、取其中所有的奇数点作为潜在碰撞点。在前步骤c中所述的根据该端点的所有潜在碰撞点确定该端点到相邻 两条折线中不包含此端点的折线的距离并将其作为相邻两条折线之间潜 在的折线距离具体包括以下步骤cl、取其中一个潜在碰撞点并判断在该潜在碰撞点处两个多边形是否相交,如果相交则将该点从潜在碰撞点中去掉;
c2、重复步骤cl,直到所有潜在碰撞点考察完为止;
c3、取得所有潜在碰撞点中与该端点距离最远那个作为相邻两条折线
之间潜在折线距离。
如图34所示,歩骤cl中所述判断在该潜在碰撞点处两个多边形是否z 相交具体包括以下步骤
I、 输入两个多边形A和B,设lslntersect = False并判断多边形A和B 所有边的奇偶性;
其中奇偶边的定义为对于一个多边形,在它的一条边e上取一点向下 做射线,计算此射线与多边形相交并且右端点不在射线上的线段数目,该 线段数目包括e在内,如果此数目为奇数,则e为奇边,如果此数目为偶 数,则e为偶边;
II、 运用改进的Bentley&Ottmann扫描线算法,建立线段集合和事件 点集合,并将线段集合初始化为空,其中线段集合为有序集合,集合内线 段以与当前扫描线交点的纵坐标大小排序,事件点集合为所有线段的端点 且事件点按从左到右排序;
III、 判断事件点是否己全部被扫描完,如果是则执行歩骤V;否则按
序扫描下一事件点并判断该事件点是否为线段a的起点,如果不是则转入 歩骤IV,如果是则将线段a按序插入线段集合,计算它与相邻两条线段的 交点,并将交点插入到事件点集合中,设线段a属于多边形A,判断a下 方属于多边形B的第一条边b的奇偶性;
如果a与扫描线重合且a和b内域没有重叠,或a与扫描线不重合且 a与b重叠同时a和b奇偶性不一致,或a与扫描线不重合且a与b也不 重叠同时a为偶边,就需重复步骤III;
如果a与扫描线重合且a和b内域有重叠,或a与扫描线不重合且a 与b重叠同时a和b奇偶性一致,或a与扫描线不重合且a与b也不重叠 同时a为奇边,则将IsInterSect的值设为True并执行步骤V;
IV、 判断该事件点是否为线段a的终点,如果是则将线段a从线段集 合中删除并重复步骤III;如果不是则将线段a和b在线段集合中的位置交换,并计算它们和各自新相邻的线段的交点,把交点插入到事件点中并
重复步骤in;
V、如果IsInterSect的值为True则A和B相交,否则A和B不相交。
(3) 步骤103、按拼凑两个拼版对象的方法拼出一行拼版对象R1 。 按此步骤所得到的一行拼版对象如图4所示。
(4) 步骤104、计算两行拼版对象之间的偏移量,并按两行拼版对象之 间的偏移量拼凑好两行拼版对象得到当前拼版方案。
此步骤中所述计算该位置处两行拼版对象之间的偏移量包括以下步

A、 复制出另外一行拼版对象52,并将两行拼版对象51和52作为两 个新的拼版对象;
B、 拼版对象52沿着拼版对象51的一侧按步长移动,计算这两个新 的拼版对象之间的折线距离D2,此时这两个新的拼版对象之间的折线距离 D 2就为该位置处两行拼版对象之间的折线距离D 2 ;
C、 判断该位置处两行拼版对象之间折线距离D2是否小于当前两行 拼版对象之间的偏移量,如果是则保存位置处两行拼版对象之间折线距离 D2并将位置处两行拼版对象之间折线距离D2做为两行拼版对象之间当前 偏移量;
D 、重复步骤B和C ,直到拼版对象52沿拼版对象51移动过的距离 超过事先设定的阈值。
本实施例中,拼版对象52沿着拼版对象51的下边按步长左右移动, 所述的阈值是指行内重复的部分的宽度, 一行拼版对象如果不考虑两端, 中间的部分其实是由重复的若干片段组成的,这些片段在该行方向上的宽 度就是阈值。
上面计算两行拼版对象之间的折线距离D2的方法与步骤102中计算 两个拼版对象之间的折线距离Dl的方法一样。按此方法计算所得到两行 拼版对象之间的折线距离情况如图5中的两虚线之间距离,再按此距离移 动两行拼版对象,得到当前拼版方案如图6所示。(5)步骤105、根据当前拼版方案在版内拼出拼版对象并进行截取。 根据当前拼版方案及面板的大小在版内拼出拼版对象并进行截取后 所得到的最终拼版方案如图7所示。
图8为现有拼版方法在水平方向上就上面所说的同一个拼版对象在 同一个面板内所获得的最终拼版方案图,我们从图7中发现此面板内一共 可拼凑63个拼版对象,而在图8中只能拼凑45个拼版对象,这也就充分 说明使用本发明的拼版方法比使用现有技术的拼版方法在同一个面板内 就同一个拼版对象进行拼版时能拼凑更多的拼版对象,也就是说能尽可能 减少材料的浪费,达到节约材料降低成本的目的。 在此实例中的拼版对象为包装盒型。
实施例二
如图9所示, 一种拼版方法,包括以下几个步骤
(1) 步骤201、对拼版对象进行轮廓提取。 按此步骤得到的拼版对象轮廓如图IO所示。
(2) 步骤202、将一个拼版对象围绕另一个拼版对象以设定的步长按顺 时针方向或逆时针方向移动到某一位置,计算该位置处两拼版对象之间的 折线距离Dl并按该折线距离Dl拼凑好两个拼版对象。
其中所述将一个拼版对象112围绕另一个拼版对象111以设定的步长 按按顺时针方向或逆时针方向移动到某一位置是指将一个拼版对象112围 绕另一个拼版对象111的外接矩形以一定的步长按顺时针方向或逆时针方 向移动到某一位置。在这个实施例中我们采取将拼版对象112围绕拼版对 象lll的外矩形以设定的步长按逆时方向移动一周。此步长可由用户根据 拼版对象的大小进行设定,在这里我们将步长设为5cm。
实施例二从两个拼版对象并列的位置开始,其中拼版对象112位于拼 版对象111的右边,如图11所示。计算此位置两拼版对象之间的水平折 线距离并将拼版对象相向移动水平折线距离得到如图12所示的两个拼版 对象拼版好的图。(3) 歩骤203、按拼凑两个拼版对象的方法拼出一行拼版对象R 1 。 按步骤拼出的一行拼版对象,如图13所示。
(4) 步骤204、计算该位置处两行拼版对象之间的偏移量,按该移量拼 凑好两行拼版对象,并判断该拼插结果是否优于当前拼版方案,如果是则 将该拼插结果作为当前拼版方案。
先复制已拼好的一行拼版对象,然后按实施例一中计算两行拼版对象 之间的偏移量的方法计算出两行拼版对象之间的偏移量,并按该偏移量拼 凑好两行拼版对象,如图14所示。因为这是第一次拼的结果,所以就将 图14所示的结果作为当前拼版方案。
(5) 步骤205、重复步骤2、 3、 4,直到一个拼版对象围绕另一个拼版 对象转动一周为止。
按步长移动到下一位置,如图15所示。计算此位置两拼版对象之间 的水平折线距离并将拼版对象相向移动水平折线距离得到如图16所示的 两个拼版对象拼版好的图。然后按拼两个拼版对象的方法拼出一行拼版对 象,如图17所示。复制已拼好的一行拼版对象,然后按实施例一中计算 两行拼版对象之间的偏移量的方法计算出两行拼版对象之间的偏移量,并 按偏移量拼凑好两行,如图18所示。因为此次拼出的结果优于第一次拼 的结果,即此次拼出的结果优于当前拼版方案,所以就将图18所示的结 果作为当前拼版方案。
再按歩长移动下一位置,重复步骤2、 3、 4,直到一个拼版对象围绕 另一个拼版对象转动一周。在此实施例中一个拼版对象围绕另一拼版对象 转动一周后我们发现图18所示的图为当前拼版方案。从此实施例可以看 出运用此发明的拼版方法进行拼版时并不是完全按照水平或垂直方向进 行拼版,而让一个拼版对象围绕另一个拼版对象旋转一周,以找到两个拼 版对象最佳的拼版方向,实现了根据具体拼版对象选择最佳的拼版方向, 最终节省了材料,降低了成本。
(6) 步骤206、根据当前拼版方案在版内拼出拼版对象并进行截取。根据在当前拼版方案在不考虑边界的情况下拼出所需的图案,然后再 对拼出的图案进行截取,以获得最终的结果,其中截取的方法有两种,一 种为直接截取,即将面板的原点与某个拼版对象外边界的矩形框左下角重 合进行截取,以保留完整的拼版对象;另一种为旋转后截取,即首先将拼 版的结果调整一定角度,然后再用矩形框截取。旋转后截取可具体为如下 如图19所示,先计算行内相邻两个拼版对象的外接矩形右下角点与水平
形成的角度",如图19 (a)所示,按照这个角度,把所有拼版对象旋转 到水平位置,如图19 (b)所示,再重新计算元件外接矩形,如图19 (c) 所示,对结果中的每个拼版对象都这样操作,然后利用直接截取方法得到 最终的裁剪结果。根据此实施例的拼版对象,我们可选用旋转截取,进行旋 转截取后的最终结果如图20所示,
图21为现有拼版方法在水平方向上就上面同一个拼版对象在同一个 面板内最终拼版方案示意图,我们从图20中发现此面板内一共可拼凑54 个拼版对象,而在图21中只能拼凑50个拼版对象,这也就充分说明使用 本发明的拼版方法比使用现有技术的拼版方法在同一个面板内就同一个 拼版对象进行拼版能拼凑更多的拼版对象,也就是能尽可能减少材料的浪 费,达到节约材料降低成本的目的
实施例三
如图22所示, 一种拼版的方法,包括以下几个步骤
(1) 步骤301、对拼版对象进行轮廓提取。 按此步骤得到的拼版对象轮廓如图23所示。
(2) 步骤302、将拼版对象旋转一定的角度。
这里将拼版对象242旋转一定的角度,可根据具体拼版对象选用,其 中拼版对象242旋转较理想的角度为180度,此实施例使用的这个具体拼 版对象在拼版前就使拼版对象242旋转了 180度。
(3) 歩骤303、将一个拼版对象围绕另一个拼版对象以设定的步长按顺 时针方向或逆时针方向移动到某一位置,计算该位置处两拼版对象之间的 折线距离Dl并按该折线距离Dl拼凑好两个拼版对象。在这个实施例中我们采取将拼版对象242围绕拼版对象241的外接矩形以一定的步长按逆时方向移动一周。在此实施例中我们设步长为6mm。
实施例三从两个拼版对象并列的位置开始,其中拼版对象242位于拼版对象241的右边,如图24所示。计算此位置两拼版对象之间的水平折线距离并将拼版对象相向移动水平折线距离得到如图25所示的两个拼版对象拼版好的图。
(4) 步骤204、按拼凑两个拼版对象的方法拼出一行拼版对象R 1 。按此步骤拼出的一行拼版对象如图26所示。
(5) 步骤305、计算该位置处两行拼版对象之间的偏移量,按该偏移量拼凑好两行拼版对象,并判断该拼插结果是否优于当前拼版方案,如果是则将该拼插结果作为当前拼版方案。
先复制已拼好的一行拼版对象,然后按实施例一中计算两行拼版对象之间的偏移量的方法计算出两行拼版对象之间的偏移量,并按该偏移量拼凑好两行拼版对象,如图27所示。因为这是第一次拼的结果,所以就将图27所示的结果作为当前拼版方案。
(6) 步骤306、重复步骤3 、 4、 5,直到一个拼版对象围绕另一个拼版对象转动一周为止。
按步长移动到下一位置,如图28所示。计算此位置处两拼版对象之间的水平折线距离并将拼版对象相向移动水平折线距离得到如图29所示的两个拼版对象拼版好的图。然后按拼两个拼版对象的方法拼出一行拼版对象,如图30所示。复制已拼好的一行,然后按实施例一中计算两行之间的偏移量的方法计算出两行之间的偏移量,并按偏移量拼凑好两行,如图31所示。因为此次拼出的结果优于第一次拼的结果,即此次拼出的结果优于当前拼版方案,所以就将图31所示的结果作为当前拼版方案。
再按步长移动下一位置,重复步骤3、 4、 5,直到一个拼版对象围绕另一个拼版对象转动一周。在此例中一个拼版对象围绕另一拼版对象转动一周后我们发现图31为当前拼版方案。(7)步骤307、根据当前拼版方案在版内拼出拼版对象并进行截取。根据在当前拼版方案在不考虑边界的情况下拼出所需的图案,然后再对拼出的图案进行截取,以获得最终的结果。根据此拼版对象在此实施例我们中采用直接截取,即将面板的原点与某个拼版对象外边界的矩形框左下角重合进行截取,以保留完整的拼版对象。截取所获得的最终拼版结果如图32所示。
图33为现有拼版方法在水平方向上就上面同一个拼版对象在同一个面板内最终拼版方案图,我们从图32中发现此面板内一共可拼凑70个拼版对象,而在图33中只能拼凑54个拼版对象,这也就充分说明使用本发明的拼版方法比使用现有技术的拼版方法在同一个面板内就同一个拼版对象进行拼版能拼凑更多的拼版对象,也就是能尽可能减少材料的浪费,以达到节约材料降低成本的目的
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1、一种拼版方法,该方法包括以下步骤(1)对拼版对象进行轮廓提取;(2)计算两个拼版对象之间的折线距离D1并按该折线距离D1拼凑好两个拼版对象;其中计算两个拼版对象的折线距离D1是通过在拼版方向上计算两个拼版对象的局部折线距离来得到两个拼版对象在该方向上的折线距离,所述在拼版方向上计算两个拼版对象的局部折线距离的方法包括以下步骤a、在拼版方向上获取两个拼版对象相邻两条折线的所有端点;b、取其中一个端点并获取该端点的所有潜在碰撞点;c、根据该端点的所有潜在碰撞点,确定该端点到相邻两条折线中不包含此端点的折线的距离并将其作为两条折线之间潜在的折线距离;d、重复步骤b和c,确定其它所有端点处两条折线之间潜在的折线距离,且在所有潜在的折线距离中选取最短的作为两个拼版对象轮廓上相邻两折线之间的折线距离即局部折线距离;(3)按拼凑两个拼版对象的方法拼出一行拼版对象R1;(4)计算两行拼版对象之间的偏移量,并按两行拼版对象之间的偏移量拼凑好两行拼版对象得到当前拼版方案;(5)根据当前拼版方案在版内拼出拼版对象并进行截取。
2、如权利要求1所述的一种拼版方法,其特征在于,所述步骤(2) 中计算两拼版对象之间的折线距离Dl的方法为将一个拼版对象围绕另 一个拼版对象以设定的步长按顺时针方向或逆时针方向移动,计算移动后 该位置处两个拼版对象之间的折线距离Dl;所述步骤(4)中,计算移动后该位置处两行拼版对象之间的偏移量, 按该偏移量拼凑好两行拼版对象,并判断该拼插结果是否优于当前拼版方 案,如果该拼插结果优于当前拼版方案则将该拼插结果作为当前拼版方在步骤(4 )之后还包括下面步骤重复步骤(2) 、 ( 3 )禾Q ( 4 ), 直到一个拼版对象围绕另一个拼版对象转动一周为止。
3、 如权利要求2所述的一种拼版方法,其特征在于,步骤(2)中, 将一个拼版对象围绕另一个拼版对象的外接矩形以固定的步长按顺时针 方向或逆时针方向移动。
4、 如权利要求2所述的一种拼版方法,其特征在于,将一个拼版对 象围绕另一个拼版对象的外接矩形以不固定的步长按顺时针方向或逆时 针方向移动。
5、 如权利要求1所述的一种拼版方法,其特征在于,步骤(4)中所述计算两行拼版对象之间的偏移量包括以下步骤A、 根据步骤(3)中拼出的一行拼版对象R1复制出另外一行拼版对 象R2,并将拼版对象R1和R2作为两个新的拼版对象;B、 拼版对象R2沿着拼版对象R1的一侧按设定的歩长移动,计算这 两个新的拼版对象之间的折线距离D2,此时这两个新的拼版对象之间的折 线距离D 2就为该位置处两行拼版对象之间的折线距离D 2 ;C、 判断该位置处两行拼版对象之间的折线距离D2是否小于当前两 行拼版对象之间的偏移量,如果是则保存该位置处两行拼版对象之间折线 距离D2并将该位置处两行拼版对象之间折线距离D2做为当前两行拼版对 象之间的偏移量;D、 重复歩骤B和C,直到拼版对象R2沿拼版对象R1移动过的距离 超过事先设定的阈值。
6、 如权利要求1所述的一种拼版方法,其特征在于,步骤(2)的步 骤b中所述获取该端点的所有潜在碰撞点具体包括以下歩骤bl、在该端点处按拼版方向做竖直方向或水平方向的参考线,并将该 参考线与不包含此端点的另一折线的交点按与该端点的距离排序,其中距 离最小的排在最前面;b2、取其中所有的奇数点作为潜在碰撞点。
7、 如权利要求6所述的一种拼版方法,其特征在于,步骤(2)的步 骤c中所述根据该端点的所有潜在碰撞点确定该端点到相邻两条折线中不 包含此端点的折线的距离并将其作为两条折线之间潜在的折线距离具体 包括以下步骤cl、取其中一个潜在碰撞点并判断在该潜在碰撞点处两个多边形是否相交,如果相交则将该点从潜在碰撞点中去掉;c2、重复步骤cl,直到所有潜在碰撞点考察完为止;c3、取得所有潜在碰撞点中与该端点距离最远那个作为相邻两条折线之间潜在的折线距离。
8、如权利要求7所述的一种拼版方法,其特征在于,步骤cl中所述判断在该潜在碰撞点处两个多边形是否相交具体包括以下步骤I、 输入两个多边形A和B,设lslntersect = Flase并判断多边形A和B 所有边的奇偶性;其中奇偶边的定义为对于一个多边形,在它的一条边e上取一点向下 做射线,计算此射线与多边形相交并且右端点不在射线上的线段数目,该 线段数目包括e在内,如果此数目为奇数,贝Ue为奇边,如果此数目为偶数, 则e为偶边;II、 运用改进的Bentley&Ottmann扫描线算法,建立线段集合和事件 点集合,并将线段集合初始化为空,其中线段集合为有序集合,集合内线 段以与当前扫描线交点的纵坐标大小排序,事件点集合为所有线段的端点 且事件点按从左到右排序;III、 判断事件点是否已全部被扫描完,如果是则执行步骤V;否则按序扫描下一事件点并判断该事件点是否为线段a的起点,如果不是则转入 步骤IV,如果是则将线段a按序插入线段集合,计算它与相邻两条线段的 交点,并将交点插入到事件点集合中,设线段a属于多边形A,判断a下 方属于多边形B的第一条边b的奇偶性;如果a与扫描线重合且a和b内域没有重叠,或a与扫描线不重合且 a与b重叠同时a和b奇偶性不一致,或a与扫描线不重合且a与b也不 重叠同时a为偶边,就需重复步骤III;如果a与扫描线重合且a和b内域有重叠,或a与扫描线不重合且a 与b重叠同时a和b奇偶性一致,或a与扫描线不重合且a与b也不重叠 同时a为奇边,则将IsInterSect的值设为True并执行步骤V;IV、 判断该事件点是否为线段a的终点,如果是则将线段a从线段集 合中删除并重复步骤III;如果不是则将线段a和b在线段集合中的位置 交换,并计算它们和各自新相邻的线段的交点,把交点插入到事件点中并重复步骤III;V、如果IsInterSect的值为True则A和B相交,否则A和B不相交。
9、 如权利要求1至8之一所述的一种拼版方法,其特征在于,在完 成步骤(1)之后及开始步骤(2)之前,将拼版对象旋转一定的角度。
10、 如权利要求9所述的一种拼版方法,其特征在于,所述将拼版对 象旋转的角度为180度。
11、 如权利要求1至8之一所述的一种拼版方法,其特征在于,所述 对在版内拼出拼版对象并进行截取的方法为直接截取,即将面板的原点与 某个拼版对象外边界的矩形框左下角重合进行截取,以保留完整的拼版对 象。
12、 如权利要求1至8之一所述的一种拼版方法,其特征在于,所述 对在版内拼出拼版对象并进行截取的方法为旋转后截取,即首先将拼版的 结果旋转一定角度,然后再用矩形框截取。
全文摘要
本发明公开了一种拼版方法,该方法包括,对拼版对象进行轮廓提取;计算两个拼版对象之间的折线距离并按该折线距离拼凑好两个拼版对象;按拼凑两个拼版对象的方法拼出一行拼版对象;计算两行拼版对象之间的偏移量,并按两行拼版对象之间的偏移量拼凑好两行拼版对象得到当前版方案;根据当前拼版方案在版内拼出拼版对象并进行截取。其中计算两个拼版对象之间的折线距离具体可通过在某个方向上计算两拼版对象轮廓上局部折线距离来得到两个拼版对象在该方向上的折线距离。采用本发明所述的方法,可以使两拼版对象所占的面积缩小,从而使得在同一版面内能拼版出更多的拼版对象,最终达到节省材料,降低成本的目的。
文档编号G06F17/50GK101645096SQ20081011803
公开日2010年2月10日 申请日期2008年8月7日 优先权日2008年8月7日
发明者琴 张, 李平立, 贾文华, 赵海峰 申请人:北京大学;方正国际软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1