曲线擦除方法及系统的制作方法

文档序号:10726500阅读:317来源:国知局
曲线擦除方法及系统的制作方法
【专利摘要】本发明提供一种曲线擦除方法及系统,方法包括:按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一集合;计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第二集合;获取待擦除点的坐标;依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所在的矩形;移除所述待擦除点所在的矩形对应的曲线。通过有序获取曲线上所有点的坐标,并计算出每两个相邻点构成的矩形,从而曲线擦除时,通过待擦除点的坐标和计算出的矩形得到待擦除点所在的矩形,移除该待擦除点所在的矩形对应的曲线即实现了曲线擦除,无需依赖曲线的数学公式,擦除准确,并且具有运算量小、擦除速度快的优点。
【专利说明】
曲线擦除方法及系统
技术领域
[0001] 本发明涉及图像处理领域,尤其涉及一种曲线擦除方法及系统。
【背景技术】
[0002] 随着科技的发展,利用计算机软件来绘制或处理图像已经开始普及,而图像绘制 或处理过程往往都会需要擦除曲线。目前擦除曲线的方法都是通过计算橡皮擦对应的区域 是否和曲线有交点,如果有交点,则删除对应曲线。如公开号为CN 104992460A的中国专利 公开了一种擦除矢量笔记的方法,包括下列步骤:当检测到擦除动作时,保存擦除开始之前 的矢量笔迹,并将所有的矢量笔迹转换成对应的非矢量笔迹,显示非矢量笔迹并隐藏矢量 笔迹;检测板擦的移动轨迹,实时计算和显示对非矢量笔迹的擦除,同时记录和计算擦除轨 迹;当检测到擦除动作结束时,将记录的所有擦除轨迹与擦除开始之前保存的矢量笔迹进 行相交运算,得到擦除后的矢量笔迹;隐藏非矢量笔迹,并显示擦除后的矢量笔迹。采用上 述方法擦除曲线,计算量比较大,且每条曲线的数学公式都不一样,容易造成擦除不准确的 现象。
[0003] 现有技术中也有通过直接覆盖曲线相应的区域来进行曲线擦除的方法,但是擦除 一条曲线需要的时间较长,并且需要来回拖动橡皮擦,用户体验较差。

【发明内容】

