CN105354870A - 一种绘制轨迹的还原方法和装置 - Google Patents
一种绘制轨迹的还原方法和装置 Download PDFInfo
- Publication number
- CN105354870A CN105354870A CN201510694827.1A CN201510694827A CN105354870A CN 105354870 A CN105354870 A CN 105354870A CN 201510694827 A CN201510694827 A CN 201510694827A CN 105354870 A CN105354870 A CN 105354870A
- Authority
- CN
- China
- Prior art keywords
- reference mark
- sequence
- point
- cut
- line segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 230000009467 reduction Effects 0.000 claims description 9
- 238000000638 solvent extraction Methods 0.000 claims description 8
- 238000004088 simulation Methods 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000931705 Cicada Species 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种绘制轨迹的还原方法,包括:接收用户输入的绘制点;采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;获取所述贝塞尔曲线模拟轨迹的控制点序列;采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;按预设长度间隔逐步绘制所述拟合线段。本申请实施例通过对用户输入的绘制点进行贝塞尔曲线轨迹模拟,然后再对模拟的贝塞尔曲线模拟轨迹进行曲线拟合,得到拟合线段;通过计算拟合线段的长度实现贝塞尔曲线模拟轨迹的计算;通过逐步绘制拟合线段,从而实现对用户输入轨迹的还原。
Description
技术领域
本申请涉及视频以及图像的绘图特效技术领域,特别是涉及一种绘制轨迹的还原方法和一种绘制轨迹的还原装置。
背景技术
在图像或视频后期处理软件中,通常都具有自由绘制功能。所谓自由绘制,是指用户可以在使用处理软件中,可以按照自己的意愿通过拖曳或者移动的方式进行点的绘制,将这些点连接起来就形成了用户的绘制轨迹。
然而,当用户拖拽鼠标或者移动手写笔进行自由绘制时,由于硬件设备和软件的效率限制,在拖拽时,每隔一段时间才响应一个点,这些点是不均匀分布的,这属于不可控的情况。如果将这些点直接连起来,就会将用户的绘制轨迹都改成了直线,与用户绘制的实际轨迹有所不符合。
因此,本领域技术人员迫切需要解决的问题之一在于,提出一种绘制轨迹的还原方法,如何对笔触形状进行修补来模拟用户的移动轨迹,如何计算贝塞尔曲线的长度来实现均匀的画出绘制轨迹。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种绘制轨迹的还原方法和相应的一种绘制轨迹的还原装置。
为了解决上述问题,本申请实施例公开了一种绘制轨迹的还原方法,包括:
接收用户输入的绘制点;
采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
获取所述贝塞尔曲线模拟轨迹的控制点序列;
采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
按预设长度间隔逐步绘制所述拟合线段。
优选的,所述采用所述控制点对所述模拟轨迹进行曲线拟合,生成拟合所述模拟轨迹的拟合线段的步骤包括:
将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
采用所述控制点序列和分割点序列确定新的节点和中间点;
返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
优选的,所述采用所述控制点序列和分割点序列确定新的节点和中间点的步骤包括:
将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
优选的,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
优选的,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
同时,本申请还公开了一种绘制轨迹的还原装置,包括:
绘制点接收模块,用于接收用户输入的绘制点;
模拟轨迹生成模块,用于采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
控制点序列获取模块,获取所述贝塞尔曲线模拟轨迹的控制点序列;
拟合线段生成模块,用于采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
拟合线段绘制模块,用于按预设长度间隔逐步绘制所述拟合线段。
优选的,所述拟合线段生成模块进一步包括:
第一计算点确定子模块,用于将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
比较子模块,用于比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
拟合线段确定子模块,用于若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
分割点生成子模块,用于若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
第二计算点确定子模块,用于采用所述控制点序列和分割点序列确定新的节点和中间点;
返回模块,用于返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
优选的,所述第二计算点确定子模块进一步包括:
第三计算点确定子模块,用于将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
第四计算点确定子模块,用于将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
优选的,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
优选的,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
本申请实施例包括以下优点:
本申请实施例通过对用户输入的绘制点进行贝塞尔曲线轨迹模拟,然后再对模拟的贝塞尔曲线模拟轨迹进行曲线拟合,得到拟合线段;通过计算拟合线段的长度实现贝塞尔曲线模拟轨迹的计算;通过逐步绘制拟合线段,从而实现对用户输入轨迹的还原。
附图说明
图1是本申请的一种绘制轨迹的还原方法实施例的步骤流程图;
图2是本申请的一种基于德卡斯特里奥算法的向量示意图;
图3是本申请的一种基于德卡斯特里奥算法的向量示意图如图
图4是本申请的德卡斯特里奥运算递推的示意图
图5是本申请的一种基于德卡斯特里奥算法的计算贝塞尔曲线的示意图;
图6是本申请实施例中按预设长度间隔逐步绘制拟合线段的示意图;
图7是本申请的一种绘制轨迹的还原装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
本申请实施例的核心构思之一在于,通过对用户输入的绘制点进行贝塞尔曲线轨迹模拟,然后再对模拟的贝塞尔曲线模拟轨迹进行曲线拟合,得到拟合线段;通过计算拟合线段的长度实现贝塞尔曲线模拟轨迹的计算;通过逐步绘制拟合线段还原用户绘制轨迹
参照图1,示出了本申请的一种绘制轨迹的还原方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,接收用户输入的绘制点;
在图像或视频后期处理软件中,由于硬件设备和软件的效率限制,在拖拽时,每隔一段时间才响应一个点。因而用户连续绘制的轨迹,变成了离散的绘制点。
步骤102,采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
贝塞尔曲线由线段和控制点组成,通过调整控制点可以调整线段的形状,控制点按从落笔到起笔的顺序排序,组成控制点序列。
步骤103,获取所述贝塞尔曲线模拟轨迹的控制点序列;
步骤104,采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
具体可以采用直线段逼近曲线的方法,通过细分的直线段逐段代替贝塞尔曲线。
步骤105,按预设长度间隔逐步绘制所述拟合线段。
可以通过计算各段拟合线段的总长度,然后选取一个合适的步长间隔逐步绘制拟合线段。在图像或视频后期处理软件的界面中,即可逐步显示绘制曲线。
在本申请实施例中,利用贝塞尔曲线对绘制轨迹进行修补,来模拟用户的绘制轨迹。具体来说,本申请实施例中是基于德卡斯特里奥算法计算贝塞尔曲线上的点,进而计算出贝塞尔曲线上的坐标,从而绘制贝塞尔曲线。
参照图2所示是本申请的一种基于德卡斯特里奥算法的向量示意图,图2中的A、B两点构成了向量AB,德卡斯特里奥算法的基础就是在向量AB上选择一个点C,使得C将向量AB的比例分为u:1-u(也就是∣AC∣:∣AB∣=u)。给定点A、B的坐标以及分割系数u(u∈[0,1])的值,点C的坐标便为:C=A+(B-A)*u=(1-u)*A+B*u。
在本申请的一种示例中,定义贝塞尔曲线的控制点Pi编号为0i,其中,0表示是第0次迭代。当第一、二、三……次迭代时,0将会相应被1、2、3……依次替换。
德卡斯特里奥算法的思想如下:为了计算n次贝塞尔曲线上的点C(u),u∈[0,1],首先将控制点连接形成一条折线00-01-02……0(n-1)-0n。利用上述方法,计算出折线中每条线段0j-0(j+1)上的一个点1j,使得点1j分该线段的比为u:1-u。然后在折线10-11-……-1(n-1)上递归调用该算法,以此类推。最终,求得最后一个点n0。德卡斯特里奥证明了,点n0一定是曲线上的点。
在本申请实施例中,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
参照图3所示是本申请的一种基于德卡斯特里奥算法的向量示意图如图,曲线控制点是00、01、02、03、04、05。线段00-01上取点10,10分该线段的比为u:1-u,类似地取点11、12、13、14,然后第二次迭代在线段10-11上取点20,点20分该线段的比为u:1-u,类似地取点21、22、23。然后进行下一次迭代,依次类推,直到最后在线段40-41上取点50,50是最终惟一的点,也是在曲线上的点。
参照图4所示是本申请的德卡斯特里奥运算递推的示意图。
上述直观的算法描述可以表达成一个计算方法。
首先,将所有给定的控制点排列成一列,在上图中,即为最左边的一列。每一对相邻的控制点可以伸出两个箭头,分别指向右下方和右上方。在相邻箭头的交叉处,生成一个新的控制点。例如,控制点ij和i(j+1)生成新的控制点(i+1)j。指向右下方的箭头表示乘以(1-u),指向右上方的箭头表示乘以u。
因此,通过第0列,可以求出第1列,然后求出第2列……,最终,在n次迭代后,可以到达惟一的一个点n0,这个点就是曲线上的点。
该计算过程算法如下:
Input:arrayP[0:n]ofn+1pointsandrealnumberuin[0,1]Output:pointoncurve,C(u)Working:pointarrayQ[0:n]fori:=0tondo
Q[i]:=P[i];//saveinput
fork:=1tondo
fori:=0ton-kdo
Q[i]:=(1-u)Q[i]+uQ[i+1];
returnQ[0];
该计算方法直接通过递归方法计算Pi,j效率低下,其原因是:递归方法有大量的重复计算。实际应用中,常用3阶的贝塞尔曲线,是要对4个点进行计算。设已知的4点为p0(x0,y0),p1(x1,y1),p2(x2,y2),p3(x3,y3),其中0和3是端点,1,2是控制点,则该曲线上的所有点表示为:
x=(1-t)^3*x0+3*t*(1-t)^2*x1+3*t^2*(1-t)*x2+t^3*x3
y=(1-t)^3*y0+3*t*(1-t)^2*y1+3*t^2*(1-t)*y2+t^3*y3
其中0<=t<=1。
按照公式,对每个t,代入式子就可以得到曲线上对应点的坐标了。当然具体实现时,可根据适当的间隔取t值,然后用直线将这些值对应的点连起来就是了。
类似于多项式的计算,在计算机上计算的时候,可以用德卡斯特里奥算法来求出,而不必直接计算高次幂。
作为本申请实施例的一种优选示例,所述步骤104可以包括如下子步骤:
子步骤S11,将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
子步骤S12,比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
子步骤S13,若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
子步骤S14,若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
子步骤S15,采用所述控制点序列和分割点序列确定新的节点和中间点;
子步骤S16,返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
在本申请实施例中,其特征在于,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
参照图5所示是本申请的一种基于德卡斯特里奥算法的计算贝塞尔曲线的示意图。其中,控制点序列包括点p00、p10、p20、p30四个控制点,p00第一个控制点,p30为最后一个控制点;采用分割系数为0.5对控制点序列按照德卡斯特里奥算法进行运算,可以得到3组分割点序列;第一组分割点序列包括点p11、p21、p31;第二组分割点序列包括点p22、p32;第三组分割点序列包括点p33。由德卡斯特里奥算法可知点33即贝塞尔曲线上的点。
因为贝塞尔曲线总是处在控制点的凸包内,那么可以得知贝塞尔曲线上的点到线段P00P30(第一个控制点和最后一个控制点连接的线段)的距离不大于p10到p00p30的距离或p20到p00p30的距离中的较大值)。
由德卡斯特里奥算法的原理可知,p00、p11、p22、p33和p33、p32、p31、p30所生成的贝塞尔曲线拼起来,就是p00、p10、p20、p30生成的贝塞尔曲线。对p00、p10、p20、p30,用线段p00p30代替生成的贝塞尔曲线,并以曲线上的点到线段的最大距离为误差,则p00、p11、p22、p33和p33、p32、p31、p30的误差比p00、p10、p20、p30的要小。基于此,可以不断用细分的线段来代替贝塞尔曲线。
将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点,即得出点p10,p20到线段p00p03的距离,取其中的最大值,然后判断这个最大值距离是否小于预设的预置。如果满足条件,就可以用p00p30直线代替生成的曲线;如果不满足,则迭代操作包括:对控制点序列进行卡斯特里奥运算,将分割点序列迭代为新节点和中间点,判断比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小。重复所述迭代操作直至找到所有可以代替贝塞尔曲线的无数条线断。
迭代操作具体如:确定由p00、p11、p22、p33所确定的贝塞尔曲线,将p00和p33作为节点、将p11、p22作为中间点,将p11至线段p00p33的距离与p22至线段p00p33的距离中的较大值与预设的阈值比较,若小于则可以采用p00p33代替p00、p11、p22、p33所确定的贝塞尔曲线。若大于,继续迭代操作。
作为本申请实施例的一种优选示例,所述采用所述控制点序列和分割点序列确定新的节点和中间点的步骤可以包括子步骤:
子步骤S21,将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
子步骤S22,将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
如图5所示,将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,即将00和33作为新的节点。将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点,即将11和22当做对应的中间点。
将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,即将33和30作为新的节点。将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点,即将32、31当作对应的中间点。
参照图6,是本申请实施例中按预设长度间隔逐步绘制拟合线段的示意图。如图,按照上述迭代操作,最后得到AB、BC、CD、DE、EF这5条拟合线段。然后,计算这5条直线段的长度,然后按照一定的步长频率记录各个点的坐标,最后逐个绘制各个点,从而完成曲线拟合。
例如,取a为步长,从A开始绘制。对线段AB按步长进行绘制,先绘制2个步长的线段,剩下的部分线段由于不足步长a的长度,则从线段BC中确定剩余的部分来满足绘制一步的步长。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图7,示出了本申请的一种绘制轨迹的还原装置实施例的结构框图,具体可以包括如下模块:
绘制点接收模块701,用于接收用户输入的绘制点;
模拟轨迹生成模块702,用于采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
控制点序列获取模块703,获取所述贝塞尔曲线模拟轨迹的控制点序列;
拟合线段生成模块704,用于采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
拟合线段绘制模块705,用于按预设长度间隔逐步绘制所述拟合线段。
作为本申请实施例的一种优选示例,所述拟合线段生成模块704可以进一步包括:
第一计算点确定子模块,用于将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
比较子模块,用于比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
拟合线段确定子模块,用于若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
分割点生成子模块,用于若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
第二计算点确定子模块,用于采用所述控制点序列和分割点序列确定新的节点和中间点;
返回模块,用于返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
作为本申请实施例的一种优选示例,所述第二计算点确定子模块进一步包括:
第三计算点确定子模块,用于将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
第四计算点确定子模块,用于将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
在本申请实施例中,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
在本申请实施例中,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种绘制轨迹的还原方法和一种绘制轨迹的还原装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种绘制轨迹的还原方法,其特征在于,包括:
接收用户输入的绘制点;
采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
获取所述贝塞尔曲线模拟轨迹的控制点序列;
采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
按预设长度间隔逐步绘制所述拟合线段。
2.根据权利要求1所述的方法,其特征在于,所述采用所述控制点对所述模拟轨迹进行曲线拟合,生成拟合所述模拟轨迹的拟合线段的步骤包括:
将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
采用所述控制点序列和分割点序列确定新的节点和中间点;
返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
3.根据权利要求2所述的方法,其特征在于,所述采用所述控制点序列和分割点序列确定新的节点和中间点的步骤包括:
将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
4.根据权利要求1所述的方法,其特征在于,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
5.根据权利要求3所述的方法,其特征在于,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
6.一种绘制轨迹的还原装置,其特征在于,包括:
绘制点接收模块,用于接收用户输入的绘制点;
模拟轨迹生成模块,用于采用贝塞尔曲线对所述绘制点进行模拟,生成贝塞尔曲线模拟轨迹;
控制点序列获取模块,获取所述贝塞尔曲线模拟轨迹的控制点序列;
拟合线段生成模块,用于采用所述控制点序列对所述贝塞尔曲线模拟轨迹进行曲线拟合,生成拟合所述贝塞尔曲线模拟轨迹的拟合线段;
拟合线段绘制模块,用于按预设长度间隔逐步绘制所述拟合线段。
7.根据权利要求6所述的装置,其特征在于,所述拟合线段生成模块进一步包括:
第一计算点确定子模块,用于将控制点序列中的第一个控制点与最后一个控制点作为节点,将除第一个控制点和最后一个控制点之外的控制点作为由所述第一个控制点与最后一个控制点所确定的节点对应的中间点;
比较子模块,用于比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小,所述节点线段为由两个节点连接成的线段;
拟合线段确定子模块,用于若最大的距离值小于预设的阈值,则将所述节点线段作为拟合线段;
分割点生成子模块,用于若最大的距离值大于预设的阈值,则采用所述控制点序列和预设的分割系数进行德卡斯特里奥运算,得到N-1组分割点序列,N的数值为所述控制点序列的控制点个数减1;
第二计算点确定子模块,用于采用所述控制点序列和分割点序列确定新的节点和中间点;
返回模块,用于返回所述比较各个中间点到节点线段的距离中最大的距离值与预设的阈值的大小的步骤。
8.根据权利要求7所述的装置,其特征在于,所述第二计算点确定子模块进一步包括:
第三计算点确定子模块,用于将第一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的第一个分割点作为与所述第一个控制点和最后一组分割点序列中唯一的一个分割点所确定的节点对应的中间点;
第四计算点确定子模块,用于将最后一个控制点和最后一组分割点序列中唯一的一个分割点作为节点,将除最后一组分割点序列外的分割点序列中的最后一个分割点作为与所述最后一个控制点和最后一组分割点序列中唯一的一个分割点确定的节点对应的中间点。
9.根据权利要求6所述的装置,其特征在于,所述控制点序列中控制点的数目为贝塞尔曲线的阶数加1;所述控制点序列中的第一个控制点为用于模拟贝塞尔曲线模拟轨迹的第一个绘制点,所述控制点序列中的最后一个控制点为用于模拟贝塞尔曲线模拟轨迹的最后一个绘制点。
10.根据权利要求8所述的装置,其特征在于,所述德卡斯特里奥运算包括N次递推运算,每进行一次递推运算,就得到一组分割点序列,分割点序列含有的分割点的数目为所述控制点序列的控制点个数减去当前进行的递推运算的次序数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510694827.1A CN105354870A (zh) | 2015-10-21 | 2015-10-21 | 一种绘制轨迹的还原方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510694827.1A CN105354870A (zh) | 2015-10-21 | 2015-10-21 | 一种绘制轨迹的还原方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105354870A true CN105354870A (zh) | 2016-02-24 |
Family
ID=55330837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510694827.1A Pending CN105354870A (zh) | 2015-10-21 | 2015-10-21 | 一种绘制轨迹的还原方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354870A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239216A (zh) * | 2016-03-28 | 2017-10-10 | 北大方正集团有限公司 | 基于触摸屏的绘制处理方法和装置 |
CN108959215A (zh) * | 2017-05-24 | 2018-12-07 | 阿里健康信息技术有限公司 | 一种数据处理方法和设备、显示方法和设备 |
CN109101171A (zh) * | 2017-06-21 | 2018-12-28 | 北京易真学思教育科技有限公司 | 一种在触摸屏设备中生成滑动轨迹的方法 |
CN111124180A (zh) * | 2019-12-23 | 2020-05-08 | 江苏欧帝电子科技有限公司 | 一种生成笔迹线条的方法及装置 |
CN111179416A (zh) * | 2019-12-30 | 2020-05-19 | 北京东方逸腾数码医疗设备技术有限公司 | 血管矢量图模型生成方法及装置 |
CN111352539A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种终端进行互动的方法及装置 |
CN117315198A (zh) * | 2023-10-09 | 2023-12-29 | 中微智创(北京)软件技术有限公司 | 一种动目标轨迹拐角平缓微调的平滑优化方法和系统 |
CN117726710A (zh) * | 2024-02-18 | 2024-03-19 | 粤港澳大湾区数字经济研究院(福田) | 一种基于曲线离散的绘制方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及系统 |
CN102752491A (zh) * | 2011-08-26 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种卫星轨迹的生成方法及系统 |
CN104268942A (zh) * | 2014-09-15 | 2015-01-07 | 清华大学 | 基于德卡斯特里奥算法的贝塞尔曲线曲面拟合方法及系统 |
US9068856B2 (en) * | 2008-10-01 | 2015-06-30 | Here Global B.V. | Creating geometry for advanced driver assistance systems |
-
2015
- 2015-10-21 CN CN201510694827.1A patent/CN105354870A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9068856B2 (en) * | 2008-10-01 | 2015-06-30 | Here Global B.V. | Creating geometry for advanced driver assistance systems |
CN102750722A (zh) * | 2011-08-11 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种运动模型轨迹的生成方法及系统 |
CN102752491A (zh) * | 2011-08-26 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种卫星轨迹的生成方法及系统 |
CN104268942A (zh) * | 2014-09-15 | 2015-01-07 | 清华大学 | 基于德卡斯特里奥算法的贝塞尔曲线曲面拟合方法及系统 |
Non-Patent Citations (1)
Title |
---|
徐甜 等: "Bezier曲线的算法描述及其程序实现", 《安阳师范学院学报》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239216A (zh) * | 2016-03-28 | 2017-10-10 | 北大方正集团有限公司 | 基于触摸屏的绘制处理方法和装置 |
CN108959215A (zh) * | 2017-05-24 | 2018-12-07 | 阿里健康信息技术有限公司 | 一种数据处理方法和设备、显示方法和设备 |
CN108959215B (zh) * | 2017-05-24 | 2022-06-10 | 阿里健康信息技术有限公司 | 一种数据处理方法和设备、显示方法和设备 |
CN109101171B (zh) * | 2017-06-21 | 2020-12-11 | 北京易真学思教育科技有限公司 | 一种在触摸屏设备中生成滑动轨迹的方法 |
CN109101171A (zh) * | 2017-06-21 | 2018-12-28 | 北京易真学思教育科技有限公司 | 一种在触摸屏设备中生成滑动轨迹的方法 |
CN111352539A (zh) * | 2018-12-24 | 2020-06-30 | 中移(杭州)信息技术有限公司 | 一种终端进行互动的方法及装置 |
CN111124180A (zh) * | 2019-12-23 | 2020-05-08 | 江苏欧帝电子科技有限公司 | 一种生成笔迹线条的方法及装置 |
CN111124180B (zh) * | 2019-12-23 | 2023-04-25 | 江苏欧帝电子科技有限公司 | 一种生成笔迹线条的方法及装置 |
CN111179416A (zh) * | 2019-12-30 | 2020-05-19 | 北京东方逸腾数码医疗设备技术有限公司 | 血管矢量图模型生成方法及装置 |
CN111179416B (zh) * | 2019-12-30 | 2023-04-25 | 北京东方逸腾数码医疗设备技术有限公司 | 血管矢量图模型生成方法及装置 |
CN117315198A (zh) * | 2023-10-09 | 2023-12-29 | 中微智创(北京)软件技术有限公司 | 一种动目标轨迹拐角平缓微调的平滑优化方法和系统 |
CN117315198B (zh) * | 2023-10-09 | 2024-04-16 | 中微智创(北京)软件技术有限公司 | 一种动目标轨迹拐角平缓微调的平滑优化方法和系统 |
CN117726710A (zh) * | 2024-02-18 | 2024-03-19 | 粤港澳大湾区数字经济研究院(福田) | 一种基于曲线离散的绘制方法及相关装置 |
CN117726710B (zh) * | 2024-02-18 | 2024-06-04 | 粤港澳大湾区数字经济研究院(福田) | 一种基于曲线离散的绘制方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354870A (zh) | 一种绘制轨迹的还原方法和装置 | |
CN103500037A (zh) | 一种轨迹平滑的方法及装置 | |
CN112685868B (zh) | 一种配电网单线图生成方法、装置及存储介质 | |
US7486789B2 (en) | Device and method for calculation on elliptic curve | |
CN111078689B (zh) | 一种非连续型预排序遍历树算法的数据处理方法及系统 | |
CN103440101A (zh) | 一种手写原笔迹数据的处理方法、系统及手机 | |
CN106294739A (zh) | 一种基于k2树和多值决策图的大规模图数据处理方法 | |
CN106155540B (zh) | 电子毛笔笔形处理方法和装置 | |
CN111986314B (zh) | 三维重建中的图像分组方法及装置、电子设备和存储介质 | |
CN102298787A (zh) | 动画对象运动的控制方法及系统 | |
CN105978711A (zh) | 一种基于最小生成树的最佳交换边查找方法 | |
CN104021226A (zh) | 预取规则的更新方法及装置 | |
Liu et al. | Strong social graph based trust-oriented graph pattern matching with multiple constraints | |
Mathew et al. | Interactive inverse spatio-temporal crowd motion design | |
CN113407537B (zh) | 数据处理方法、装置及电子设备 | |
CN106951166A (zh) | 笔迹绘制方法及装置 | |
CN105975139B (zh) | 触摸点提取方法、装置和显示设备 | |
Shao et al. | Recovering chaotic properties from small data | |
CN112270730A (zh) | 曲线生成方法及装置、电子设备和可读存储介质 | |
CN110780800B (zh) | 一种触控设备书写笔迹优化方法 | |
CN111078106A (zh) | 应用于触屏设备的曲线生成方法、装置及计算机存储介质 | |
Chaumet et al. | Efficient wpinn-approximations to entropy solutions of hyperbolic conservation laws | |
CN116821885B (zh) | 数据采集方法、装置、计算机设备和存储介质 | |
CN114065640B (zh) | 联邦树模型的数据处理方法、装置、设备及存储介质 | |
CN112668143B (zh) | 一种指挥关系层次结构动态可视化自动布局方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160224 |
|
RJ01 | Rejection of invention patent application after publication |