CN111383296B - 绘制轨迹的显示方法、装置及存储介质 - Google Patents
绘制轨迹的显示方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111383296B CN111383296B CN201811619116.8A CN201811619116A CN111383296B CN 111383296 B CN111383296 B CN 111383296B CN 201811619116 A CN201811619116 A CN 201811619116A CN 111383296 B CN111383296 B CN 111383296B
- Authority
- CN
- China
- Prior art keywords
- handwriting
- width
- coordinates
- point
- sliding
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000012937 correction Methods 0.000 claims description 145
- 238000005457 optimization Methods 0.000 claims description 46
- 238000001514 detection method Methods 0.000 claims description 20
- 239000003086 colorant Substances 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 5
- 230000000694 effects Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 239000002131 composite material Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 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/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本公开是关于一种绘制轨迹的显示方法、装置及存储介质,属于终端技术领域。所述方法包括:确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标;根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;通过自定义的轨迹设置信息显示所述绘制轨迹。本公开可以通过自定义的设置信息显示绘制轨迹。由于自定义的轨迹设置信息可以进行设置,从而避免了绘制轨迹显示单一,提高了显示的绘制轨迹的多样性和丰富性,以及用户粘度。
Description
技术领域
本公开涉及终端技术领域,尤其涉及一种绘制轨迹的显示方法、装置及存储介质。
背景技术
随着科技的发展,终端更新换代的速度加快,诸如手机、平板电脑、笔迹本电脑等终端的屏幕性能也在大幅度上升。比如,终端具有画笔功能,用户可以在终端屏幕上进行绘制操作,终端在检测到绘制操作时可以显示对应的绘制轨迹。
目前,终端在检测到用户在终端的屏幕上进行绘制操作时,可以识别用户的绘制操作对应的绘制轨迹,并按照固定的轨迹显示效果在屏幕上显示绘制轨迹。比如,按照固定的笔迹宽度、样式和颜色显示绘制轨迹。
发明内容
本公开提供一种绘制轨迹的显示方法、装置及存储介质,用于解决相关技术中无法更改绘制轨迹显示效果,导致绘制轨迹显示效果单一、用户粘度和绘制轨迹显示的丰富性低的问题。
根据本公开实施例的第一方面,提供一种绘制轨迹的显示方法,所述方法包括:
确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;
根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标;
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;
通过自定义的轨迹设置信息显示所述绘制轨迹。
可选地,所述根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标,包括:
获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,所述宽度折线是指所述绘制操作产生的滑动点形成的滑动轨迹的边缘折线;
根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,所述修正折线是指优化所述宽度折线的折线;
根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
可选地,所述根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
当所述生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
当所述生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标。
可选地,所述根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,所述PM(x)1为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述PM(y)1为当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述PM(x)2为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述PM(y)2为当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述NM(x)为当前时刻的滑动点的横坐标,所述NM(y)为当前时刻的滑动点的纵坐标,所述LM为当前时刻的滑动点对应的轨迹宽度,所述DIS(NM,NM-1)为当前时刻的滑动点与上一时刻的滑动点之间的距离,所述NM-1(x)为上一时刻的滑动点的横坐标,所述NM-1(y)为上一时刻的滑动点的纵坐标,所述M为大于或等于2的正整数。
可选地,所述M等于2,所述根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标之后,还包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,所述P1(x)1为上一时刻的滑动点在所述两条初始宽度折线中第一条宽度折线上对应的的宽度点的横坐标,所述P1(y)为上一时刻的滑动点在所述第一条宽度折线上对应的的宽度点的纵坐标,所述P1(x)2为上一时刻的滑动点在所述两条初始宽度折线中第二条宽度折线上对应的的宽度点的横坐标,所述P1(y)2为上一时刻的滑动点在所述第二条宽度折线上对应的的宽度点的纵坐标,所述N1(x)为上一时刻的滑动点的横坐标,所述N1(y)为上一时刻的滑动点的纵坐标,所述N2(x)为当前时刻的滑动点的横坐标,所述N2(y)为当前时刻的滑动点的纵坐标,所述L1为上一时刻的滑动点对应的轨迹宽度,所述DIS(N2,N1)为上一时刻的滑动点与当前时刻的滑动点之间的距离。
可选地,一个时刻的滑动点对应一个轨迹宽度;
所述根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
可选地,所述根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,包括:
当当前时刻的滑动点为所述绘制操作产生的第一个滑动点时,将当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为所述第一个滑动点时,根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标。
可选地,所述根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,包括:
根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,所述Q1K为当前时刻的滑动点在所述两条修正折线中第一条修正折线上对应的笔迹点的坐标,所述Q2K为当前时刻的滑动点在所述两条修正折线中第二条修正折线上对应的笔迹点的坐标,所述Q1K-1为上一时刻的滑动点在所述第一条修正折线上对应的笔迹点的坐标,所述Q2K-1为上一时刻的滑动点在所述第二条修正折线上对应的笔迹点的坐标,所述P1K为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,所述P2K为前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标,所述ratio1为当前时刻的滑动点在所述第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的速度,所述ratio2为当前时刻的滑动点在所述第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的速度,所述ratio1与所述ratio2均为大于0且小于1的常数。
可选地,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述优化阈值为通过所述贝塞尔曲线优化所述绘制轨迹的阈值;
根据位于所述贝塞尔曲线上的笔迹点的数量确定所述当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的坐标;
根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量、坐标和所述优化阈值,确定所述绘制轨迹。
可选地,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量;
第四公式:W=(DIS(I中,I中-1)/1.5*D)+1
其中,所述W为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述DIS(I中,I中-1)为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,所述D为显示所述绘制轨迹的显示屏的屏幕密度。
可选地,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹之后,还包括:
当所述绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定所述笔迹交叉点的优化方案,所述笔迹边缘线为通过所述贝塞尔曲线形成的构成所述绘制轨迹的曲线;
基于所述优化方案优化所述笔迹交叉点。
可选地,所述基于所述优化方案优化所述笔迹交叉点,包括:
当所述优化方案为第一方案时,将当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
可选地,所述确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标之前,还包括:
显示自定义的绘制画布;
在检测所述绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
可选地,所述轨迹设置信息包括绘制样式和颜色信息;
所述通过自定义的轨迹设置信息显示所述绘制轨迹,包括:
当所述绘制样式为路径样式,所述颜色信息为单色信息时,按照所述路径样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述路径样式,所述颜色信息为多色信息时,按照所述路径样式和所述多色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为线段样式,所述颜色信息为所述单色信息时,按照所述线段样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述线段样式,所述颜色信息为所述多色信息时,按照所述线段样式和所述多色信息描述的颜色显示所述绘制轨迹。
可选地,所述通过自定义的轨迹设置信息显示所述绘制轨迹之前,还包括:
检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及所述绘制操作所产生的绘制事件的状态;
当确定的滑动点的个数至少为三个,且所述绘制事件的状态为抬起事件的发生状态时,执行所述通过自定义的轨迹设置信息显示所述绘制轨迹的操作;
当确定的滑动点的个数不足三个或所述绘制事件的状态不为抬起事件的发生状态时,确定对所述绘制事件的状态进行检测的检测次数,并当所述检测次数大于或等于次数阈值时,执行所述通过自定义的轨迹设置信息显示所述绘制轨迹的操作。
根据本公开实施例的第二方面,提供一种绘制轨迹的显示装置,所述装置包括:
第一确定模块,用于确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;
第二确定模块,用于根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标;
第三确定模块,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;
第一显示模块,用于通过自定义的轨迹设置信息显示所述绘制轨迹。
可选地,所述第二确定模块包括:
获取子模块,用于获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,所述宽度折线是指所述绘制操作产生的滑动点形成的滑动轨迹的边缘折线;
第一确定子模块,用于根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第二确定子模块,用于根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,所述修正折线是指优化所述宽度折线的折线;
第三确定子模块,用于根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
可选地,所述第一确定子模块用于:
当所述生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
当所述生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标。
可选地,所述第一确定子模块用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,所述PM(x)1为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述PM(y)1为当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述PM(x)2为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述PM(y)2为当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述NM(x)为当前时刻的滑动点的横坐标,所述NM(y)为当前时刻的滑动点的纵坐标,所述LM为当前时刻的滑动点对应的轨迹宽度,所述DIS(NM,NM-1)为当前时刻的滑动点与上一时刻的滑动点之间的距离,所述NM-1(x)为上一时刻的滑动点的横坐标,所述NM-1(y)为上一时刻的滑动点的纵坐标,所述M为大于或等于2的正整数。
可选地,所述M等于2,所述第一确定子模块还用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,所述P1(x)1为上一时刻的滑动点在所述两条初始宽度折线中第一条宽度折线上对应的的宽度点的横坐标,所述P1(y)为上一时刻的滑动点在所述第一条宽度折线上对应的的宽度点的纵坐标,所述P1(x)2为上一时刻的滑动点在所述两条初始宽度折线中第二条宽度折线上对应的的宽度点的横坐标,所述P1(y)2为上一时刻的滑动点在所述第二条宽度折线上对应的的宽度点的纵坐标,所述N1(x)为上一时刻的滑动点的横坐标,所述N1(y)为上一时刻的滑动点的纵坐标,所述N2(x)为当前时刻的滑动点的横坐标,所述N2(y)为当前时刻的滑动点的纵坐标,所述L1为上一时刻的滑动点对应的轨迹宽度,所述DIS(N2,N1)为上一时刻的滑动点与当前时刻的滑动点之间的距离。
可选地,一个时刻的滑动点对应一个轨迹宽度;
所述第一确定子模块用于:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
可选地,所述第二确定子模块用于:
当当前时刻的滑动点为所述绘制操作产生的第一个滑动点时,将当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为所述第一个滑动点时,根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标。
可选地,所述第二确定子模块用于:
根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,所述Q1K为当前时刻的滑动点在所述两条修正折线中第一条修正折线上对应的笔迹点的坐标,所述Q2K为当前时刻的滑动点在所述两条修正折线中第二条修正折线上对应的笔迹点的坐标,所述Q1K-1为上一时刻的滑动点在所述第一条修正折线上对应的笔迹点的坐标,所述Q2K-1为上一时刻的滑动点在所述第二条修正折线上对应的笔迹点的坐标,所述P1K为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,所述P2K为前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标,所述ratio1为当前时刻的滑动点在所述第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的速度,所述ratio2为当前时刻的滑动点在所述第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的速度,所述ratio1与所述ratio2均为大于0且小于1的常数。
可选地,所述第三确定模块包括:
第四确定子模块,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
第五确定子模块,用于当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述优化阈值为通过所述贝塞尔曲线优化所述绘制轨迹的阈值;
第六确定子模块,用于根据位于所述贝塞尔曲线上的笔迹点的数量确定所述当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的坐标;
第七确定子模块,用于根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量、坐标和所述优化阈值,确定所述绘制轨迹。
可选地,所述第五确定子模块用于:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量;
第四公式:W=(DIS(I中,I中-1)/1.5*D)+1
其中,所述W为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述DIS(I中,I中-1)为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,所述D为显示所述绘制轨迹的显示屏的屏幕密度。
可选地,所述装置还包括:
第四确定模块,用于当所述绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定所述笔迹交叉点的优化方案,所述笔迹边缘线为通过所述贝塞尔曲线形成的构成所述绘制轨迹的曲线;
优化模块,用于基于所述优化方案优化所述笔迹交叉点。
可选地,所述优化模块用于:
当所述优化方案为第一方案时,将当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
可选地,所述装置还包括:
第二显示模块,用于显示自定义的绘制画布;
切换模块,用于在检测所述绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
可选地,所述轨迹设置信息包括绘制样式和颜色信息;
所述第一显示模块用于:
当所述绘制样式为路径样式,所述颜色信息为单色信息时,按照所述路径样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述路径样式,所述颜色信息为多色信息时,按照所述路径样式和所述多色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为线段样式,所述颜色信息为所述单色信息时,按照所述线段样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述线段样式,所述颜色信息为所述多色信息时,按照所述线段样式和所述多色信息描述的颜色显示所述绘制轨迹。
可选地,所述装置还包括:
检测模块,用于检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及所述绘制操作所产生的绘制事件的状态;
第一触发模块,用于当确定的滑动点的个数至少为三个,且所述绘制事件的状态为抬起事件的发生状态时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹;
第二触发模块,用于当确定的滑动点的个数不足三个或所述绘制事件的状态不为抬起事件的发生状态时,确定对所述绘制事件的状态进行检测的检测次数,并当所述检测次数大于或等于次数阈值时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹。
根据本公开实施例的第三方面,提供一种终端控制装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面提供的任一项方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面提供的任一项方法的步骤。
根据本公开实施例的第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面提供的任一项方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:在本公开实施例中,可以确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标,并根据宽度点坐标确定当前时刻对应的笔迹中点的坐标,然后根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,最后通过自定义的轨迹设置信息显示绘制轨迹。由于可以通过自定义的轨迹设置信息显示绘制轨迹,且由于自定义的轨迹设置信息可以进行设置,从而避免了绘制轨迹显示单一,提高了显示的绘制轨迹的多样性和丰富性,以及用户粘度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种绘制轨迹的显示方法的流程图。
图2是根据一示例性实施例示出的另一种绘制轨迹的显示方法的流程图。
图3是根据一示例性实施例示出的一种路径样式的绘制轨迹的示意图。
图4是根据一示例性实施例示出的一种线段样式的绘制轨迹的示意图。
图5是根据一示例性实施例示出的一种路径样式与线段样式结合的综合样式的绘制轨迹的示意图。
图6是根据一示例性实施例示出的第一种绘制轨迹的显示装置的框图。
图7是根据一示例性实施例示出的一种第二确定模块的框图。
图8是根据一示例性实施例示出的一种第三确定模块的框图。
图9是根据一示例性实施例示出的第二种绘制轨迹的显示装置的框图。
图10是根据一示例性实施例示出的第三种绘制轨迹的显示装置的框图。
图11是根据一示例性实施例示出的第四种绘制轨迹的显示装置的框图。
图12是根据一示例性实施例示出的一种终端的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在对本公开实施例进行详细的解释说明之前,先对本公开实施例中涉及到的应用场景进行解释说明。
随着技术的发展,终端功能越来越丰富,终端的屏幕性能也有了大幅度的提升。其中,当有的用户需要进行字体输入时,可能会通过字体绘制的方式输入字体,此时需要使用终端的画笔功能,或者,当用户通过终端的图画应用程序绘制图画时,同样需要使用终端的画笔功能。当用户使用终端的画笔功能时,用户可以在终端屏幕上进行绘制操作。终端在检测到用户在终端的屏幕上进行绘制操作时,可以识别用户的绘制操作对应的绘制轨迹,并按照固定的轨迹显示效果在屏幕上显示绘制轨迹。比如,按照固定的笔迹宽度、样式和颜色显示绘制轨迹。由于不论是在怎样的操作下,终端总是按照固定的轨迹显示效果显示绘制轨迹,导致绘制轨迹显示效果单一,且用户无法改变显示效果,导致用户使用体验差,降低了用户粘度和绘制轨迹显示的丰富性。
基于这样的场景,本公开实施例提供一种可以提高绘制轨迹显示丰富性和用户粘度的绘制轨迹的显示方法。
在对本公开实施例提供的应用场景进行介绍后,下述对本公开实施例提供的一种绘制轨迹的显示方法进行详细的介绍。
图1是根据一示例性实施例示出的一种绘制轨迹的显示方法的流程图,如图1所示,该方法用于终端中,包括以下步骤。
在步骤101中,确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标。
在步骤102中,根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标。
在步骤103中,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹。
在步骤104中,通过自定义的轨迹设置信息显示该绘制轨迹。
在本公开实施例中,可以确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标,并根据宽度点坐标确定当前时刻对应的笔迹中点的坐标,然后根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,最后通过自定义的轨迹设置信息显示绘制轨迹。由于可以通过自定义的轨迹设置信息显示绘制轨迹,且由于自定义的轨迹设置信息可以进行设置,从而避免了绘制轨迹显示单一,提高了显示的绘制轨迹的多样性和丰富性,以及用户粘度。
可选地,根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标,包括:
获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,该宽度折线是指该绘制操作产生的滑动点形成的滑动轨迹的边缘折线;
根据当前时刻确定的滑动点的坐标,按照该生成方式,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标;
根据当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,该修正折线是指优化该宽度折线的折线;
根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
可选地,根据当前时刻确定的滑动点的坐标,按照该生成方式,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标,包括:
当该生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标;
当该生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标。
可选地,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标,包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,PM(x)1为当前时刻的滑动点在该两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,PM(y)1为当前时刻的滑动点在该第一条宽度折线上对应的宽度点的纵坐标,PM(x)2为当前时刻的滑动点在该两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,PM(y)2为当前时刻的滑动点在该第二条宽度折线上对应的宽度点的纵坐标,NM(x)为当前时刻的滑动点的横坐标,NM(y)为当前时刻的滑动点的纵坐标,LM为当前时刻的滑动点对应的轨迹宽度,DIS(NM,NM-1)为当前时刻的滑动点与上一时刻的滑动点之间的距离,NM-1(x)为上一时刻的滑动点的横坐标,NM-1(y)为上一时刻的滑动点的纵坐标,M为大于或等于2的正整数。
可选地,M等于2,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标之后,还包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,P1(x)1为上一时刻的滑动点在该两条初始宽度折线中第一条宽度折线上对应的的宽度点的横坐标,P1(y)为上一时刻的滑动点在该第一条宽度折线上对应的的宽度点的纵坐标,P1(x)2为上一时刻的滑动点在该两条初始宽度折线中第二条宽度折线上对应的的宽度点的横坐标,P1(y)2为上一时刻的滑动点在该第二条宽度折线上对应的的宽度点的纵坐标,N1(x)为上一时刻的滑动点的横坐标,N1(y)为上一时刻的滑动点的纵坐标,N2(x)为当前时刻的滑动点的横坐标,N2(y)为当前时刻的滑动点的纵坐标,L1为上一时刻的滑动点对应的轨迹宽度,DIS(N2,N1)为上一时刻的滑动点与当前时刻的滑动点之间的距离。
可选地,一个时刻的滑动点对应一个轨迹宽度;
根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标,包括:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在该两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在该两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
可选地,根据当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,包括:
当当前时刻的滑动点为该绘制操作产生的第一个滑动点时,将当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为该第一个滑动点时,根据当前时刻的滑动点在该两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标。
可选地,根据当前时刻的滑动点在该两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标,包括:
根据当前时刻的滑动点在该两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在该两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,Q1K为当前时刻的滑动点在该两条修正折线中第一条修正折线上对应的笔迹点的坐标,Q2K为当前时刻的滑动点在该两条修正折线中第二条修正折线上对应的笔迹点的坐标,Q1K-1为上一时刻的滑动点在该第一条修正折线上对应的笔迹点的坐标,Q2K-1为上一时刻的滑动点在该第二条修正折线上对应的笔迹点的坐标,P1K为当前时刻的滑动点在该两条宽度折线中第一条宽度折线上对应的宽度点的坐标,P2K为前时刻的滑动点在该两条宽度折线中第二条宽度折线上对应的宽度点的坐标,ratio1为当前时刻的滑动点在该第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在该第一条宽度折线上对应的宽度点的速度,ratio2为当前时刻的滑动点在该第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在该第二条宽度折线上对应的宽度点的速度,ratio1与ratio2均为大于0且小于1的常数。
可选地,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量,该优化阈值为通过该贝塞尔曲线优化该绘制轨迹的阈值;
根据位于该贝塞尔曲线上的笔迹点的数量确定该当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的坐标;
根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量、坐标和该优化阈值,确定该绘制轨迹。
可选地,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量;
第四公式:W=(DIS(I中,I中-1)/1.5*D)+1
其中,W为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量,DIS(I中,I中-1)为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,D为显示该绘制轨迹的显示屏的屏幕密度。
可选地,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹之后,还包括:
当该绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定该笔迹交叉点的优化方案,该笔迹边缘线为通过该贝塞尔曲线形成的构成该绘制轨迹的曲线;
基于该优化方案优化该笔迹交叉点。
可选地,基于该优化方案优化该笔迹交叉点,包括:
当该优化方案为第一方案时,将当前时刻的滑动点在该两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在该两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
可选地,确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标之前,还包括:
显示自定义的绘制画布;
在检测该绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
可选地,轨迹设置信息包括绘制样式和颜色信息;
该通过自定义的轨迹设置信息显示该绘制轨迹,包括:
当该绘制样式为路径样式,该颜色信息为单色信息时,按照该路径样式和该单色信息描述的颜色显示该绘制轨迹;
当该绘制样式为该路径样式,该颜色信息为多色信息时,按照该路径样式和该多色信息描述的颜色显示该绘制轨迹;
当该绘制样式为线段样式,该颜色信息为该单色信息时,按照该线段样式和该单色信息描述的颜色显示该绘制轨迹;
当该绘制样式为该线段样式,该颜色信息为该多色信息时,按照该线段样式和该多色信息描述的颜色显示该绘制轨迹。
可选地,通过自定义的轨迹设置信息显示该绘制轨迹之前,还包括:
检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及该绘制操作所产生的绘制事件的状态;
当确定的滑动点的个数至少为三个,且该绘制事件的状态为抬起事件的发生状态时,执行通过自定义的轨迹设置信息显示该绘制轨迹的操作;
当确定的滑动点的个数不足三个或该绘制事件的状态不为抬起事件的发生状态时,确定对该绘制事件的状态进行检测的检测次数,并当该检测次数大于或等于次数阈值时,执行通过自定义的轨迹设置信息显示该绘制轨迹的操作。
上述所有可选技术方案,均可按照任意结合形成本公开的可选实施例,本公开实施例对此不再一一赘述。
图2是根据一示例性实施例示出的一种绘制轨迹的显示方法的流程图,如图2所示,该方法包括如下步骤。
在步骤201中,终端确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标。
由于当用户需要进行字体绘制、图像绘制等操作时,通常可以在终端的屏幕上进行绘制操作,该绘制操作作用在屏幕上时可以产生滑动点。终端可以检测该绘制操作,并确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标。
其中,终端可以在屏幕上以任意一点为圆心建立坐标系,当检测到绘制操作时,可以确定绘制操作当前时刻对应的滑动点在该坐标系上的坐标。该坐标系可以为直角坐标系、极坐标系等等。该圆心可以为屏幕中点、屏幕右上角的点、屏幕左下角的点等等。
进一步地,由于用户通常是在绘制画布上进行绘制操作的,因此,终端确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标之前,还可以显示自定义的绘制画布;在检测该绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
其中,该自定义的绘制画布为用户事先设置的绘制画布,当终端接收到画布设置指令时,可以将画布设置指令中携带的至少一个绘制画布确定为自定义的绘制画布。
需要说明的是,该画布设置指令用于对绘制画布进行设置,该指定操作为用户需要设置绘制画布时对终端进行的触发画布设置指令的操作,该指定操作可以为点击操作、滑动操作、语音操作等等。
另外,终端在确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标之前,如果不存在自定义的绘制画布,那么终端可以显示默认的绘制画布。
在步骤202中,终端根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标。
其中,终端根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标的操作可以包括下述步骤A-步骤D的操作。
步骤A:终端获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,该宽度折线是指该绘制操作产生的滑动点形成的滑动轨迹的边缘折线。
由于滑动点形成的滑动轨迹是有宽度的,且宽度折线上与滑动点对应的宽度点有多种生成方式,不同生成方式可能会导致滑动点对应的宽度点的坐标不同,从而后续显示的绘制轨迹的效果有所不同。因此,终端需要获取滑动点在两条宽度折线上分别对应的宽度点的生成方式。
需要说明的是,滑动点对应的宽度点的生成方式可以由用户事先设置的。当用户并未设置滑动点对应的宽度点的生成方式时,终端可以将多种生成方式中的任一生成方式确定为默认生成方式。比如,该生成方式包括第一方式和第二方式,将第一方式确定为默认生成方式。
步骤B:终端根据当前时刻确定的滑动点的坐标,按照该生成方式,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标。
由于滑动点有多种生成方式,根据不同的生成方式终端确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标的操作不同。当该生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在该两条宽度折线上分别对应的宽度点的坐标;当该生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标。
其中,终端根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标的操作可以为:根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标;
第一公式:/>
其中,在上述第一公式中,PM(x)1为当前时刻的滑动点在两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,PM(y)1为当前时刻的滑动点在第一条宽度折线上对应的宽度点的纵坐标,PM(x)2为当前时刻的滑动点在两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,PM(y)2为当前时刻的滑动点在第二条宽度折线上对应的宽度点的纵坐标,NM(x)为当前时刻的滑动点的横坐标,NM(y)为当前时刻的滑动点的纵坐标,LM为当前时刻的滑动点对应的轨迹宽度,DIS(NM,NM-1)为当前时刻的滑动点与上一时刻的滑动点之间的距离,NM-1(x)为上一时刻的滑动点的横坐标,NM-1(y)为上一时刻的滑动点的纵坐标,M为大于或等于2的正整数。
需要说明的是,一个时刻的滑动点对应一个轨迹宽度,每个时刻的滑动点对应的轨迹宽度可以事先设置,且每个滑动点对应的轨迹宽度可以相同也可以不相同,但是为了提高绘制轨迹的显示效果,除第一个滑动点以外的滑动点对应的轨迹宽度相同。比如,第一个滑动点对应的轨迹宽度的设置范围可以为0.0–30.0,除第一个滑动点以外的滑动点对应的轨迹宽度的设置范围可以为0.0-28.0,用户可以设置第一个滑动点对应的轨迹宽度为3.0,除第一个滑动点以外的滑动点对应的轨迹宽度为5.0。
还需要说明的是,当轨迹宽度为0.0时,可以直接将当前滑动点的坐标确定两条宽度折线上分别对应的宽度点的坐标。由于当轨迹宽度为0.0时,滑动点以及滑动点在两条宽度折线上分别对应的宽度点重合,滑动点的坐标与滑动点在两条宽度折线上分别对应的宽度点的坐标相同,因此,可以直接将当前滑动点的坐标确定两条宽度折线上分别对应的宽度点的坐标。
另外,终端根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标的方式不仅可以包括上述方式,还可以包括其他方式。比如,终端可以根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第五公式确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标。
第五公式:
其中,在上述第五公式中,PM(y)为,PM(y)为,对第五公式中的PM(y)和PM(y)进行求解运算,得到PM(y)的两个解和PM(y)的两个解,PM(y)的两个解分别为当前时刻的滑动点在两条宽度折线上分别对应的宽度点的横坐标,PM(y)的两个解分别为当前时刻的滑动点在两条宽度折线上分别对应的宽度点的纵坐标。
由于滑动点是因绘制操作产生的,每个滑动点产生时间不相同,当前时刻产生的滑动点可能是该绘制操作产生的第一个滑动点,也可能是第M个滑动点,当当前时刻产生的滑动点为第一个滑动点时,无法通过第一方式确定第一个滑动点在两条宽度折线上分别对应的宽度点的坐标。因此,终端在通过第一公式确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标之前,还需要确定当前时刻确定的滑动点是否为第一个滑动点,如果不为第一个滑动点,则根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过上述第一公式确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标。如果为第一个滑动点,则暂时不确定第一个滑动点在两条宽度折线上分别对应的宽度点的坐标,直至第二个滑动点产生后,确定第一个滑动点在两条宽度折线上分别对应的宽度点的坐标。
需要说明的是,为了便于终端确定当前时刻的滑动点是否为第一个滑动点,在绘制操作产生滑动点时,终端可以记录绘制操作的状态,绘制操作的状态用于描述绘制操作当前时刻产生的滑动点的个数。当绘制操作的状态处于第一个滑动点产生且第二个滑动点未产生的状态时,终端可以确定当前时刻的滑动点为第一个滑动点;当绘制操作的状态处于第M个滑动点产生的状态时,确定当前时刻的滑动点不为第一个滑动点。
其中,当M等于2时,终端可以在确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标之后,还可以根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标:
第二公式:
需要说明的是,在上述第二公式中,P1(x)1为上一时刻的滑动点在两条初始宽度折线中第一条宽度折线上对应的的宽度点的横坐标,P1(y)为上一时刻的滑动点在该第一条宽度折线上对应的的宽度点的纵坐标,P1(x)2为上一时刻的滑动点在两条初始宽度折线中第二条宽度折线上对应的的宽度点的横坐标,P1(y)2为上一时刻的滑动点在该第二条宽度折线上对应的的宽度点的纵坐标,N1(x)为上一时刻的滑动点的横坐标,N1(y)为上一时刻的滑动点的纵坐标,N2(x)为当前时刻的滑动点的横坐标,N2(y)为当前时刻的滑动点的纵坐标,L1为上一时刻的滑动点对应的轨迹宽度,DIS(N2,N1)为上一时刻的滑动点与当前时刻的滑动点之间的距离。
由于一个时刻的滑动点可以对应一个轨迹宽度,因此,终端根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标的操作可以为:将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
需要说明的是,当该轨迹宽度为0.0时,直接将当前滑动点的坐标确定两条宽度折线上分别对应的宽度点的坐标。
另外,终端根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标的方式不仅可以包括上述方式,终端还可以包括其他方式。比如,终端将当前时刻的滑动点的横坐标确定为确定为当前时刻的滑动点在两条宽度折线对应的宽度点的横坐标,将当前时刻的滑动点的纵坐标与当前时刻的滑动点对应的轨迹宽度的二分之一之和确定为当前时刻的滑动点在第一条宽度折线上对应的宽度点的纵坐标,将当前时刻的滑动点的纵坐标与当前时刻的滑动点对应的轨迹宽度的二分之一之差确定为当前时刻的滑动点在第二条宽度折线上对应的宽度点的纵坐标。或者,终端将当前时刻的滑动点的纵坐标确定为确定为当前时刻的滑动点在两条宽度折线对应的宽度点的纵坐标,将当前时刻的滑动点的横坐标与当前时刻的滑动点对应的轨迹宽度的二分之一之和确定为当前时刻的滑动点在第一条宽度折线上对应的宽度点的横坐标,将当前时刻的滑动点的横坐标与当前时刻的滑动点对应的轨迹宽度的二分之一之差确定为当前时刻的滑动点在第二条宽度折线上对应的宽度点的横坐标。
步骤C:终端根据当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,该修正折线是指优化宽度折线的折线。
由于每个滑动点对应两个宽度点,宽度点数量较少,仅仅通过宽度点可能无法显示完整的绘制轨迹,或者通过宽度点绘制的绘制轨迹显示效果差。因此,为了确保显示完整的绘制轨迹,或者为了保证绘制轨迹的显示效果,终端可以通过修正折线优化宽度折线,且由于修正折线上的笔迹点与宽度折线上的宽度点的坐标相关,因此,终端可以根据当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标。
其中,当当前时刻的滑动点为绘制操作产生的第一个滑动点时,终端可以将当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标;当当前时刻的滑动点不为第一个滑动点时,根据当前时刻的滑动点在两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标。
需要说明的是,由于当当前时刻的滑动点为绘制操作产生的第一个滑动点时,滑动点在两条宽度折线上分别对应的宽度点分别为两条修正折线上的第一个笔迹点,因此,可以将当前时刻的滑动点在两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标。
另外,终端根据当前时刻的滑动点在两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标的操作可以为:根据当前时刻的滑动点在两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标。
第三公式:
其中,在上述第三公式中,Q1K为当前时刻的滑动点在该两条修正折线中第一条修正折线上对应的笔迹点的坐标,Q2K为当前时刻的滑动点在该两条修正折线中第二条修正折线上对应的笔迹点的坐标,Q1K-1为上一时刻的滑动点在该第一条修正折线上对应的笔迹点的坐标,Q2K-1为上一时刻的滑动点在该第二条修正折线上对应的笔迹点的坐标,P1K为当前时刻的滑动点在该两条宽度折线中第一条宽度折线上对应的宽度点的坐标,P2K为前时刻的滑动点在该两条宽度折线中第二条宽度折线上对应的宽度点的坐标,ratio1为当前时刻的滑动点在该第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在该第一条宽度折线上对应的宽度点的速度,ratio2为当前时刻的滑动点在该第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在该第二条宽度折线上对应的宽度点的速度,ratio1与ratio2均为大于0且小于1的常数。
需要说明的是,该ratio1与ratio2的取值可以根据绘制操作产生的除第一个滑动点以外的其他滑动点对应的轨迹宽度进行设置,比如,当除第一个滑动点以外的其他滑动点对应的轨迹宽度为5.0时,确定ratio1的取值为0.3,确定ratio2的取值为0.32。另外,为了提高绘制轨迹的显示效果,要求ratio1不等于ratio2。
再者,终端根据当前时刻的滑动点在两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标的方式不仅可以包括上述方式,还可以包括其他方式。比如,终端可以确定当前时刻的滑动点在第一条宽度折线上对应的宽度点与上一时刻的滑动点在第一条修正折线上对应的笔迹点的坐标之和,将坐标之和除以2,得到当前时刻的滑动点在第一条修正折线上对应的笔迹点的坐标。确定当前时刻的滑动点在第二条宽度折线上对应的宽度点与上一时刻的滑动点在第二条修正折线上对应的笔迹点的坐标之和,将坐标之和除以2,得到当前时刻的滑动点在第二条修正折线上对应的笔迹点的坐标。
步骤D:终端根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
由于每个宽度点对应一个笔迹点,笔迹点的数量同样较少,因此,为了确保显示完整的绘制轨迹,或者为了保证绘制轨迹的显示效果,终端可以根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
其中,终端可以将上一时刻对应的笔迹点的坐标与当前时刻对应的笔迹点的坐标相加,得到笔迹点的坐标之和,将笔迹点的坐标之和除以2,得到当前时刻对应的笔迹中点的坐标。
在步骤203中,终端根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹。
由于通过贝塞尔曲线能够得到光滑的曲线,因此,为了获取光滑的绘制轨迹,终端可以根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹。而终端根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹的操作可以为:根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量,该优化阈值为通过该贝塞尔曲线优化该绘制轨迹的阈值;根据位于该贝塞尔曲线上的笔迹点的数量确定该当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的坐标;根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量、坐标和该优化阈值,确定该绘制轨迹。
其中,终端根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于贝塞尔曲线上的笔迹点的数量的操作可以为:根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量。
第四公式:W=(DIS(I中,I中-1)/1.5*D)+1
需要说明的是,在上述第四公式中,W为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量,DIS(I中,I中-1)为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,D为显示该绘制轨迹的显示屏的屏幕密度。
另外,终端根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于贝塞尔曲线上的笔迹点的数量的方式不仅可以包括上述方式,还可以包括其他方式,比如,终端将当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离除以间隔距离,得到距离商值,将距离商值减1后的差值确定为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于该贝塞尔曲线上的笔迹点的数量。
进一步地,由于终端在确定绘制轨迹之后,绘制轨迹上对应的两条笔迹边缘线之间可能存在笔迹交叉点,也可能不存在笔迹交叉点,而当存在笔迹交叉点时,笔迹交叉点处的显示效果可能较差,因此,为了提高绘制轨迹的显示效果。终端在根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹之后,确定绘制轨迹上对应的两条笔迹边缘线之间是否存在笔迹交差点;当该绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定该笔迹交叉点的优化方案,该笔迹边缘线为通过该贝塞尔曲线形成的构成该绘制轨迹的曲线;基于该优化方案优化该笔迹交叉点。
由于当存在笔迹交叉点时,绘制轨迹上对应的第一条笔迹边缘线的最后一个笔迹点的坐标与绘制轨迹上对应的第二条笔迹边缘线的最后一个笔迹点的坐标相同,因此,终端确定绘制轨迹上对应的两条笔迹边缘线之间是否存在笔迹交差点的操作可以为:终端确定第一条笔迹边缘线中最后一个笔迹点的坐标是否与第二条笔迹边缘线中最后一个笔迹点的坐标相同;当相同时,确定该绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点;当不同时,确定该绘制轨迹上对应的两条笔迹边缘线之间不存在笔迹交叉点。
其中,当该优化方案为第一方案时,将当前时刻的滑动点在该两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在该两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
另外,该优化方案除了第一方案之外,还有其他优化方案,比如,当该优化方案为第二方案时,终端将第一宽度折线上最后一个宽度点的坐标与第二条宽度折线上最后一个宽度点的坐标互换。也即是,将第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点,将第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在该两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点。
在步骤204中,终端通过自定义的轨迹设置信息显示该绘制轨迹。
其中,该轨迹设置信息可以包括绘制样式和颜色信息。因此,终端通过自定义的轨迹设置信息显示该绘制轨迹的操作可以为:当该绘制样式为路径样式,该颜色信息为单色信息时,按照该路径样式和该单色信息描述的颜色显示该绘制轨迹;当该绘制样式为该路径样式,该颜色信息为多色信息时,按照该路径样式和该多色信息描述的颜色显示该绘制轨迹;当该绘制样式为线段样式,该颜色信息为该单色信息时,按照该线段样式和该单色信息描述的颜色显示该绘制轨迹;当该绘制样式为该线段样式,该颜色信息为该多色信息时,按照该线段样式和该多色信息描述的颜色显示该绘制轨迹。
另外,该绘制样式可以是单一样式的,也可以是综合样式。也即是,绘制样式可以为路径样式或者线段样式,也可以为路径样式与线段样式结合的综合样式。比如,当该绘制样式为路径样式,该颜色信息为单色信息时,按照该路径样式和该单色信息描述的颜色显示的绘制轨迹如图3所示,当该绘制样式为线段样式,该颜色信息为该单色信息时,按照该线段样式和该单色信息描述的颜色显示的绘制轨迹如图4所示。当该绘制样式为路径样式与线段样式结合的综合样式,该颜色信息为该单色信息时,按照该综合样式和该单色信息描述的颜色显示的绘制轨迹如图5所示。
进一步地,该通过自定义的轨迹设置信息显示该绘制轨迹之前,还可以检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及该绘制操作所产生的绘制事件的状态;当确定的滑动点的个数至少为三个,且该绘制事件的状态为抬起事件的发生状态时,执行上述步骤204的操作;当确定的滑动点的个数不足三个或该绘制事件的状态不为抬起事件的发生状态时,确定对该绘制事件的状态进行检测的检测次数,并当该检测次数大于或等于次数阈值时,执行上述步骤204的操作。
由于滑动点的数量太少时,终端无法形成绘制轨迹,从而也无法显示绘制轨迹,因此,终端需要在滑动点的个数至少三个,且该绘制事件的状态为抬起事件的发生状态时,通过自定义的轨迹设置信息显示该绘制轨迹。另外,当检测次数大于或等于次数阈值时,产生的滑动点的个数至少为三个,如果终端在检测次数大于或等于次数阈值的情况下还未检测到抬起事件的发生,且终端不显示绘制轨迹,那么将会导致用户进行了长时间的绘制操作,但是终端一直不显示对应的绘制轨迹,给用户造成终端显示延迟的错觉,降低了用户粘度。因此,为了保证绘制轨迹显示的及时性,终端可以在检测次数大于或等于次数阈值时,通过自定义的轨迹设置信息显示该绘制轨迹。
需要说明的是,该次数阈值可以事先设置,比如,该次数阈值可以为10次、15次等等。
在步骤205中,当终端接收到取消显示指令时,取消对绘制轨迹的显示。
由于有时候用户的绘制操作可能会出错,导致终端显示的绘制轨迹为不符合用户预期的轨迹,此时,用户可以通过指定操作触发取消显示指令,终端在接收到该取消显示指令时,可以取消对绘制轨迹的显示。
需要说明的是,该取消显示指令可以是针对显示在绘制画布中的所有绘制轨迹的指令,也可以是针对距离当前时刻最近一次的绘制操作所产生的绘制轨迹的指令。当该取消显示指令为针对显示在绘制画布中的所有绘制轨迹的指令时,终端取消对所有绘制轨迹的显示。当取消显示指令为针对距离当前时刻最近一次的绘制操作所产生的绘制轨迹的指令时,取消对最近一次的绘制操作所产生的绘制轨迹的显示,并继续显示其他绘制轨迹。
在本公开实施例中,终端可以确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标,并根据宽度点坐标确定当前时刻对应的宽度点的坐标,根据对应的宽度点的坐标确定滑动点在修正折线上对应的笔迹中点的坐标,然后根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,最后通过自定义的轨迹设置信息显示绘制轨迹。由于可以通过自定义的轨迹设置信息显示绘制轨迹,且由于自定义的轨迹设置信息可以进行设置,从而避免了绘制轨迹显示单一,提高了显示的绘制轨迹的多样性和丰富性,以及用户粘度。
图6是根据一示例性实施例示出的一种绘制轨迹的显示装置,参见图6,所述装置包括:第一确定模块601、第二确定模块602、第三确定模块603和第一显示模块604。
第一确定模块601,用于确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;
第二确定模块602,用于根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标;
第三确定模块603,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;
第一显示模块604,用于通过自定义的轨迹设置信息显示所述绘制轨迹。
可选地,参见图7,所述第二确定模块602包括:
获取子模块6021,用于获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,所述宽度折线是指所述绘制操作产生的滑动点形成的滑动轨迹的边缘折线;
第一确定子模块6022,用于根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第二确定子模块6023,用于根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,所述修正折线是指优化所述宽度折线的折线;
第三确定子模块6024,用于根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标。
可选地,所述第一确定子模块6022用于:
当所述生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
当所述生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标。
可选地,所述第一确定子模块6022用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,PM(x)1为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,PM(y)1为当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,PM(x)2为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,PM(y)2为当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,NM(x)为当前时刻的滑动点的横坐标,NM(y)为当前时刻的滑动点的纵坐标,LM为当前时刻的滑动点对应的轨迹宽度,DIS(NM,NM-1)为当前时刻的滑动点与上一时刻的滑动点之间的距离,NM-1(x)为上一时刻的滑动点的横坐标,NM-1(y)为上一时刻的滑动点的纵坐标,M为大于或等于2的正整数。
可选地,M等于2,所述第一确定子模块6022还用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,P1(x)1为上一时刻的滑动点在所述两条初始宽度折线中第一条宽度折线上对应的的宽度点的横坐标,P1(y)为上一时刻的滑动点在所述第一条宽度折线上对应的的宽度点的纵坐标,P1(x)2为上一时刻的滑动点在所述两条初始宽度折线中第二条宽度折线上对应的的宽度点的横坐标,P1(y)2为上一时刻的滑动点在所述第二条宽度折线上对应的的宽度点的纵坐标,N1(x)为上一时刻的滑动点的横坐标,N1(y)为上一时刻的滑动点的纵坐标,N2(x)为当前时刻的滑动点的横坐标,N2(y)为当前时刻的滑动点的纵坐标,L1为上一时刻的滑动点对应的轨迹宽度,DIS(N2,N1)为上一时刻的滑动点与当前时刻的滑动点之间的距离。
可选地,一个时刻的滑动点对应一个轨迹宽度;
所述第一确定子模块6022用于:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
可选地,所述第二确定子模块6023用于:
当当前时刻的滑动点为所述绘制操作产生的第一个滑动点时,将当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为所述第一个滑动点时,根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标。
可选地,所述第二确定子模块6023用于:
根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,Q1K为当前时刻的滑动点在所述两条修正折线中第一条修正折线上对应的笔迹点的坐标,Q2K为当前时刻的滑动点在所述两条修正折线中第二条修正折线上对应的笔迹点的坐标,Q1K-1为上一时刻的滑动点在所述第一条修正折线上对应的笔迹点的坐标,Q2K-1为上一时刻的滑动点在所述第二条修正折线上对应的笔迹点的坐标,P1K为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,所述P2K为前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标,ratio1为当前时刻的滑动点在所述第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的速度,ratio2为当前时刻的滑动点在所述第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的速度,ratio1与ratio2均为大于0且小于1的常数。
可选地,参见图8,所述第三确定模块603包括:
第四确定子模块6031,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
第五确定子模块6032,用于当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述优化阈值为通过所述贝塞尔曲线优化所述绘制轨迹的阈值;
第六确定子模块6033,用于根据位于所述贝塞尔曲线上的笔迹点的数量确定所述当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的坐标;
第七确定子模块6034,用于根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量、坐标和所述优化阈值,确定所述绘制轨迹。
可选地,所述第五确定子模块6032用于:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量;
第四公式:W=(DIS(I中,I中-1)/1.5*D)+1
其中,W为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,DIS(I中,I中-1)为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,D为显示所述绘制轨迹的显示屏的屏幕密度。
可选地,参见图9,所述装置还包括:
第四确定模块605,用于当所述绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定所述笔迹交叉点的优化方案,所述笔迹边缘线为通过所述贝塞尔曲线形成的构成所述绘制轨迹的曲线;
优化模块606,用于基于所述优化方案优化所述笔迹交叉点。
可选地,所述优化模块606用于:
当所述优化方案为第一方案时,将当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
可选地,参见图10,所述装置还包括:
第二显示模块607,用于显示自定义的绘制画布;
切换模块608,用于在检测所述绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
可选地,所述轨迹设置信息包括绘制样式和颜色信息;
所述第一显示模块604用于:
当所述绘制样式为路径样式,所述颜色信息为单色信息时,按照所述路径样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述路径样式,所述颜色信息为多色信息时,按照所述路径样式和所述多色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为线段样式,所述颜色信息为所述单色信息时,按照所述线段样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述线段样式,所述颜色信息为所述多色信息时,按照所述线段样式和所述多色信息描述的颜色显示所述绘制轨迹。
可选地,参见图11,所述装置还包括:
检测模块609,用于检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及所述绘制操作所产生的绘制事件的状态;
第一触发模块6010,用于当确定的滑动点的个数至少为三个,且所述绘制事件的状态为抬起事件的发生状态时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹;
第二触发模块6011,用于当确定的滑动点的个数不足三个或所述绘制事件的状态不为抬起事件的发生状态时,确定对所述绘制事件的状态进行检测的检测次数,并当所述检测次数大于或等于次数阈值时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹。
综上所述,在本公开实施例中,终端可以确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标,并根据宽度点坐标确定当前时刻对应的宽度点的坐标,根据对应的宽度点的坐标确定滑动点在修正折线上对应的笔迹中点的坐标,然后根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,最后通过自定义的轨迹设置信息显示绘制轨迹。由于可以通过自定义的轨迹设置信息显示绘制轨迹,且由于自定义的轨迹设置信息可以进行设置,从而避免了绘制轨迹显示单一,提高了显示的绘制轨迹的多样性和丰富性,以及用户粘度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图12是根据一示例性实施例示出的一种终端1200的框图。例如,终端1200可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图12,终端1200可以包括以下一个或多个组件:处理组件1202,存储器1204,电源组件1206,多媒体组件1208,音频组件1210,输入/输出(I/O)的接口1212,传感器组件1214,以及通信组件1216。
处理组件1202通常控制终端1200的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1202可以包括一个或多个处理器1220来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1202可以包括一个或多个模块,便于处理组件1202和其他组件之间的交互。例如,处理组件1202可以包括多媒体模块,以方便多媒体组件1208和处理组件1202之间的交互。
存储器1204被配置为存储各种类型的数据以支持在终端1200的操作。这些数据的示例包括用于在终端1200上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1204可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件1206为终端1200的各种组件提供电源。电源组件1206可以包括电源管理***,一个或多个电源,及其他与为终端1200生成、管理和分配电源相关联的组件。
多媒体组件1208包括在所述终端1200和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1208包括一个前置摄像头和/或后置摄像头。当终端1200处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件1210被配置为输出和/或输入音频信号。例如,音频组件1210包括一个麦克风(MIC),当终端1200处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1204或经由通信组件1216发送。在一些实施例中,音频组件1210还包括一个扬声器,用于输出音频信号。
I/O接口1212为处理组件1202和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件1214包括一个或多个传感器,用于为终端1200提供各个方面的状态评估。例如,传感器组件1214可以检测到终端1200的打开/关闭状态,组件的相对定位,例如所述组件为终端1200的显示器和小键盘,传感器组件1214还可以检测终端1200或终端1200一个组件的位置改变,用户与终端1200接触的存在或不存在,终端1200方位或加速/减速和终端1200的温度变化。传感器组件1214可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1214还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1214还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件1216被配置为便于终端1200和其他设备之间有线或无线方式的通信。终端1200可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1216经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1216还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端1200可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图1或2实施例提供的一种绘制轨迹的显示方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1204,上述指令可由终端1200的处理器1220执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述图1或2实施例提供的一种绘制轨迹的显示方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (30)
1.一种绘制轨迹的显示方法,其特征在于,所述方法包括:
确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;
获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,所述宽度折线是指所述绘制操作产生的滑动点形成的滑动轨迹的边缘折线;
根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,所述修正折线是指优化所述宽度折线的折线;
根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标;
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;
通过自定义的轨迹设置信息显示所述绘制轨迹。
2.如权利要求1所述的方法,其特征在于,所述根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
当所述生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
当所述生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标。
3.如权利要求2所述的方法,其特征在于,所述根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,所述为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述/>为当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述/>为当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述/>为当前时刻的滑动点的横坐标,所述/>为当前时刻的滑动点的纵坐标,所述/>为当前时刻的滑动点对应的轨迹宽度,所述/>为当前时刻的滑动点与上一时刻的滑动点之间的距离,所述/>为上一时刻的滑动点的横坐标,所述/>为上一时刻的滑动点的纵坐标,所述M为大于或等于2的正整数。
4.如权利要求3所述的方法,其特征在于,所述M等于2,所述根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标之后,还包括:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,所述为上一时刻的滑动点在两条初始宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述/>为上一时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述/>为上一时刻的滑动点在所述两条初始宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述/>为上一时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述/>为上一时刻的滑动点的横坐标,所述/>为上一时刻的滑动点的纵坐标,所述/>为当前时刻的滑动点的横坐标,所述/>为当前时刻的滑动点的纵坐标,所述/>为上一时刻的滑动点对应的轨迹宽度,所述/>为上一时刻的滑动点与当前时刻的滑动点之间的距离。
5.如权利要求2所述的方法,其特征在于,一个时刻的滑动点对应一个轨迹宽度;
所述根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,包括:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
6.如权利要求1所述的方法,其特征在于,所述根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,包括:
当当前时刻的滑动点为所述绘制操作产生的第一个滑动点时,将当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为所述第一个滑动点时,根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标。
7.如权利要求6所述的方法,其特征在于,所述根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,包括:
根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,所述为当前时刻的滑动点在所述两条修正折线中第一条修正折线上对应的笔迹点的坐标,所述/>为当前时刻的滑动点在所述两条修正折线中第二条修正折线上对应的笔迹点的坐标,所述/>为上一时刻的滑动点在所述第一条修正折线上对应的笔迹点的坐标,所述/>为上一时刻的滑动点在所述第二条修正折线上对应的笔迹点的坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标,所述/>为当前时刻的滑动点在所述第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的速度,所述/>为当前时刻的滑动点在所述第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的速度,所述/>与所述/>均为大于0且小于1的常数。
8.如权利要求1所述的方法,其特征在于,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述优化阈值为通过所述贝塞尔曲线优化所述绘制轨迹的阈值;
根据位于所述贝塞尔曲线上的笔迹点的数量确定所述当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的坐标;
根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量、坐标和所述优化阈值,确定所述绘制轨迹。
9.如权利要求8所述的方法,其特征在于,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,包括:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量;
第四公式:
其中,所述为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述/>为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,所述/>为显示所述绘制轨迹的显示屏的屏幕密度。
10.如权利要求1所述的方法,其特征在于,所述根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹之后,还包括:
当所述绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定所述笔迹交叉点的优化方案,所述笔迹边缘线为通过所述贝塞尔曲线形成的构成所述绘制轨迹的曲线;
基于所述优化方案优化所述笔迹交叉点。
11.如权利要求10所述的方法,其特征在于,所述基于所述优化方案优化所述笔迹交叉点,包括:
当所述优化方案为第一方案时,将当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
12.如权利要求1-11任一权利要求所述的方法,其特征在于,所述确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标之前,还包括:
显示自定义的绘制画布;
在检测所述绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
13.如权利要求1所述的方法,其特征在于,所述轨迹设置信息包括绘制样式和颜色信息;
所述通过自定义的轨迹设置信息显示所述绘制轨迹,包括:
当所述绘制样式为路径样式,所述颜色信息为单色信息时,按照所述路径样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述路径样式,所述颜色信息为多色信息时,按照所述路径样式和所述多色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为线段样式,所述颜色信息为所述单色信息时,按照所述线段样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述线段样式,所述颜色信息为所述多色信息时,按照所述线段样式和所述多色信息描述的颜色显示所述绘制轨迹。
14.如权利要求1或13所述的方法,其特征在于,所述通过自定义的轨迹设置信息显示所述绘制轨迹之前,还包括:
检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及所述绘制操作所产生的绘制事件的状态;
当确定的滑动点的个数至少为三个,且所述绘制事件的状态为抬起事件的发生状态时,执行所述通过自定义的轨迹设置信息显示所述绘制轨迹的操作;
当确定的滑动点的个数不足三个或所述绘制事件的状态不为抬起事件的发生状态时,确定对所述绘制事件的状态进行检测的检测次数,并当所述检测次数大于或等于次数阈值时,执行所述通过自定义的轨迹设置信息显示所述绘制轨迹的操作。
15.一种绘制轨迹的显示装置,其特征在于,所述装置包括:
第一确定模块,用于确定作用在屏幕上的绘制操作当前时刻对应的滑动点的坐标;
第二确定模块,用于根据当前时刻确定的滑动点的坐标,确定当前时刻对应的笔迹中点的坐标;所述第二确定模块包括:获取子模块,用于获取滑动点在两条宽度折线上分别对应的宽度点的生成方式,所述宽度折线是指所述绘制操作产生的滑动点形成的滑动轨迹的边缘折线;第一确定子模块,用于根据当前时刻确定的滑动点的坐标,按照所述生成方式,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;第二确定子模块,用于根据当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标,确定当前时刻的滑动点在两条修正折线上分别对应的笔迹点的坐标,所述修正折线是指优化所述宽度折线的折线;第三确定子模块,用于根据当前时刻的滑动点在每条修正折线上对应的笔迹点的坐标,以及上一时刻的滑动点在每条修正折线上对应的笔迹点的坐标,确定当前时刻对应的笔迹中点的坐标;
第三确定模块,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过贝塞尔曲线确定当前时刻与上一时刻之间的绘制轨迹;
第一显示模块,用于通过自定义的轨迹设置信息显示所述绘制轨迹。
16.如权利要求15所述的装置,其特征在于,所述第一确定子模块用于:
当所述生成方式为第一方式时,根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
当所述生成方式为第二方式时,根据当前时刻确定的滑动点的坐标,确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标。
17.如权利要求16所述的装置,其特征在于,所述第一确定子模块用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过下述第一公式确定当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标;
第一公式:
其中,所述为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述/>为当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述/>为当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述/>为当前时刻的滑动点的横坐标,所述/>为当前时刻的滑动点的纵坐标,所述/>为当前时刻的滑动点对应的轨迹宽度,所述/>为当前时刻的滑动点与上一时刻的滑动点之间的距离,所述/>为上一时刻的滑动点的横坐标,所述/>为上一时刻的滑动点的纵坐标,所述M为大于或等于2的正整数。
18.如权利要求17所述的装置,其特征在于,所述M等于2,所述第一确定子模块还用于:
根据当前时刻确定的滑动点的坐标和上一时刻确定的滑动点的坐标,通过如下第二公式确定上一时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标:
第二公式:
其中,所述为上一时刻的滑动点在两条初始宽度折线中第一条宽度折线上对应的宽度点的横坐标,所述/>为上一时刻的滑动点在所述第一条宽度折线上对应的宽度点的纵坐标,所述/>为上一时刻的滑动点在所述两条初始宽度折线中第二条宽度折线上对应的宽度点的横坐标,所述/>为上一时刻的滑动点在所述第二条宽度折线上对应的宽度点的纵坐标,所述/>为上一时刻的滑动点的横坐标,所述/>为上一时刻的滑动点的纵坐标,所述/>为当前时刻的滑动点的横坐标,所述/>为当前时刻的滑动点的纵坐标,所述/>为上一时刻的滑动点对应的轨迹宽度,所述/>为上一时刻的滑动点与当前时刻的滑动点之间的距离。
19.如权利要求16所述的装置,其特征在于,一个时刻的滑动点对应一个轨迹宽度;
所述第一确定子模块用于:
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之和,确定为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,当前时刻的滑动点对应的宽度积为当前时刻的滑动点对应的轨迹宽度与第一常数之间的乘积;
将当前时刻的滑动点的坐标与当前时刻的滑动点对应的宽度积之差,确定为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标。
20.如权利要求15所述的装置,其特征在于,所述第二确定子模块用于:
当当前时刻的滑动点为所述绘制操作产生的第一个滑动点时,将当前时刻的滑动点在所述两条宽度折线上分别对应的宽度点的坐标确定为当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
当当前时刻的滑动点不为所述第一个滑动点时,根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标。
21.如权利要求20所述的装置,其特征在于,所述第二确定子模块用于:
根据当前时刻的滑动点在所述两个宽度折线上分别对应的宽度点的坐标和上一时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标,通过下述第三公式确定当前时刻的滑动点在所述两条修正折线上分别对应的笔迹点的坐标;
第三公式:
其中,所述为当前时刻的滑动点在所述两条修正折线中第一条修正折线上对应的笔迹点的坐标,所述/>为当前时刻的滑动点在所述两条修正折线中第二条修正折线上对应的笔迹点的坐标,所述/>为上一时刻的滑动点在所述第一条修正折线上对应的笔迹点的坐标,所述/>为上一时刻的滑动点在所述第二条修正折线上对应的笔迹点的坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上对应的宽度点的坐标,所述/>为当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上对应的宽度点的坐标,所述/>为当前时刻的滑动点在所述第一条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第一条宽度折线上对应的宽度点的速度,所述/>为当前时刻的滑动点在所述第二条修正折线上对应的笔迹点逼近当前时刻的滑动点在所述第二条宽度折线上对应的宽度点的速度,所述/>与所述/>均为大于0且小于1的常数。
22.如权利要求15所述的装置,其特征在于,所述第三确定模块包括:
第四确定子模块,用于根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离;
第五确定子模块,用于当当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离大于优化阈值时,根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述优化阈值为通过所述贝塞尔曲线优化所述绘制轨迹的阈值;
第六确定子模块,用于根据位于所述贝塞尔曲线上的笔迹点的数量确定所述当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的坐标;
第七确定子模块,用于根据当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量、坐标和所述优化阈值,确定所述绘制轨迹。
23.如权利要求22所述的装置,其特征在于,所述第五确定子模块用于:
根据当前时刻对应的笔迹中点的坐标和上一时刻对应的笔迹中点的坐标,通过下述第四公式确定当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量;
第四公式:
其中,所述为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间位于所述贝塞尔曲线上的笔迹点的数量,所述/>为当前时刻对应的笔迹中点与上一时刻对应的笔迹中点之间的距离,所述/>为显示所述绘制轨迹的显示屏的屏幕密度。
24.如权利要求15所述的装置,其特征在于,所述装置还包括:
第四确定模块,用于当所述绘制轨迹上对应的两条笔迹边缘线之间存在笔迹交叉点时,确定所述笔迹交叉点的优化方案,所述笔迹边缘线为通过所述贝塞尔曲线形成的构成所述绘制轨迹的曲线;
优化模块,用于基于所述优化方案优化所述笔迹交叉点。
25.如权利要求24所述的装置,其特征在于,所述优化模块用于:
当所述优化方案为第一方案时,将当前时刻的滑动点在所述两条宽度折线中第一条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第一条笔迹边缘线上最后一个笔迹点,并将当前时刻的滑动点在所述两条宽度折线中第二条宽度折线上最后一个宽度点确定为当前时刻的滑动点在所述两条笔迹边缘线中第二条笔迹边缘线上最后一个笔迹点。
26.如权利要求15-25任一权利要求所述的装置,其特征在于,所述装置还包括:
第二显示模块,用于显示自定义的绘制画布;
切换模块,用于在检测所述绘制操作的过程中,每隔切换时间间隔切换当前显示的绘制画布。
27.如权利要求15所述的装置,其特征在于,所述轨迹设置信息包括绘制样式和颜色信息;
所述第一显示模块用于:
当所述绘制样式为路径样式,所述颜色信息为单色信息时,按照所述路径样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述路径样式,所述颜色信息为多色信息时,按照所述路径样式和所述多色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为线段样式,所述颜色信息为所述单色信息时,按照所述线段样式和所述单色信息描述的颜色显示所述绘制轨迹;
当所述绘制样式为所述线段样式,所述颜色信息为所述多色信息时,按照所述线段样式和所述多色信息描述的颜色显示所述绘制轨迹。
28.如权利要求15或27所述的装置,其特征在于,所述装置还包括:
检测模块,用于检测上一次进行显示之后且截止当前时刻产生的滑动点的个数以及所述绘制操作所产生的绘制事件的状态;
第一触发模块,用于当确定的滑动点的个数至少为三个,且所述绘制事件的状态为抬起事件的发生状态时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹;
第二触发模块,用于当确定的滑动点的个数不足三个或所述绘制事件的状态不为抬起事件的发生状态时,确定对所述绘制事件的状态进行检测的检测次数,并当所述检测次数大于或等于次数阈值时,触发所述第一显示模块通过自定义的轨迹设置信息显示所述绘制轨迹。
29.一种绘制轨迹的显示装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-14所述的任一项方法的步骤。
30.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现权利要求1-14所述的任一项方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619116.8A CN111383296B (zh) | 2018-12-28 | 2018-12-28 | 绘制轨迹的显示方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619116.8A CN111383296B (zh) | 2018-12-28 | 2018-12-28 | 绘制轨迹的显示方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111383296A CN111383296A (zh) | 2020-07-07 |
CN111383296B true CN111383296B (zh) | 2023-11-21 |
Family
ID=71222467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811619116.8A Active CN111383296B (zh) | 2018-12-28 | 2018-12-28 | 绘制轨迹的显示方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111383296B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113450429B (zh) * | 2021-07-26 | 2024-06-04 | 北京猿力未来科技有限公司 | 轨迹绘制方法及装置 |
CN114564106B (zh) * | 2022-02-25 | 2023-11-28 | 北京字跳网络技术有限公司 | 交互指示线的确定方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06175777A (ja) * | 1992-12-03 | 1994-06-24 | Matsushita Electric Ind Co Ltd | 毛筆書体形成装置および毛筆書体形成方法 |
CN101770343A (zh) * | 2010-03-18 | 2010-07-07 | 深圳市同洲电子股份有限公司 | 可变换输入轨迹颜色和粗细的手写输入装置及方法 |
JP2012053584A (ja) * | 2010-08-31 | 2012-03-15 | Sanyo Electric Co Ltd | 情報表示システムおよびプログラム |
CN102520849A (zh) * | 2011-11-28 | 2012-06-27 | 北京盛世宣合信息科技有限公司 | 电子毛笔书写方法及*** |
CN103559732A (zh) * | 2013-10-15 | 2014-02-05 | 锐达互动科技股份有限公司 | 一种生成毛笔笔迹的方法 |
CN107797752A (zh) * | 2017-11-07 | 2018-03-13 | 广州视睿电子科技有限公司 | 书写笔迹的呈现方法及装置、交互智能平板及存储介质 |
-
2018
- 2018-12-28 CN CN201811619116.8A patent/CN111383296B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06175777A (ja) * | 1992-12-03 | 1994-06-24 | Matsushita Electric Ind Co Ltd | 毛筆書体形成装置および毛筆書体形成方法 |
CN101770343A (zh) * | 2010-03-18 | 2010-07-07 | 深圳市同洲电子股份有限公司 | 可变换输入轨迹颜色和粗细的手写输入装置及方法 |
JP2012053584A (ja) * | 2010-08-31 | 2012-03-15 | Sanyo Electric Co Ltd | 情報表示システムおよびプログラム |
CN102520849A (zh) * | 2011-11-28 | 2012-06-27 | 北京盛世宣合信息科技有限公司 | 电子毛笔书写方法及*** |
CN103559732A (zh) * | 2013-10-15 | 2014-02-05 | 锐达互动科技股份有限公司 | 一种生成毛笔笔迹的方法 |
CN107797752A (zh) * | 2017-11-07 | 2018-03-13 | 广州视睿电子科技有限公司 | 书写笔迹的呈现方法及装置、交互智能平板及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111383296A (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109600659B (zh) | 播放视频时的操作方法、装置、设备及存储介质 | |
CN106657780B (zh) | 图像预览方法和装置 | |
CN107122113B (zh) | 生成图片的方法及装置 | |
CN107967459B (zh) | 卷积处理方法、装置及存储介质 | |
CN111369575B (zh) | 截屏方法及装置、存储介质 | |
CN110968364B (zh) | 添加快捷插件的方法、装置及智能设备 | |
CN108829475B (zh) | Ui绘制方法、装置及存储介质 | |
CN112463084A (zh) | 分屏显示方法、装置、终端设备及计算机可读存储介质 | |
CN111383296B (zh) | 绘制轨迹的显示方法、装置及存储介质 | |
CN104850643B (zh) | 图片对比方法和装置 | |
CN106527886B (zh) | 图片显示方法及装置 | |
CN109783171B (zh) | 桌面插件切换方法、装置及存储介质 | |
CN110782510A (zh) | 一种贴纸生成方法及装置 | |
US9665925B2 (en) | Method and terminal device for retargeting images | |
CN107992894B (zh) | 图像识别方法、装置及计算机可读存储介质 | |
CN112331158B (zh) | 终端显示调节方法、装置、设备及存储介质 | |
CN108829473B (zh) | 事件响应方法、装置及存储介质 | |
CN115963929A (zh) | Vr显示方法、装置及存储介质 | |
CN105975188B (zh) | 图片位置调整方法及装置 | |
CN112965653B (zh) | 触控位置上报方法、装置及电子设备 | |
CN109413232B (zh) | 屏幕显示方法及装置 | |
CN109389547B (zh) | 图像显示方法及装置 | |
CN109813295B (zh) | 方位确定方法及装置、电子设备 | |
CN112363647A (zh) | 触控操作方法及装置、存储介质 | |
CN106775651B (zh) | 网页元素移位方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |