一种绘制轨迹的还原方法和装置的制造方法

文档序号:9598488阅读:363来源:国知局
一种绘制轨迹的还原方法和装置的制造方法
【技术领域】
[0001]本申请涉及视频以及图像的绘图特效技术领域,特别是涉及一种绘制轨迹的还原方法和一种绘制轨迹的还原装置。
【背景技术】
[0002]在图像或视频后期处理软件中,通常都具有自由绘制功能。所谓自由绘制,是指用户可以在使用处理软件中,可以按照自己的意愿通过拖曳或者移动的方式进行点的绘制,将这些点连接起来就形成了用户的绘制轨迹。
[0003]然而,当用户拖拽鼠标或者移动手写笔进行自由绘制时,由于硬件设备和软件的效率限制,在拖拽时,每隔一段时间才响应一个点,这些点是不均匀分布的,这属于不可控的情况。如果将这些点直接连起来,就会将用户的绘制轨迹都改成了直线,与用户绘制的实际轨迹有所不符合。
[0004]因此,本领域技术人员迫切需要解决的问题之一在于,提出一种绘制轨迹的还原方法,如何对笔触形状进行修补来模拟用户的移动轨迹,如何计算贝塞尔曲线的长度来实现均匀的画出绘制轨迹。

【发明内容】

[0005]鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种绘制轨迹的还原方法和相应的一种绘制轨迹的还原装置。
[0006]为了解决上述问题,本申请实施例公开了一种绘制轨迹的还原方法,包括:
[0007]接收用户输入的绘制点;
[0008]采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
[0009]获取所述贝塞尔曲线模拟轨迹的控制点序列;
[0010]采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
[0011]按预设长度间隔逐步绘制所述拟合线段。
[0012]优选的,所述采用所述控制点对所述模拟轨迹进行曲线拟合,生成拟合所述模拟轨迹的拟合线段的步骤包括:
[0013]将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
[0014]比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
[0015]若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
[0016]若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
[0017]采用所述控制点序列和分割点序列确定新的节点和中间点;
[0018]返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
[0019]优选的,所述采用所述控制点序列和分割点序列确定新的节点和中间点的步骤包括:
[0020]将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
[0021]将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
[0022]优选的,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1 ;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
[0023]优选的,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
[0024]同时,本申请还公开了一种绘制轨迹的还原装置,包括:
[0025]绘制点接收模块,用于接收用户输入的绘制点;
[0026]模拟轨迹生成模块,用于采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
[0027]控制点序列获取模块,获取所述贝塞尔曲线模拟轨迹的控制点序列;
[0028]拟合线段生成模块,用于采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
[0029]拟合线段绘制模块,用于按预设长度间隔逐步绘制所述拟合线段。
[0030]优选的,所述拟合线段生成模块进一步包括:
[0031]第一计算点确定子模块,用于将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
[0032]比较子模块,用于比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
[0033]拟合线段确定子模块,用于若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
[0034]分割点生成子模块,用于若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1 ;
[0035]第二计算点确定子模块,用于采用所述控制点序列和分割点序列确定新的节点和中间点;
[0036]返回模块,用于返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
[0037]优选的,所述第二计算点确定子模块进一步包括:
[0038]第三计算点确定子模块,用于将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间占.
[0039]第四计算点确定子模块,用于将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
[0040]优选的,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1 ;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
[0041]优选的,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
[0042]本申请实施例包括以下优点:
[0043]本申请实施例通过对用户输入的绘制点进行贝塞尔曲线轨迹模拟,然后再对模拟的贝塞尔曲线模拟轨迹进行曲线拟合,得到拟合线段;通过计算拟合线段的长度实现贝塞尔曲线模拟轨迹的计算;通过逐步绘制拟合线段,从而实现对用户输入轨迹的还原。
【附图说明】
[0044]图1是本申请的一种绘制轨迹的还原方法实施例的步骤流程图;
[0045]图2是本申请的一种基于德卡斯特里奥算法的向量示意图;
[0046]图3是本申请的一种基于德卡斯特里奥算法的向量示意图如图
[0047]图4是本申请的德卡斯特里奥运算递推的示意图
[0048]图5是本申请的一种基于德卡斯特里奥算法的计算贝塞尔曲线的示意图;
[0049]图6是本申请实施例中按预设长度间隔逐步绘制拟合线段的示意图;
[0050]图7是本申请的一种绘制轨迹的还原装置实施例的结构框图。
【具体实施方式】
[0051]为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本申请作进一步详细的说明。
[0052]本申请实施例的核心构思之一在于,通过对用户输入的绘制点进行贝塞尔曲线轨迹模拟,然后再对模拟的贝塞尔曲线模拟轨迹进行曲线拟合,得到拟合线段;
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1