基于触摸屏的绘制处理方法和装置与流程

文档序号:11215824阅读:334来源:国知局
基于触摸屏的绘制处理方法和装置与流程

本发明属于计算机图形处理领域,尤其是涉及一种基于触摸屏的绘制处理方法和装置。



背景技术:

目前大部分智能终端都搭载触摸屏用于用户交互,基于该触摸屏,用户不但可以实现点触式的操作,比如点击某个应用的图标而启动该应用,还可以进行诸如画图等绘制应用。

当用户通过手指等在触摸屏上快速进行绘制的过程中,受限于触摸屏等硬件原因,导致用户触摸屏幕的绘制轨迹点并不能完全被捕获到,若仅以捕获到的绘制轨迹点依次直线连接而作为最终的显示结果,将导致绘制图案的显示效果准确性较差,比如用户实际绘制的是一条曲线段,而如果仅捕获到两个绘制轨迹点,将这两个绘制轨迹点直接直线连接,最终的显示结果偏差较大。



技术实现要素:

针对上述存在的问题,本发明提供一种基于触摸屏的绘制处理方法和装置,通过对捕获到的绘制轨迹点的处理,提高绘制图案的显示准确性。

本发明提供了一种基于触摸屏的绘制处理方法,包括:

捕获用户触发的各绘制轨迹点坐标;

以相邻绘制轨迹点坐标分别为起始点坐标和终止点坐标,计算位于所述起始点坐标和所述终止点坐标之间的预设数量的控制点坐标;

根据所述起始点坐标、所述终止点坐标和所述控制点坐标,绘制对应的贝塞尔曲线;

对各所述贝塞尔曲线进行渲染显示。

本发明提供了一种基于触摸屏的绘制处理装置,包括:

获取模块,用于捕获用户触发的各绘制轨迹点坐标;

计算模块,用于以相邻绘制轨迹点坐标分别为起始点坐标和终止点坐标,计算位于所述起始点坐标和所述终止点坐标之间的预设数量的控制点坐标;

绘制模块,用于根据所述起始点坐标、所述终止点坐标和所述控制点坐标,绘制对应的贝塞尔曲线;

渲染显示模块,用于对各所述贝塞尔曲线进行渲染显示。

本发明提供的基于触摸屏的绘制处理方法和装置,在捕获到用户触发的各绘制轨迹点坐标后,以先后捕获到的相邻两个绘制轨迹点坐标分别为起始点坐标和终止点坐标,计算位于该起始点坐标和终止点坐标之间的预设数量的控制点坐标,从而根据起始点坐标、终止点坐标和控制点坐标,绘制对应的贝塞尔曲线,在得到各相邻绘制轨迹点坐标对应的各段贝塞尔曲线后,对各贝塞尔曲线进行渲染显示。通过在捕获的相邻绘制轨迹点之间计算控制点,以贝塞尔曲线来估计用户所绘制的轨迹片段,使得最终得到的绘制轨迹更加逼真于用户实际所绘制的轨迹,可以提高显示结果的准确性。

附图说明

图1为本发明基于触摸屏的绘制处理方法实施例一的流程图;

图2为绘制轨迹点的处理过程示意图;

图3为本发明基于触摸屏的绘制处理方法实施例二的流程图;

图4为本发明基于触摸屏的绘制处理装置实施例一的结构示意图;

图5为本发明基于触摸屏的绘制处理装置实施例二的结构示意图。

具体实施方式

图1为本发明基于触摸屏的绘制处理方法实施例一的流程图,该基于触摸屏的绘制处理方法可以由一绘制处理装置来执行,该装置可以设置在具有触摸屏的诸如智能手机、平板电脑等终端设备中。如图1所示,该方法包括如下步骤:

步骤101、捕获用户触发的各绘制轨迹点坐标。

结合图2,对本实施例的处理过程进行说明,图2中示意出了当用户在触摸屏上绘制了一条曲线段时,依次捕获到了p1、p2、p3、p4四个绘制轨迹 点。其中,捕获的原理与现有技术一致,不赘述。

如果将这四个绘制轨迹点之间依次用直接连接,则实际显示出的图案与用户实际绘制的图案将相去甚远,准确性不佳。为此,本实施例提供了基于触摸屏的绘制处理方法对捕获的绘制轨迹点进行一定处理后,再渲染、显示,以提高显示准确性。