[0004] 本发明所要解决的技术问题是:提供一种擦除曲线的方法及系统,能够不依赖曲 线的数学公式对曲线进行快速擦除,计算量小,准确度高。
[0005] 为了解决上述技术问题,本发明采用的技术方案为:
[0006] -种曲线擦除方法,包括:
[0007] 按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一集合;
[0008] 计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第二集合;
[0009] 获取待擦除点的坐标;
[0010] 依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所在的矩形;
[0011] 移除所述待擦除点所在的矩形对应的曲线。
[0012] 本发明的另一个技术方案为:
[0013] -种曲线擦除系统,包括:
[0014] 第一获取模块,用于按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成 第一集合;
[0015] 矩形计算模块,用于计算第一集合中相邻两点构成的矩形,计算出的所有矩形构 成第二集合;
[0016] 第二获取模块,用于获取待擦除点的坐标;
[0017] 矩形匹配模块,用于依据所述待擦除点的坐标和所述第二集合,得到所述待擦除 点所在的矩形;
[0018] 移除模块,用于移除所述待擦除点所在的矩形对应的曲线。
[0019] 本发明的有益效果在于:绘制曲线时,有序地获取曲线上各点的坐标集合,再通过 各点的坐标计算每两个相邻点构成的矩形集合,即第二集合;需要擦除某部分曲线时,获取 待擦除的点的坐标,而待擦除的点会存在于矩形集合中的一个或者几个矩形中,因此能够 根据待擦除点的坐标和该矩形集合得到待擦除点所在的矩形,这些矩形对应的曲线即为待 擦除的曲线,从而通过移除待擦除点所在的矩形对应的曲线实现曲线擦除。本发明无需依 赖曲线的数学公式,擦除准确,并且运算量小,擦除速度快。
【附图说明】
[0020] 图1为本发明一实施例的曲线擦除方法的流程图;
[0021] 图2为本发明实施例一的曲线擦除方法的流程图;
[0022] 图3为本发明实施例一的曲线擦除方法的计算第一集合中相邻两点构成的矩形的 流程图;
[0023] 图4为本发明一实施例的曲线擦除系统的结构示意图;
[0024] 图5为本发明实施例二的曲线擦除系统的结构示意图。
[0025] 标号说明:
[0026] 1、第一获取模块;2、矩形计算模块;21、横坐标计算模块;22、纵坐标计算模块;23、 长度计算模块;24、宽度计算模块;25、矩形获取模块;3、第二获取模块;4、矩形匹配模块; 41、遍历模块;42、第三获取模块;43、第四获取模块;5、移除模块;6、列表创建模块。
【具体实施方式】
[0027] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附 图予以说明。
[0028] 本发明最关键的构思在于:计算曲线上每相邻两点构成的矩形;擦除曲线时先得 到待擦除点所在的矩形,再移除待擦除点所在的矩形对应的曲线。
[0029]本发明涉及的技术术语解释:
[0031]请参照图1,本发明提供 [0032] 一种曲线擦除方法,包括:
[0033] S1:按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一集合;
[0034] S2:计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第二集合;
[0035] S3:获取待擦除点的坐标;
[0036] S4:依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所在的矩形;
[0037] S5:移除所述待擦除点所在的矩形对应的曲线。
[0038] 从上述描述可知,本发明曲线擦除方法的有益效果在于:通过有序获取曲线上所 有点的坐标,并计算出每两个相邻点构成的矩形,从而曲线擦除时,通过待擦除点的坐标和 计算出的矩形得到待擦除点所在的矩形,移除该待擦除点所在的矩形对应的曲线即实现了 曲线擦除,无需依赖曲线的数学公式,擦除准确,并且具有运算量小、擦除速度快的优点。
[0039] 进一步的,所述计算第一集合中相邻两点构成的矩形具体为:
[0040] S21:依次比较第一集合中相邻两点的横坐标大小,将较小的横坐标标记作为所述 相邻两点对应的矩形左上角的横坐标rx;
[0041 ] S22:依次比较所述相邻两点的纵坐标大小,将较小的纵坐标标记作为所述矩形左 上角的纵坐标ry;
[0042] S23:将所述相邻两点的横坐标之差的绝对值作为所述矩形的长rw;
[0043] S24:将所述相邻两点的纵坐标之差的绝对值作为所述矩形的宽rh;
[0044] S25:依据所述矩形左上角的横坐标rx、矩形左上角的纵坐标ry、矩形的长rw、矩形 的宽rh得到第一集合中每相邻两点构成的矩形R(rx,ry,rw,rh)。
[0045] 从上述描述可知,依次通过确定矩形左上角的坐标以及矩形的长度和宽度得到每 相邻两点构成的矩形;还可通过确定对角线的两个端点坐标等方法得到相邻两点构成的矩 形。
[0046] 进一步的,所述依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所 在的矩形具体为:
[0047] 判断所述待擦除点是否包含在当前的矩形中;
[0048] 若是,则标记当前的矩形为待擦除点所在的矩形;
[0049] 若否,继续判断下一个矩形,直至所述第二集合中的矩形全部遍历。
[0050] 从上述描述可知,通过遍历第二集合中的每一个矩形,判断待擦除点是否包含在 该矩形内,从而得到待擦除点所在的所有矩形。
[0051] 进一步的,所述计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第 二集合之后,获取待擦除点的坐标之前,进一步包括:
[0052] S031:创建当前曲线的ID,并将所述第二集合和所述ID放入哈希表中。
[0053]进一步的,所述依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所 在的矩形具体为:
[0054] S41:遍历所述哈希表,得到所述待擦除点对应的曲线的ID;
[0055] S42:依据所述曲线的ID得到对应的第二集合;
[0056] S43:依据所述待擦除点和所述对应的第二集合得到所述待擦除点所在的矩形。
[0057] 从上述描述可知,绘制的曲线可能不止一条,因此每绘制完成一条曲线即创建该 曲线的ID,并将创建的ID和对应的矩形集合一起放入哈希表中,建立了曲线与对应矩形之 间的关联关系;曲线查找时能够在哈希表中根据曲线的ID找到对应的矩形集合,再依据待 擦除点和对应的矩形集合即可得到待擦除点所在的矩形。
[0058]进一步的,通过touchesmove事件按照曲线绘制的顺序有序地获取曲线上所有点 的坐标。
[0059] 从上述描述可知,通过touchesmove事件即可在曲线绘制时获取到曲线上的所有 点的坐标,并且能够获知曲线是否绘制完成。
[0060]请参照图4,本发明的另一个技术方案为:
[00611 一种曲线擦除系统,包括:
[0062]第一获取模块1,用于按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成 第一集合;
[0063] 矩形计算模块2,用于计算第一集合中相邻两点构成的矩形,计算出的所有矩形构 成第二集合;
[0064] 第二获取模块3,用于获取待擦除点的坐标;
[0065] 矩形匹配模块4,用于依据所述待擦除点的坐标和所述第二集合,得到所述待擦除 点所在的矩形;
[0066] 移除模块5,用于移除所述待擦除点所在的矩形对应的曲线。
[0067] 从上述描述可知,本发明的曲线擦除系统的有益效果在于:第一获取模块1在曲线 绘制时有序地获取曲线上所有点的坐标,矩形计算模块2再计算出相邻两点构成的矩形;从 而第二获取模块3获取到待擦除点的坐标后,矩形匹配模块4能够根据该待擦除点的坐标和 矩形计算模块2计算出的矩形得到待擦除点所在的矩形,移除模块5再移除该待擦除点所在 的矩形对应的曲线,实现曲线擦除;无需依赖曲线的数学公式,擦除准确,且擦除速度快。 [0068]进一步的,所述矩形计算模块2包括:
[0069] 横坐标计算模块21,用于依次比较第一集合中相邻两点的横坐标大小,将较小的 横坐标标记作为所述相邻两点对应的矩形左上角的横坐标rx;
[0070] 纵坐标计算模块22,用于依次比较所述相邻两点的纵坐标大小,将较小的纵坐标 标记作为所述矩形左上角的纵坐标ry;
[0071] 长度计算模块23,用于将所述相邻两点的横坐标之差的绝对值作为所述矩形的长 rw;
[0072] 宽度计算模块24,用于将所述相邻两点的纵坐标之差的绝对值作为所述矩形的宽 rh;
[0073] 矩形获取模块25,用于依据所述矩形左上角的横坐标rx、矩形左上角的纵坐标ry、 矩形的长rw、矩形的宽rh得到第一集合中每相邻两点构成的矩形R(rx,ry,rw,rh)。
[0074] 进一步的,还包括:
[0075] 列表创建模块6,用于创建当前曲线的ID,并将所述第二集合和所述ID放入哈希表 中。
[0076]进一步的,所述矩形匹配模块4包括:
[0077] 遍历模块41,用于遍历所述哈希表,得到所述待擦除点对应的曲线的ID;
[0078] 第三获取模块42,用于依据所述曲线的ID得到对应的第二集合;
[0079] 第四获取模块43,用于依据所述待擦除点和所述对应的第二集合得到所述待擦除 点所在的矩形。
[0080] 从上述描述可知,绘制的曲线可能不止一条,因此每绘制完成一条曲线列表创建 模块6即创建该曲线的ID,并将创建的ID和对应的矩形集合一起放入哈希表中,建立了曲线 与对应矩形之间的关联关系;从而遍历模块41进行曲线查找时能够在哈希表中找到曲线的 ID,第三获取模块42再根据曲线的ID找到对应的矩形集合,第四获取模块43依据待擦除点 和对应的矩形集合即可得到待擦除点所在的矩形。
[0081] 请参照图2以及图3,本发明的实施例一为:
[0082] 一种曲线擦除方法,包括:
[0083] S1:按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一集合;具体 的,通过touchesmove事件按照曲线绘制的顺序有序地获取曲线上所有点的坐标;
[0084] S2:计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第二集合;具体 的,计算第一集合中相邻两点构成的矩形包括:S21:依次比较第一集合中相邻两点的横坐 标大小,将较小的横坐标标记作为所述相邻两点对应的矩形左上角的横坐标rx; S22:依次 比较所述相邻两点的纵坐标大小,将较小的纵坐标标记作为所述矩形左上角的纵坐标ry; S23:将所述相邻两点的横坐标之差的绝对值作为所述矩形的长rw; S24:将所述相邻两点的 纵坐标之差的绝对值作为所述矩形的宽rh;S25:依据所述矩形左上角的横坐标rx、矩形左 上角的纵坐标ry、矩形的长rw、矩形的宽rh得到第一集合中每相邻两点构成的矩形R(rx, ry,rw,rh);
[0085]通过touchesmove事件检测到曲线绘制完成后,仓ll建当前曲线的ID,并将所述第二 集合和所述ID放入哈希表中;如果绘制的曲线为多条,则每绘制一条曲线,都按上述方法将 该曲线的ID和每相邻两点构成的曲线的集合放入哈希表中;
[0086] S3:获取待擦除点的坐标;
[0087] S41:遍历所述哈希表,得到所述待擦除点对应的曲线的ID; S42:依据所述曲线的 ID得到对应的第二集合;S43:依据所述待擦除点和所述对应的第二集合得到所述待擦除点 所在的矩形;具体的,判断所述待擦除点是否包含在当前的矩形中;若是,则标记当前的矩 形为待擦除点所在的矩形;若否,继续判断下一个矩形,直至所述第二集合中的矩形全部遍 历;
[0088] S5:移除所述待擦除点所在的矩形对应的曲线。
[0089] 下面为本发明曲线擦除方法的一个具体实例:
[0090] (1)在设备中的电子画布绘制曲线时,通过设备的响应touchesmove事件获取曲线 上所有点的坐标,构成有序的集合C1;
[0091 ] (2)然后按照绘制的顺序获取集合C1中的点ρ?,ρ2,ρ3···ρη;
[0092 ] (3)计算相邻的两个点(ρη-1,ρη)构成的矩形R,具体为:比较ρη-1X和ρηχ的大小, 取小的值赋值给rx,作为矩形R左上角的横坐标;比较pn-ly和pny的大小,取小的值赋值给 ry,作为矩形R左上角的纵坐标;pn-ly减pny得dy,取dy绝对值赋值给rw,作为矩形R的长; pn-1 X减ρηχ得dx,取dx绝对值赋值给rh,作为矩形R的宽;
[0093] (4)再将计算出的所有矩形1?(^,^,^,1'11)按顺序放入集合02中;
[0094] (5)通过设备的响应touchesmove事件检测到曲线绘制完成,贝lj仓ij建该曲线的ID, 并将集合C2和该ID放入哈希表HashMap(HM)中,
[0095]如果绘制的曲线为多条,则重复上述步骤(1)-(5),直到所有曲线的ID和对应的集 合C2放入哈希表中;
[0096]需要擦除曲线时,获取待擦除点的坐标c(xl,yl)、e(x2,y2),由于线是由点构成 的,点dPe构成的线即是需要擦除的曲线;遍历哈希表(HM)中所有曲线的ID,得到点dPe所 在的曲线10,再根据该10得到对应的集合02;遍历集合02中的矩形1?(^,巧4¥,1'11),判断〇 和e是否在矩形R(rx,ry,rw,rh)中,具体的,例如:1)比较rx和xl,如果xl小于rx则点c不在 矩形中;2)如果xl大于rx则比较rx加rw得到的和sx与xl,如果sx小于xl则点c不在矩形中; 3)比较ry和yl,如果yl小于ry则点c不在矩形中;4)如果大于ry则比较ry加rh得到的和sy与 yl,如果sy小于yl则不点c不在矩形中;除了以上四种情况,其他情况都判定c在矩形中;
[0097] 如果得出(3&1,71)、6&2,72)在矩形1?1、1?2和1?中,1?1、1?2、1?构成集合03,则从哈 希表(HM)中移除集合C3,并移除电子画布上集合C3对应的曲线。
[0098]请参照图5,本发明的实施例二为:
[0099] -种配合上述实施例一的曲线擦除方法的系统,包括:
[0100] 第一获取模块1,用于按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成 第一集合;具体的,通过touchesmove事件按照曲线绘制的顺序有序地获取曲线上所有点的 坐标;
[0101] 横坐标计算模块21,用于依次比较第一集合中相邻两点的横坐标大小,将较小的 横坐标标记作为所述相邻两点对应的矩形左上角的横坐标 rx;纵坐标计算模块22,用于依 次比较所述相邻两点的纵坐标大小,将较小的纵坐标标记作为所述矩形左上角的纵坐标 ry;长度计算模块23,用于将所述相邻两点的横坐标之差的绝对值作为所述矩形的长rw;宽 度计算模块24,用于将所述相邻两点的纵坐标之差的绝对值作为所述矩形的宽rh;矩形获 取模块25,用于依据所述矩形左上角的横坐标rx、矩形左上角的纵坐标ry、矩形的长rw、矩 形的宽rh得到第一集合中每相邻两点构成的矩形R(rx,ry,rw,rh);计算出的所有矩形构成 第二集合;
[0102]列表创建模块6,用于通过touchesmove事件检测到曲线绘制完成后,仓ij建当前曲 线的ID,并将所述第二集合和所述ID放入哈希表中;
[0103] 第二获取模块3,用于获取待擦除点的坐标;
[0104] 遍历模块41,用于遍历所述哈希表,得到所述待擦除点对应的曲线的ID;第三获取 模块42,用于依据所述曲线的ID得到对应的第二集合;第四获取模块43,用于依据所述待擦 除点和所述对应的第二集合得到所述待擦除点所在的矩形;具体的,判断所述待擦除点是 否包含在当前的矩形中;若是,则标记当前的矩形为待擦除点所在的矩形;若否,继续判断 下一个矩形,直至所述第二集合中的矩形全部遍历;
[0105] 移除模块5,用于移除所述待擦除点所在的矩形对应的曲线。
[0106] 综上所述,本发明提供的曲线移除方法及系统,通过有序地获取曲线上的所有点 坐标,计算每相邻两点构成的矩形,从而曲线可以用对应的矩形集合表示;擦除曲线时只要 获取待擦除点的坐标,根据该坐标找到待擦除点所在的矩形,再对矩形对应的曲线移除即 可。本发明实现过程简单,运算量小,并且无需依赖曲线的数学公式,具有擦除速度快和擦 除准确的优点,大大提高了用户的体验,并且对设备的性能要求低,适用性强。
[0107]以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括 在本发明的专利保护范围内。
【主权项】
1. 一种曲线擦除方法,其特征在于,包括: 按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一集合; 计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第二集合; 获取待擦除点的坐标; 依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所在的矩形; 移除所述待擦除点所在的矩形对应的曲线。2. 根据权利要求1所述的曲线擦除方法,其特征在于,所述计算第一集合中相邻两点构 成的矩形具体为: 依次比较第一集合中相邻两点的横坐标大小,将较小的横坐标标记作为所述相邻两点 对应的矩形左上角的横坐标rx; 依次比较所述相邻两点的纵坐标大小,将较小的纵坐标标记作为所述矩形左上角的纵 坐标ry; 将所述相邻两点的横坐标之差的绝对值作为所述矩形的长rw; 将所述相邻两点的纵坐标之差的绝对值作为所述矩形的宽rh; 依据所述矩形左上角的横坐标rx、矩形左上角的纵坐标ry、矩形的长rw、矩形的宽rh得 到第一集合中每相邻两点构成的矩形R(rx,ry,rw,rh)。3. 根据权利要求1所述的曲线擦除方法,其特征在于,所述依据所述待擦除点的坐标和 所述第二集合,得到所述待擦除点所在的矩形具体为: 判断所述待擦除点是否包含在当前的矩形中; 若是,则标记当前的矩形为待擦除点所在的矩形; 若否,继续判断下一个矩形,直至所述第二集合中的矩形全部遍历。4. 根据权利要求1所述的曲线擦除方法,其特征在于,所述计算第一集合中相邻两点构 成的矩形,计算出的所有矩形构成第二集合之后,获取待擦除点的坐标之前,进一步包括: 创建当前曲线的ID,并将所述第二集合和所述ID放入哈希表中。5. 根据权利要求4所述的曲线擦除方法,其特征在于,所述依据所述待擦除点的坐标和 所述第二集合,得到所述待擦除点所在的矩形具体为: 遍历所述哈希表,得到所述待擦除点对应的曲线的ID; 依据所述曲线的ID得到对应的第二集合; 依据所述待擦除点和所述对应的第二集合得到所述待擦除点所在的矩形。6. 根据权利要求1所述的曲线擦除方法,其特征在于,通过touchesmove事件按照曲线 绘制的顺序有序地获取曲线上所有点的坐标。7. -种曲线擦除系统,其特征在于,包括: 第一获取模块,用于按照曲线绘制的过程有序地获取曲线上所有点的坐标,构成第一 集合; 矩形计算模块,用于计算第一集合中相邻两点构成的矩形,计算出的所有矩形构成第 二集合; 第二获取模块,用于获取待擦除点的坐标; 矩形匹配模块,用于依据所述待擦除点的坐标和所述第二集合,得到所述待擦除点所 在的矩形; 移除模块,用于移除所述待擦除点所在的矩形对应的曲线。8. 根据权利要求7所述的曲线擦除系统,其特征在于,所述矩形计算模块包括: 横坐标计算模块,用于依次比较第一集合中相邻两点的横坐标大小,将较小的横坐标 标记作为所述相邻两点对应的矩形左上角的横坐标rx; 纵坐标计算模块,用于依次比较所述相邻两点的纵坐标大小,将较小的纵坐标标记作 为所述矩形左上角的纵坐标ry; 长度计算模块,用于将所述相邻两点的横坐标之差的绝对值作为所述矩形的长rw; 宽度计算模块,用于将所述相邻两点的纵坐标之差的绝对值作为所述矩形的宽rh; 矩形获取模块,用于依据所述矩形左上角的横坐标rx、矩形左上角的纵坐标ry、矩形的 长rw、矩形的宽rh得到第一集合中每相邻两点构成的矩形R(rx,ry,rw,rh)。9. 根据权利要求7所述的曲线擦除系统,其特征在于,还包括: 列表创建模块,用于创建当前曲线的ID,并将所述第二集合和所述ID放入哈希表中。10. 根据权利要求9所述的曲线擦除系统,其特征在于,所述矩形匹配模块包括: 遍历模块,用于遍历所述哈希表,得到所述待擦除点对应的曲线的ID; 第三获取模块,用于依据所述曲线的ID得到对应的第二集合; 第四获取模块,用于依据所述待擦除点和所述对应的第二集合得到所述待擦除点所在 的矩形。
【文档编号】G06T11/80GK106097414SQ201610378108
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】蔡专锡, 方振华, 刘德建, 郭玉湖
【申请人】福建天泉教育科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1