本实施例中,可以采用opengles(openglforembeddedsystems)图像处理技术对上述各绘制轨迹点进行处理。在采用opengles图像处理技术时,可以首先初始化opengles环境,其中初始化的过程属于现有技术,初始化的过程中可以初始化绘制上下文、绘制纹理、渲染方式等。本实施例中,为了使用户手绘的路径更加圆滑、拐角连接处更加连贯,同时解决部分绘制方法产生锯齿的情况,可以采用二维贴图渲染方式。

值得说明的是,目前的大多智能终端设备中包含两种坐标系:uikit坐标系(x轴正方向向右,y轴正方向向下)和标准的quartz2d绘图坐标系(x轴正方向向右,y轴正方向向上)。用户用手指在触摸屏上进行绘制操作时,手指接触屏幕的点(px,py)为uikit坐标系中点,而本实施例使用opengles技术进行绘制,其使用的是quartz2d绘图坐标系。因此,针对包含上述两种坐标系的终端设备来说,需要进行坐标转换,即对捕获的各绘制轨迹点坐标进行坐标矩阵仿射变换。

变换的原理如下:

假设捕获到的某个坐标点为a,其坐标矩阵为[px,py,1],变换后的坐标点为b,其坐标矩阵表示为[px’,py’,1],则有:

b=a*m*scale;

其中,*表示乘号,m为放射矩阵,具体地:

其中,dh为终端设备的屏幕密度。因为开始捕获到的坐标点a的坐标为点坐标,需要乘以屏幕密度,以变为像素坐标。

通过上述变换,可以得到坐标点a(px,py)的变换后的坐标为b(px’,py’)。

步骤102、以相邻绘制轨迹点坐标分别为起始点坐标和终止点坐标,计 算位于起始点坐标和终止点坐标之间的预设数量的控制点坐标。

结合图2,图2中捕获到了四个绘制轨迹点,为了提高最终的绘制显示结果的准确性,需要基于获得的四个绘制轨迹点还原用户的绘制轨迹,为此,本实施例采用贝塞尔曲线的方式来估计用户的绘制轨迹。为了绘制出贝塞尔曲线,首先需要进行控制点的计算,即针对每对相邻的绘制轨迹点,在其之间计算一定数量的控制点,以用于绘制贝塞尔曲线。

本实施例中,以绘制三次贝塞尔曲线为例进行说明,相应的,每对相邻的绘制轨迹点之间需要计算出两个控制点。如果绘制四次贝塞尔曲线,则需要计算出三个控制点坐标,依次类推。

本实施例中,在计算相邻两个绘制轨迹点间的两个控制点的坐标的过程中,针对第一组相邻绘制轨迹点的计算方式与其他组相邻绘制轨迹点的计算方式的不同,具体体现如下:

根据公式(1)计算位于第一组起始点坐标p1和终止点坐标p2之间的控制点坐标c1和c2:

c1=c2=(p1+p2)/2(1)

以图2为例,第一组相邻绘制轨迹点坐标分别为p1和p2,以p1为起始点坐标,以p2为终止点坐标,则根据上述公式(1)求得的两个控制点坐标相同,c1=c2。

实际应用中,对于第一组相邻绘制轨迹点的确定可以通过如下方式实现:

初始化即没有接收到用户的绘制操作前,可以预先将触摸屏中的各点坐标都置为一定的负值,比如(-1,-1),当用户触摸屏幕后,相应的触摸点坐标被捕获到,该坐标为非负值,而用户的绘制操作从很细的时间粒度来说,绘制轨迹点坐标是具有先后顺序的,因此,可以将捕获到的第一个非负的绘制点坐标作为第一组相邻绘制轨迹点的起始点坐标,接下来捕获到的第二个绘制轨迹点坐标为第一组相邻绘制轨迹点的终止点坐标。

分别根据公式(2)和公式(3)计算位于其他组起始点坐标pj和终止点坐标pj+1之间的控制点坐标ci和ci+1:

ci=(ci-2-pj)×β-0.5×ci-1+1.5×pj+1(2)

ci+1=0.15×pj+0.2×ci+0.7×pj+1(3)

其中,i取大于或等于3的整数,j取大于或等于2的整数,β为控制参数,取值范围为0-0.3。

比如,当i=3,j=2时,针对第二组相邻绘制轨迹点坐标p2、p3:

c3=(c1-p2)×β-0.5×c2+1.5×p3

c4=0.15×p2+0.2×c3+0.7×p3

同理,针对第三组相邻绘制轨迹点坐标p3、p4之间的控制点坐标c5和c6也可以根据公式(2)、(3)计算得到。

步骤103、根据起始点坐标、终止点坐标和控制点坐标,绘制对应的贝塞尔曲线。

具体来说,首先,针对每组起始点坐标和终止点坐标,可以将该组起始点坐标、终止点坐标以及其之间的控制点坐标代入公式(4)所表示的三次贝塞尔曲线函数,求得对应的各组函数坐标b(t):

b(t)=pm(1-t)3+3cnt(1-t)2+3cn+1t2(1-t)+pm+1t3(4)

其中,m取大于或等于1的整数,n取大于或等于2的整数,t∈[0,1]。

实际上,以第一组为例,将p1、c1、c2、p2都代入公式(4)后,针对t来说,可以以一定步长,比如0.1进行对应函数坐标b(t)的计算,从而得到由10各函数坐标构成的一组函数坐标。针对其他各组,同样计算获得对应的一组函数坐标。

其次,依次连线求得的各组函数坐标b(t),以绘制三次贝塞尔曲线。

简单来说,可以将分别得到的各组函数坐标顺次直线连接。

步骤104、对各贝塞尔曲线进行渲染显示。

最后,对由各组函数坐标绘制出的三次贝塞尔曲线进行渲染显示。实际应用中,可以是依次根据各组函数坐标绘制对应的三次贝塞尔曲线线段,每绘制出一个线段,可以相应的进行渲染,绘制下一个线段后,仅需要渲染该线段即可,不用重新从头开始渲染。

本实施例中,在捕获到用户触发的各绘制轨迹点坐标后,以先后捕获到的相邻两个绘制轨迹点坐标分别为起始点坐标和终止点坐标,计算位于该起始点坐标和终止点坐标之间的预设数量的控制点坐标,从而根据起始点坐标、终止点坐标和控制点坐标,绘制对应的贝塞尔曲线,在得到各相邻绘制轨迹点坐标对应的各段贝塞尔曲线后,对各贝塞尔曲线进行渲染并显示。通过在捕获的 相邻绘制轨迹点之间计算控制点,以贝塞尔曲线来估计用户所绘制的轨迹片段,使得最终得到的绘制轨迹更加逼真于用户实际所绘制的轨迹,可以提高显示结果的准确性。

图3为本发明基于触摸屏的绘制处理方法实施例二的流程图,如图3所示,在图1所示实施例的基础上,步骤104可以通过如下具体步骤实现:

步骤201、针对每组函数坐标b(t),确定位于相邻函数坐标间的待绘制像素点坐标,待绘制像素点坐标包括每隔预设像素间隔获得的各像素点的坐标。

步骤202、将待绘制像素点坐标添加到渲染缓冲renderbuffer中,并根据预设绘制参数对待绘制像素点坐标进行绘制。

以第一组起始点坐标p1和终止点坐标p2为例,在得到对应的控制点坐标c1和c2后,基于公式(4)可以得到绘制起始点坐标p1和终止点坐标p2间的三次贝塞尔曲线线段的多个函数坐标,假设以b(t1)、b(t2)、b(t3)来表示获得的三个函数坐标。其中,函数坐标是指通过上述公式(4)求得的坐标位置。

进而,确定位于相邻函数坐标间的待绘制像素点坐标,其中,待绘制像素点坐标包括每隔预设像素间隔获得的各像素点的坐标。

以b(t1)、b(t2)来说,这两个函数坐标间的待绘制像素点坐标的确定方式可以是:以b(t1)对应的像素点为起点,比如每隔3个像素选定一个待绘制像素点。对于如果这两个函数坐标之间包含的像素点个数不是3的整数倍的情况,对于最后余下的小于3个的像素点,可以选择最后一个作为这两个函数坐标间的最后一个待绘制像素点,此时,该最后一个待绘制像素点的坐标即为b(t2)。进而,将获得的各待绘制像素点坐标添加到渲染缓冲renderbuffer中,并根据预设绘制参数对待绘制像素点坐标进行绘制。其中,该绘制参数比如是采用以3像素大小的圆形绘制单元来填充各待绘制像素点,以完成b(t1)、b(t2)间曲线段的绘制。

实际应用中,也可以先计算相邻函数坐标间的距离,即在上述举例中,计算b(t1)与b(t2)间的距离d1,以及b(t2)与b(t3)间的距离d2,其中,该距离可以是欧式距离,该距离意味着相邻函数坐标间相距多少个像素点。进而,以d1为例,以d1除3取整,即将两函数坐标点间距离按每3像素分段,从而得到该两个函数坐标间需要进行多少个待绘制像素点的填充绘制,从而以 预设绘制参数依次进行各待绘制像素点的填充后,即可进行下一对相邻函数坐标间的曲线线段的绘制处理。依次进行,即可绘出完整的三次贝塞尔曲线。

上述预设像素间隔的取值可以根据实际需求而预先设定,从保证绘制精度的角度来说,每个像素点都进行绘制效果更佳,但是会导致较低的处理效率,因此,可以根据实际需求,设置该间隔大于1。

图4为本发明基于触摸屏的绘制处理装置实施例一的结构示意图,如图4所示,该基于触摸屏的绘制处理装置包括:获取模块11、计算模块12、绘制模块13、渲染显示模块14。

获取模块11,用于捕获用户触发的各绘制轨迹点坐标。

计算模块12,用于以相邻绘制轨迹点坐标分别为起始点坐标和终止点坐标,计算位于所述起始点坐标和所述终止点坐标之间的预设数量的控制点坐标。

绘制模块13,用于根据所述起始点坐标、所述终止点坐标和所述控制点坐标,绘制对应的贝塞尔曲线。

渲染显示模块14,用于对各所述贝塞尔曲线进行渲染显示。

进一步地,该绘制处理装置还包括:坐标转换模块15。

坐标转换模块15,用于对所述各绘制轨迹点坐标进行坐标转换,以将所述各绘制轨迹点的点坐标转换为像素坐标。

具体地,所述计算模块12包括:第一计算单元121、第二计算单元122。

第一计算单元121,用于根据公式(1)计算位于第一组起始点坐标p1和终止点坐标p2之间的控制点坐标c1和c2:

c1=c2=(p1+p2)/2(1)

第二计算单元122,用于分别根据公式(2)和公式(3)计算位于其他组起始点坐标pj和终止点坐标pj+1之间的控制点坐标ci和ci+1:

ci=(ci-2-pj)×β-0.5×ci-1+1.5×pj+1(2)

ci+1=0.15×pj+0.2×ci+0.7×pj+1(3)

其中,i取大于或等于3的整数,j取大于或等于2的整数,β为控制参数,取值范围为0-0.3。

具体地,所述绘制模块13包括:第三计算单元131、绘制单元132。

第三计算单元131,用于分别将每一组起始点坐标、终止点坐标以及对应的控制点坐标代入公式(4)所表示的三次贝塞尔曲线函数,求得对应的各组函数坐标b(t):

b(t)=pm(1-t)3+3cnt(1-t)2+3cn+1t2(1-t)+pm+1t3(4)

绘制单元132,用于依次连线求得的各组函数坐标b(t),以绘制三次贝塞尔曲线;

其中,m取大于或等于1的整数,n取大于或等于2的整数,t∈[0,1]。

本实施例的基于触摸屏的绘制处理装置可以用于执行图1、图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图5为本发明基于触摸屏的绘制处理装置实施例二的结构示意图,如图5所示,在图4所示实施例的基础上,所述绘制模块13还包括:确定单元133。

确定单元133,用于针对每组函数坐标b(t),确定位于相邻函数坐标间的待绘制像素点坐标,所述待绘制像素点坐标包括每隔预设像素间隔获得的各像素点的坐标。

所述绘制单元132,还用于将所述待绘制像素点坐标添加到渲染缓冲renderbuffer中,并根据预设绘制参数对所述待绘制像素点坐标进行绘制。

本实施例的基于触摸屏的绘制处理装置可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1