CN102999930B - 一种电子笔迹线条描绘方法及装置 - Google Patents
一种电子笔迹线条描绘方法及装置 Download PDFInfo
- Publication number
- CN102999930B CN102999930B CN201110274301.XA CN201110274301A CN102999930B CN 102999930 B CN102999930 B CN 102999930B CN 201110274301 A CN201110274301 A CN 201110274301A CN 102999930 B CN102999930 B CN 102999930B
- Authority
- CN
- China
- Prior art keywords
- rectangle
- paintbrush
- pixel
- external frame
- 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.)
- Active
Links
Landscapes
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种电子笔迹线条描绘方法,其包括:点选取步骤,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的四个控制点,线条描绘步骤,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条,其中所述反走样线段采用矩形画刷绘制。另外,本发明还提供一种电子笔迹线条描绘装置。利用本发明的电子笔迹线条描绘方法和装置,可以使绘制出的线条宽度随着画线的方向不同而不同,从而使绘制的电子笔迹线条更符合实际生活中用笔所画出的笔迹的线条。
Description
技术领域
本发明涉及计算机图形处理技术,尤其涉及一种电子笔迹线条描绘方法及装置。
背景技术
计算机图形学(ComputerGraphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学,其目的是利用计算机产生令人赏心悦目的真实感图形。
光栅图形学是计算机图形学的一个分支,其是用光栅显示器来显示图形。光栅显示器将图形光栅化,并对光栅化的图形进行处理。光栅显示器可以看作是一个像素矩阵,在光栅显示器上显示的任何一个图形,实际上都是一些具有一种或多种颜色和灰度像素的集合。正由于这个原因,在光栅显示器上绘制的非水平且非垂直的直线或多边形的边界,或多或少都会呈锯齿状,这种用光栅显示器上的离散量(像素)表示连续量所引起的失真叫做走样(aliasing)。用于减少或者消除这种效果的技术叫反走样(antialiasing)。常见的反走样手段有两种方式,一是提高分辨率,二是区域采样。其中提高分辨率的方式,硬件成本太高,并且只能减轻走样效果,不能消除走样,所以通常采用区域采样的方式。
随着电子设备的普遍应用,在电子设备上绘制线条的需求越来越多,如手写汉字,而在将手写汉字的笔迹在显示设备上(如显示器)显示出来,就需要用到反走样技术。在区域采样中,目前反走样画线的方法有很多种,例如,可以采用圆形画刷来画一定宽度的线条,但是用这种画刷绘制的线条在不同的方向上线条宽度都一致,比较单调,不符合用实际的笔所画出的线条的轨迹,例如,不能真实地反映出钢笔笔尖所写出的字的轨迹。
发明内容
本发明的发明目的是提供一种电子笔迹线条描绘方法及装置,能够描绘出粗细错落有致的笔迹线条,体现出类似于钢笔书写的效果,给用户更生动的感受。
根据本发明的一个方面,提供一种电子笔迹线条描绘方法,其包括:点选取步骤,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的四个控制点;线条描绘步骤,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条,其中所述反走样线段采用矩形画刷绘制。
在本发明的上述电子笔迹线条描绘方法中,所述反走样线段采用矩形画刷绘制包括:所述矩形画刷的中心从反走样线段的起点开始,以一定的步长向反走样线段的终点移动。
在本发明的上述电子笔迹线条描绘方法中,所述反走样线段采用矩形画刷绘制还包括:当矩形画刷以一定的步长p从反走样线段的起点向其终点移动时,如果终点前一点与终点之间的距离s不足一个步长,则绘制经过终点的反走样线段的下一反走样线段时,将所述矩形画刷的起点移到距离所述下一反走样线段起点p-s的位置处,其中s<p。
在本发明的上述电子笔迹线条描绘方法中,所述矩形画刷的长宽比和倾斜角度根据需要设置。
所述矩形画刷在一位置处的像素点权值通过如下步骤获得:
步骤A:获得矩形画刷的水平方向的最小正方形外接框,并将该外接框的顶点坐标为整数,
步骤B:通过如下公式求所述外接框中像素点的权值ws,
其中,矩形画刷的对角线长度为2d,lS为以矩形画刷的中心为中心,长边与矩形画刷的长边平行,短边与矩形画刷的短边平行且经过像素点S的矩形的对角线长度的一半。
当所述矩形画刷移动至反走样线段的终点时,用所述矩形画刷绘制电子笔迹线条还包括:
步骤C:根据在步骤B中求得的像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求得外接框中像素点S的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,并显示。
当矩形画刷移动时,用所述矩形画刷绘制电子笔迹线条还包括:
所述步骤D,确定当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点、当前位置矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框的公共像素点、以及当前位置的矩形画刷的外接框中不属于当前位置的前一位置的矩形画刷的外接框的像素点,存储当前位置的矩形画刷的外接框中不属于当前位置的前一位置矩形画刷的外接框的各像素点的权值,更新所述公共像素点的权值为当前位置的矩形画刷的外接框的像素点的权值与当前位置的前一位置的矩形画刷的外接框的像素点的权值的之和,并存储;
所述步骤C,根据存储的当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求得所述各像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,并显示。
根据本发明的另一方面,提供一种电子笔迹线条描绘装置,其包括:点选取模块,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的控制点;线条描绘模块,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条;矩形画刷,其用来描绘所述反走样线段。
利用本发明的电子笔迹线条描绘方法及装置,可以使绘制出的线条的宽度随着画线的方向的不同而不同,能够描绘出粗细错落有致的笔迹线条,体现出类似于钢笔书写的效果,给用户更生动的感受。另外,本发明采用增量画法,也可以提高绘制电子笔迹线条的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明的电子笔迹线条描绘方法的流程图;
图2示出了本发明的矩形画刷的颜色分布的方法流程图;。
图3示出了本发明的矩形画刷的移动过程示意图;
图4示出了根据本发明的一个实施例的流程图;
图5示出了根据鼠标移动得到的采样点与所画曲线之间的关系图;
图6示出了本发明的矩形画刷的示意图;
图7示出了利用本发明的梯度权值方法给出的矩形画刷的颜色分布图放大了4倍的矩形画刷示意图;
图8示出了用鼠标使用图7所示的矩形画刷画出的曲线的样子的示意图;
图9示出了本发明的矩形画刷的矩形画刷的方框图。
具体实施方式
下面通过具体实施方式进一步详细描述本发明,但本发明并不仅仅限于此。
通常在计算机、手持移动终端、触摸板等上用鼠标或者手指、或触控笔等输入装置进行手写输入时,所述输入装置移动的笔迹在显示装置上显示出的笔迹曲线,都是通过将无数个点用短线段依次连接而成,所取的点越密集,所描绘的曲线越精确、越平滑,越接近理想曲线。
本发明的电子笔迹线条描绘方法,首先求出要绘制的曲线的曲线方程,然后用短线段依次连接根据求得的曲线方程所确定的曲线上的点,从而得到所要绘制的曲线。其中要绘制的曲线的曲线方程采用B样条方法求得。
B样条方法是描绘自由曲线和曲面的较为常用的方法。在B样条方法中,用来描绘曲线的B样条曲线方程通常是一个高阶多项式。在使用时,为了减少计算量,希望曲线次数越低越好,但二次曲线是一条抛物线,不能反应曲线的拐点,所以一般使用三次B样条曲线。
三次B样条曲线具有四个控制点Pi,Pi+1,Pi+2,Pi+3,其中i≥0,根据Pi,Pi+1,Pi+2,Pi+3各点的坐标、可以求出由该四个控制点所确定的三次B样条曲线方程。公式(1)给出了通过三次B样条曲线方程求B样条曲线上的点的x坐标的表达式,其中x0、x1、x2、x3分别是四个控制点P0,P1,P2,P3的横坐标。关于B样条曲线上的点的y坐标的表达式与上述关于x坐标的表达式类似,只需将其中的x0、x1、x2、x3分别换成四个控制点P0,P1,P2,P3的纵坐标y0、y1、y2、y3即可。公式(1)中的参数u的取值范围为0≤u≤1,其具体取值可以根据情况设定,u的取值越小,则通过公式(1)所求出的B样条曲线上的点越靠近起点,u的取值越多,则表明在曲线段上所选取的点越密集。
本发明根据采集到的输入装置移动轨迹上点的坐标,确定的四个控制点的坐标、以及选取的u值,利用上述公式(1)求得要绘制的曲线上的点的坐标。用线段依次连接各点则可得到要绘制的曲线。其中u的取值越多,点越密集,则所绘制的曲线越精确,平滑度越好,但是计算量也越大。例如,当u等间距取值时,如,在0和1之间20等分,则u分别取0.05、0.10、0.15、0.20......,这样,通过公式(1)可以确定所求曲线段上19个点的位置。用线段依次连接起点、曲线段上19个点、终点,可以得到要绘制的曲线段。由于B样条方法自身的特性,使得绘制出的曲线具有平滑的连续性。
下面具体介绍本发明的利用上述B样条方法、使用矩形画刷来绘制类似于真实笔迹的电子笔迹线条的描绘方法。
本发明的电子笔迹线条描绘方法,如图1所示,包括:
点选取步骤S100,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的四个控制点;
线条描绘步骤S200,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条,其中所述反走样线段采用矩形画刷绘制。
当利用本发明的上述方法描绘一个点时,在所述点选取步骤S100,选取当前的点作为三次B样条曲线的一个控制点,并将该当前的点复制三个作为该控制点之前的三个控制点。
当利用本发明的上述方法描绘与之前所描绘的点或电子笔迹线条相连接的电子笔迹线条时,在所述点选取步骤S100,选取采集到的当前的点和该当前的点之前的三个控制点作为三次B样条曲线所需的四个控制点。
在本发明的上述方法中,在用矩形画刷绘制反走样线段时,所述矩形画刷的中心从反走样线段的起点开始,以一定的步长p向反走样线段的终点移动。如果在绘制经过终点的反走样线段时,所述终点与该终点的前一点的距离s不足一个步长,则绘制下一反走样线段时,将矩形画刷的起点移植距离下一反走样线段起点p-s的位置处,其中s<p。这里,所述的步长可以取一个像素长度,最好不要大于2个像素长度。
本发明的矩形画刷的长宽比和倾斜角度可以根据需要而设置,长宽比可设置成一个常数,倾斜角度可以设置成例如30°、45°、60°等等。当用矩形画刷描绘一条反走样线段时,该矩形画刷的长宽比和倾斜角度都固定不变。通常,当画线方向平行于矩形画刷的长边方向时,所绘制出的线条最窄,当画线方向垂直于矩形画刷的对角线方向时,所绘制出的线条宽度最宽,而当画线方向不垂直于对角线方向且不平行于矩形画刷的长边或短边方向时,所绘制出的线条宽度为矩形画刷的对角线在垂直于矩形画刷中心所在点处的曲线的切线方向上的投影中较宽的投影宽度,即矩形画刷在垂直于矩形画刷中心所在点处的曲线的切线方向上的投影,从而使描绘出的线条的样子更符合实际用笔所写的笔迹线条的样子。
另外,矩形画刷在某一位置处的颜色分布对其所绘制出的线条的真实度也有很大的影响。为了描述矩形画刷的颜色分布,这里引入矩形画刷的在水平方向上的最小正方形外接框的概念,其能够包含矩形画刷且矩形画刷四边上的任意一点都落在外接框内,且该最小正方形外接框的四个顶点坐标均为整数。将所述外接框以一个像素长度进行划分,如图6所示,则一个小方格代表一个像素块,其中每个像素块的四个顶点的坐标也均为整数。
本发明的获得矩形画刷的颜色分布的方法,如图2所示,包括如下步骤。
步骤S310:获得矩形画刷的水平方向的最小正方形外接框(以下简称“矩形画刷的外接框”),并将该外接框以一个像素长度划分成若干个方格,这样每个方格作为一个像素点。
步骤S320:通过如下公式(3)求得所述外接框中像素点的权值,
其中,矩形画刷的对角线长度为2d,lS为以矩形画刷的中心为中心,长边与矩形画刷的长边平行,短边与矩形画刷的短边平行且经过像素点S的矩形的对角线长度的一半。
当矩形画刷停止移动时,当移动至反走样线段的终点时,如绘制一个点,或者绘制反走样线段的终点时,需要将整个矩形画刷的位置的像素点全部描绘出来。通过下述步骤可以计算出矩形画刷上像素点的颜色值。
步骤S330:根据在步骤S320中求得的像素点的权值,通过如下公式(4)求得外接框中像素点的颜色分量,然后显示,
Vs=ws×Vcu+(1-ws)×Vbg公式(4)
其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入上述公式(4),可以求得像素点S的RGB值,用于显示。
当矩形画刷移动时,可以反复执行步骤S320和步骤S330,从而获得各像素点的红色分量R、蓝色分量B、和绿色分量G,即各像素点的RGB值;也可以在步骤S320后增加一个步骤D:存储在步骤S320中求得外接框中的所有像素点的权值,然后在步骤S330中,根据在步骤S320中根据在步骤D中所存储的各像素点的权值求得各像素点的RGB值,并显示。
为了提高绘制电子笔迹线条的效率,在本发明的提供的方法中。在矩形画刷移动的过程中,不需要在矩形画刷每移动一个位置,就绘制一个矩形的笔迹点,而是仅绘制当前矩形画刷的前一位置不被当前矩形画刷覆盖的点。
通常情况下,首先求得第一个矩形画刷外接框中所有像素点的权值,然后对其进行存储。这样,当矩形画刷移动,当前位置的矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框存在公共像素点时(如图3所示),可以采用增量画法以减少计算量提高效率,具体地,在所述步骤S320,通过公式(3)求得当前位置的矩形画刷的水平方向最小正方形外接框中各像素点的权值;在另一步骤中,确定当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点、当前位置矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框的公共像素点、以及当前位置的矩形画刷的外接框中不属于当前位置的前一位置的矩形画刷的外接框的像素点,存储当前位置的矩形画刷的外接框中不属于当前位置的前一位置矩形画刷的外接框的各像素点的权值,更新所述公共像素点的权值为当前位置的矩形画刷的外接框的像素点的权值与当前位置的前一位置的矩形画刷的外接框的像素点的权值的之和,并存储。
在所述步骤S330,根据存储的当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求得所述各像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,并显示。
下面以用鼠标在计算机屏幕上写字为例,具体说明本发明的电子笔迹线条描绘方法。当用鼠标在计算机屏幕上画一条线时,如图4所示,具体包括如下步骤:
步骤S410:取计算机系统以一定的时间间隔对输入的笔迹进行采样的当前采样点P0以及将该采样点P0复制得到的三个点P0′、P0″、P0″′作为三次B样条曲线所需的四个控制点,其中三个复制点P0′、P0″、P0″′可以依次作为P0点之前的三个点P0′、P0″、P0″′。基于所确定的四个控制点P0′、P0″、P0″′、P0,通过三次B样条曲线方程,即公式(1),求出待书写笔画的起始点的坐标,根据所求得的起始点的坐标,在计算机屏幕上绘制出待书写笔画的起始点。
步骤S420,移动鼠标,系统获取当前的采样点P1,取当前采样点P1和之前的三个点P0″、P0″′、P0作为四个控制点;基于该四个控制点,通过三次B样条曲线方程求出待描绘线条上的点的坐标,然后以在步骤S410中确定的起始点为起点,用反走样线段依次连接所求得的该待描绘线条上的点。
步骤S430,再移动鼠标,系统获取当前的采样点P2,以当前采样点P2与之前的三个点P0″′、P0、P1作为三次B样条曲线所需的四个控制点。然后通过三次B样条曲线方程求得待描绘线条上的点的坐标,以在步骤S420中所画的线条的终点为起点,用反走样线段连接在此步骤中所求得的待描绘线条上的点。
步骤S440,再移动鼠标,系统获取当前的采样点P3,以当前采样点P3和其之前的三个点p0,p1,p2作为四个控制点。然后通过三次B样条曲线方程求得待描绘线条上的点的坐标,以在步骤S430中所画的线条的终点为起点,用反走样线段连接在此步骤中所求得的待描绘线条上的点。
以此类推,直至将待画线条画完,根据上述公式(1),当u=0时表示反走样线段的起点,当u=1时表示反走样线段的终点。
上面所述步骤S410-S440,每个步骤实际上都是重复图1所示的本发明的电子笔迹线条描绘方法,最后画出由几条曲线段组成的电子笔迹线条。利用这种方法,所描绘得到的各条曲线段在连接处二阶连续,即平滑度很好,曲线段之间的连接点不会出现明显的转折点,从而可以在计算机屏幕上书写出类似手写笔迹的字样。
为了更清楚地描述本发明,结合图5对上述步骤S440进行详细说明。如图5所示,设a-b段曲线是之前已经画好的一段曲线,b-c段曲线是当前要画的一段曲线。P3点是系统的当前采样点,p0,p1,p2为其之前的三个采样点。选取p0,p1,p2,p3为描画b-c段曲线所需的四个控制点;然后基于该四个控制点p0,p1,p2,p3,通过三次B样条曲线方程,即公式(1),求出b-c段曲线上的一系列点c0,c1,c2...的位置(即,确定x和y坐标),并用反走样线段将b-c0,c0-c1,c1-c2...依次连接起来,从而画出b-c段曲线。这里,由于曲线上的点c0,c1,c2......之间的间距比较小,所以将b、c0,c1,c2......,c各点连接起来而形成的b-c段曲线看起来是一段光滑的曲线,另外,由于b-c段曲线段与a-b段在b点光滑连接,所以整条曲线看上去比较光滑。
在b-c段曲线上所取的一系列点c0,c1,c2......可以以上述公式(1)中的参数u在0与1之间等间距地取值的方式来选取,也可以以一定的步长来选取,其中该步长根据经验来取得。步长越小,最终形成的曲线线条越光滑,但同时运算量越大,一般该步长取4到5个像素长度。
在描画上述b-c段曲线时,通常是一边求得曲线上的点的坐标一边用反走样线段依次连接各点。这样,不需要事先存储好所计算得到的各个点的坐标。当然也可以先确定bc段曲线上所取的一系点c0,c1,c2...的坐标,然后再用反走样线段依次连接,但是这需要存储各个点的坐标。
下面结合图5说明图1所示方法的步骤200中所述的“用反走样线段连接待描绘电子笔迹线条上的数个点”。在图5中,点b、c0、c1、c2、......、c依次用反走样线段连接,其中反走样线段是用矩形画刷从所确定的一个点移动到下一个点所形成的轨迹。这里以用反走样线段连接b点和c0点为例具体说明。当用矩形画刷连接b点和c0点时,矩形画刷的中心从反走样线段的起点b点开始,以一定的步长p向反走样线段的终点c0点移动,这个步长一般取一个像素长度。通常,要画的反走样线段不一定是步长的整数倍,到达要画的线段终点时可能会多余一小段距离s。在这种情况下,画下一段反走样线段时起点从下一段反走样线段的起点向其终点侧偏移一段距离p-s,其中s<p。例如,当矩形画刷从b点画反走样线段b-c0时,如果画到终点c0时,还差p-s段距离才达到一个步长。这时,在画下一段反走样线段c0-c1时,则从c0开始向c1侧偏移一段距离p-s,即,实际上线段c0-c1不是以c0点为起点,而是以距c0距离为1-S的点为起点来画的。以此类推,依次画线段c1-c2...,直至画到b-c段曲线的终点c。
由图6所示,矩形画刷的颜色表示取决于其外接框中各像素点的权值。
下面结合图6对图2中所示的本发明的矩形画刷的颜色分布的方法的步骤S320中的公式(3)进行解释说明。
图6示出了本发明的矩形画刷示意图。如图6所示,斜置的矩形是代表本发明的矩形画刷的理论矩形,o是矩形画刷的中心点。S为外接框中待求权值的一像素点,经过o点的直线lA平行于矩形画刷的长边,经过o点的直线lB垂直于矩形画刷的长边,另外,该矩形画刷的长短边的比值设为常数α,那么,以o为中心、长边平行于lA、短边平行于lB的、经过点S的矩形有且仅有一个。这个矩形的对角线的一半被称为点S与中心点o的权值距离,设为lS,则求解lS的表达式如下面公式(2)所示:
其中,dA是点S到lA的距离,dB是点S到lB的距离,当前的画线宽度为2d,即画刷的理论矩形的对角线长度。
由上式可知,当dA×α>dB时,说明点S在矩形画刷的理论矩形的长边上;当dA×α≤dB时,说明点S在矩形画刷的理论矩形的短边上。
这时,像素点S的权值与距离lS之间的关系如下面的公式(3)所示:
由该公式(3)可知,S像素点的权值与距离lS成反比。
利用公式(3)所得到的像素点S的权值,通过下面公式(4)可以求得像素点S的颜色分量。
Vs=ws×Vcu+(1-ws)×Vbg公式(4)
其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入上式,求得像素点S的RGB值。
例如,将矩形画刷的颜色分量R代入公式(4),则公式(4)变为:
Rs=ws×Rcu+(1-ws)×Rbg公式(5)
其中,Rs为最终求得的当前S点像素值的红色分量,Rcu为当前矩形画刷的颜色的红色分量,Rbg是当前S点的背景色的红色分量。
另外,对于当前像素点S的绿色分量、蓝色分量,可以通过分别将颜色分量G、B代入上述公式(4)而求得。通过将所求得的当前像素点S的红色分量、绿色分量、和蓝色分量合成,最终得到像素点S的颜色表示RGB值。
利用上述方法,可以得到图6中的正方形外接框中各个像素点的颜色表示。
本发明上述矩形画刷的颜色表示方法,计算量小,运算效率较高。如图7所示,其示出了利用本发明上面所述的梯度权值方法给出的矩形画刷的效果图放大了4倍的图示,其呈现出以一层层矩形向外发散的方式逐渐变淡的效果。图7中矩形画刷的长宽比为2∶1,长边与短边的方向分别为二四象限角平分线和一三象限角平分线,线宽(即矩形画刷的对角线长度)为30个像素。从图7中可以看出,本发明的矩形画刷的颜色渐变区域较大,这样使得画出的线条的边缘锯齿并不是很明显,而且线条从中部到边缘部颜色也有一个渐变度,这更符合实际用笔所画线条的样子。
图8示出了用鼠标使用图7所示的矩形画刷画出的曲线的样子。从中可以看出,该曲线在不同方向上的宽度不同,而且整个线条的边缘非常圆滑,看不出有锯齿。另外整个线条的走势也非常自然,非常象实际生活用钢笔等写出来的笔画的样子。
另外,根据本发明的上述求像素点的颜色权值的方法,在每次求得外接框中各像素点的权值之后,存储所求得的各像素点的权值,而可以不立即求出其RGB值,这样,当矩形画刷移动而当前矩形画刷的外接框与上一外接框存在公共像素点时,将两个外接框的公共的像素点进行权值更新,即公共像素点的权值为当前外接框的像素点的权值与上一外接框的像素点的权值的叠加,而对于属于上一外接框而不属于当前外接框的像素点才通过权值解析出它们的RGB值,这可以减少运算量,大大提高效率。
本发明还提供一种电子笔迹线条描绘装置,其包括:点选取模块,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的控制点;线条描绘模块,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条;矩形画刷,其用来描绘所述反走样线段。
当用本发明的电子笔迹线条描绘装置描绘一个点或者电子笔迹线条的起始点时,所述点选取模块选取系统以一定的时间间隔对用户的输入手写笔迹进行采样的当前的采样点作为三次B样条曲线的一个控制点,将该当前的点复制三个作为该控制点之前的三个控制点。
当用本发明的电子笔迹线条描绘装置当描绘与之前所描绘的电子笔迹线条或点相连接的电子笔迹线条时,所述点选取模块选取当前的点,并将该当前的点与其之前的三个控制点作为三次B样条曲线所需的四个控制点,所述线条描绘模块基于所述点选取模块所选定的四个控制点,利用三次B样条曲线方程,确定并用反走样线段连接待描绘电子笔迹线条上的数个点。
所述矩形画刷在绘制反走样线段时,从反走样线段的起点开始,以一定的步长p向反走样线段的终点移动。如果在绘制经过终点的反走样线段时,所述终点与该终点的前一点的距离s不足一个步长,则绘制下一反走样线段时,将矩形画刷的起点移植距离下一反走样线段起点p-s的位置处,其中s<p。
所述矩形画刷的长宽比和倾斜角度能够根据需要进行设置。
如图9所示,所述矩形画刷进一步包括:像素点权值确定模块910和颜色值确定和显示模块920。
所述像素点权值确定模块910根据矩形画刷当前所在位置,确定该矩形画刷水平方向的最小正方形外接框,该外接框的个顶点坐标值为整数,将该外接框以一个像素长度划分成若干个小方格,通过公式(3)求出每个像素点的权值,
其中,矩形画刷的对角线长度为2d,lS为以矩形画刷的中心为中心,长边与矩形画刷的长边平行,短边与矩形画刷的短边平行且经过像素点S的矩形的对角线长度的一半。
当所述矩形画刷移动至反走样线段的终点时,所述颜色值确定和显示模块920用于通过公式Vs=ws×Vcu+(1-ws)×Vbg获得各个像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B颜色分量,Vbg代表当前像素点S的背景色的R、G、B颜色分量,Vs代表最终求得的像素点S的像素值的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,然后显示。
所述矩形画刷还包括权值存储模块930。
当矩形画刷移动时,所述权值存储模块930用于确定当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点、当前位置矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框的公共像素点、以及当前位置的矩形画刷的外接框中不属于当前位置的前一位置矩形画刷的外接框的像素点,存储当前位置的矩形画刷的外接框中的不属于当前位置的前一位置矩形画刷的外接框的各像素点的权值,以及更新当前位置的矩形画刷与当前位置的前一位置的矩形画刷的公共像素点的权值为当前位置的矩形画刷的像素点的权值与当前位置的前一位置的矩形画刷的像素点的权值的叠加,并存储;
所述颜色值确定和显示模块920用于根据存储的当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求出所述各像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B颜色分量,Vbg代表当前像素点S的背景色的R、G、B颜色分量,Vs代表最终求得的像素点S的像素值的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,然后显示。
利用本发明的电子笔迹线条描绘方法及装置,可以使绘制出的线条的宽度随着画线的方向的不同而不同,能够描绘出粗细错落有致的笔迹线条,体现出类似于钢笔书写的效果,给用户更生动的感受。另外,本发明采用增量画法,也可以提高绘制电子笔迹线条的效率。
本发明还公开了一种电子设备,包括输入装置和显示装置,还包括所述电子笔迹线条描绘装置。所述电子设备可以为计算机、手机、电子阅读器等任何能够使用输入装置在其上进行笔迹输入,并采用所述电子笔迹线条描绘方法在显示装置上将输入的笔迹绘制出来的电子设备。
尽管已经结合特定的实施例描述了本发明,但是并不是限定于此处描述的特定形式。而是,本发明的范围仅仅由权利要求限制。在权利要求中,术语“包括”不排除存在其它部件或步骤。此外,尽管各个特征可以包括在不同的权利要求中,但是这些特征可以被有利地组合,且在不同权利要求中包含的内容不意味着特征的组合是不可行和/或不利的。此外,单个的含义不排除多个。因此,“一个”、“第一”、“第二”等的含义不排除多个。此外,权利要求中的附图标记不应被解释为对范围的限制。
以上所述仅是本发明的具体实施方式,应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明精神的前提下,可以作出若干改进、修改、和变形,这些改进、修改、和变形都应视为落在本申请的保护范围内。
Claims (13)
1.一种电子笔迹线条描绘方法,其特征在于,包括:
点选取步骤,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的四个控制点;
线条描绘步骤,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条,其中所述反走样线段采用矩形画刷绘制,所述矩形画刷上各点的权值分布通过如下步骤获得:
步骤A:获得矩形画刷的水平方向的最小正方形外接框,所述最小正方形外接框的顶点坐标为整数;
步骤B:通过如下公式求所述外接框中像素点的权值wS,
其中,矩形画刷的对角线长度为2d,lS为以矩形画刷的中心为中心,长边与矩形画刷的长边平行,短边与矩形画刷的短边平行且经过像素点S的矩形的对角线长度的一半。
2.根据权利要求1所述的电子笔迹线条描绘方法,其特征在于,
所述反走样线段采用矩形画刷绘制,包括:
所述矩形画刷的中心从反走样线段的起点开始,以一定的步长向反走样线段的终点移动。
3.根据权利要求2所述的电子笔迹线条描绘方法,其特征在于,
所述反走样线段采用矩形画刷绘制,还包括:
当矩形画刷以一定的步长p从反走样线段的起点向其终点移动时,如果终点前一点与终点之间的距离s不足一个步长,则绘制经过终点的反走样线段的下一反走样线段时,将所述矩形画刷的起点移到距离所述下一反走样线段起点p-s的位置处,其中s<p。
4.根据权利要求1-3中任何一项所述的电子笔迹线条描绘方法,其特征在于,
所述矩形画刷的长宽比和倾斜角度根据需要设置。
5.根据权利要求1所述的电子笔迹线条描绘方法,其特征在于,当所述矩形画刷移动至反走样线段的终点时,
用所述矩形画刷绘制电子笔迹线条还包括:
步骤C:根据在步骤B中求得的像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求得外接框中像素点S的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,并显示。
6.根据权利要求1所述的电子笔迹线条描绘方法,其特征在于,当矩形画刷移动时,
用所述矩形画刷绘制电子笔迹线条还包括:
步骤D,确定当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点、当前位置矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框的公共像素点、以及当前位置的矩形画刷的外接框中不属于当前位置的前一位置的矩形画刷的外接框的像素点,存储当前位置的矩形画刷的外接框中不属于当前位置的前一位置矩形画刷的外接框的各像素点的权值,更新所述公共像素点的权值为当前位置的矩形画刷的外接框的像素点的权值与当前位置的前一位置的矩形画刷的外接框的像素点的权值的之和,并存储;
步骤C,根据存储的当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求得所述各像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B三个基本颜色分量中的一个基本颜色分量,Vbg代表当前像素点S的背景色的R、G、B三个基本颜色分量中的一个基本颜色分量,Vs代表最终求得的像素点S的像素值的R、G、B三个基本颜色分量中的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,并显示。
7.一种电子笔迹线条描绘装置,其特征在于,包括:
点选取模块,采集用户的输入笔迹点中的四个点作为三次B样条曲线所需的四个控制点;
线条描绘模块,利用所述四个控制点确定的三次B样条曲线方程,确定数个点,并用反走样线段依次连接所述数个点,从而形成电子笔迹线条;
矩形画刷,其用来描绘所述反走样线段;所述矩形画刷还包括:
像素点权值确定模块,用于获得矩形画刷的水平方向的最小正方形外接框,所述最小正方形外接框的顶点坐标为整数;通过如下公式求出所述外接框中每个像素点的权值ws,
其中,矩形画刷的对角线长度为2d,lS为以矩形画刷的中心为中心,长边与矩形画刷的长边平行,短边与矩形画刷的短边平行且经过像素点S的矩形的对角线长度的一半。
8.根据权利要求7所述的电子笔迹线条描绘装置,其特征在于,
所述矩形画刷在绘制反走样线段时,矩形画刷的中心从反走样线段的起点开始,以一定的步长向反走样线段的终点移动。
9.根据权利要求8所述的电子笔迹线条描绘装置,其特征在于,
当矩形画刷以一定的步长p从反走样线段的起点向其终点移动时,如果终点前一点与终点之间的距离s不足一个步长,则绘制经过终点的反走样线段的下一反走样线段时,将所述矩形画刷的起点移到距离所述下一反走样线段起点p-s的位置处,其中s<p。
10.根据权利要求9所述的电子笔迹线条描绘装置,其特征在于,
所述矩形画刷的长宽比和倾斜角度根据需要设置。
11.根据权利要求7所述的电子笔迹线条描绘装置,其特征在于,所述矩形画刷还包括:颜色值确定和显示模块,
当所述矩形画刷移动至反走样线段的终点时,所述颜色值确定和显示模块用于通过公式Vs=ws×Vcu+(1-ws)×Vbg获得各个像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B颜色分量,Vbg代表当前像素点S的背景色的R、G、B颜色分量,Vs代表最终求得的像素点S的像素值的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,然后显示。
12.根据权利要求11所述的电子笔迹线条描绘装置,其特征在于,所述矩形画刷还包括:权值存储模块,
当矩形画刷移动时,
所述权值存储模块用于确定当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点、当前位置矩形画刷的外接框与当前位置的前一位置的矩形画刷的外接框的公共像素点、以及当前位置的矩形画刷的外接框中不属于当前位置的前一位置矩形画刷的外接框的像素点,存储当前位置的矩形画刷的外接框中的不属于当前位置的前一位置矩形画刷的外接框的各像素点的权值,以及更新当前位置的矩形画刷与当前位置的前一位置的矩形画刷的公共像素点的权值为当前位置的矩形画刷的像素点的权值与当前位置的前一位置的矩形画刷的像素点的权值的叠加,并存储;
所述颜色值确定和显示模块用于根据存储的当前位置的前一位置的矩形画刷的外接框中不属于当前位置的矩形画刷的外接框的各像素点的权值,通过公式Vs=ws×Vcu+(1-ws)×Vbg求出所述各像素点的像素值的颜色分量,其中,Vcu代表当前矩形画刷的R、G、B颜色分量,Vbg代表当前像素点S的背景色的R、G、B颜色分量,Vs代表最终求得的像素点S的像素值的一个基本颜色分量,分别将R、G、B三个基本颜色分量代入该公式,求得像素点S的RGB值,然后显示。
13.一种电子设备,包括输入装置和显示装置,其特征在于,还包括如权利要求8至12任一项所述的电子笔迹线条描绘装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110274301.XA CN102999930B (zh) | 2011-09-15 | 2011-09-15 | 一种电子笔迹线条描绘方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110274301.XA CN102999930B (zh) | 2011-09-15 | 2011-09-15 | 一种电子笔迹线条描绘方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102999930A CN102999930A (zh) | 2013-03-27 |
CN102999930B true CN102999930B (zh) | 2015-11-25 |
Family
ID=47928460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110274301.XA Active CN102999930B (zh) | 2011-09-15 | 2011-09-15 | 一种电子笔迹线条描绘方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999930B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108089813B (zh) * | 2018-01-12 | 2020-03-17 | Oppo广东移动通信有限公司 | 触摸屏划线操作的处理方法、装置、电子设备和存储介质 |
CN109191539B (zh) * | 2018-07-20 | 2023-01-06 | 广东数相智能科技有限公司 | 基于图像的油画生成方法、装置与计算机可读存储介质 |
CN111722731B (zh) * | 2019-03-19 | 2022-06-07 | 福建天晴数码有限公司 | 一种基于Unity引擎的地形系统的画笔实现方法及终端 |
CN111325814A (zh) * | 2020-02-20 | 2020-06-23 | 成都卫士通信息产业股份有限公司 | 一种仿真笔迹拟合方法、装置、设备及可读存储介质 |
CN111784795A (zh) * | 2020-06-01 | 2020-10-16 | 北京像素软件科技股份有限公司 | 线段走样的处理方法、装置、电子设备及存储介质 |
CN111638851B (zh) * | 2020-06-04 | 2022-02-25 | 科大讯飞股份有限公司 | 笔迹显示处理方法、相关装置及笔迹互操作系统 |
CN112116701A (zh) * | 2020-08-31 | 2020-12-22 | 中国电力科学研究院有限公司 | 一种电网潮流断面绘制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0654765A1 (en) * | 1993-11-23 | 1995-05-24 | Hewlett-Packard Company | Ink rendering |
CN1237739A (zh) * | 1998-06-01 | 1999-12-08 | 松下电器产业株式会社 | 绘制三次曲线的方法和设备 |
CN101393648A (zh) * | 2008-10-07 | 2009-03-25 | 广东威创视讯科技股份有限公司 | 手绘几何图形的识别方法 |
CN102103761A (zh) * | 2011-01-31 | 2011-06-22 | 周佳 | 手写原笔迹的实现方法 |
-
2011
- 2011-09-15 CN CN201110274301.XA patent/CN102999930B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0654765A1 (en) * | 1993-11-23 | 1995-05-24 | Hewlett-Packard Company | Ink rendering |
CN1237739A (zh) * | 1998-06-01 | 1999-12-08 | 松下电器产业株式会社 | 绘制三次曲线的方法和设备 |
CN101393648A (zh) * | 2008-10-07 | 2009-03-25 | 广东威创视讯科技股份有限公司 | 手绘几何图形的识别方法 |
CN102103761A (zh) * | 2011-01-31 | 2011-06-22 | 周佳 | 手写原笔迹的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102999930A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999930B (zh) | 一种电子笔迹线条描绘方法及装置 | |
CN101563712B (zh) | 快速像素渲染处理 | |
US8994698B2 (en) | Methods and apparatus for simulation of an erodible tip in a natural media drawing and/or painting simulation | |
Fekete et al. | TicTacToon: A paperless system for professional 2D animation | |
CN100470452C (zh) | 一种实现三维增强现实的方法及系统 | |
Chu et al. | Detail-preserving paint modeling for 3D brushes | |
US5680525A (en) | Three-dimensional graphic system with an editor for generating a textrue mapping image | |
US8854342B2 (en) | Systems and methods for particle-based digital airbrushing | |
KR100239969B1 (ko) | 이미지 발생방법 | |
CN104898947B (zh) | 一种基于鼠标位置实现gdi电子矢量地图缩放及平移的方法 | |
US7554546B1 (en) | Stippled lines using direct distance evaluation | |
US20030048277A1 (en) | Dynamically adjusted brush for direct paint systems on parameterized multi-dimensional surfaces | |
CN102999321B (zh) | 毛笔电子画刷设置装置和毛笔电子画刷 | |
JP2612260B2 (ja) | テクスチヤマツピング装置 | |
Lu et al. | Mathematical marbling | |
CN101714258A (zh) | 图形处理系统 | |
CN100476878C (zh) | 一种交互式水墨风格实时3d渲染及实现动画的方法 | |
Cline et al. | Two Stage Importance Sampling for Direct Lighting. | |
CN110221689A (zh) | 一种基于增强现实的空间绘画方法 | |
Su et al. | Simulating artistic brushstrokes using interval splines | |
CN105931212B (zh) | 一种增强文物正投影图像的方法 | |
JPH05143711A (ja) | 画像生成方法 | |
CN103295260A (zh) | 一种基于旋转体三维显示器的实时体三维数据生成方法 | |
CN111063005B (zh) | 一种笔迹的处理方法及装置 | |
Ciao et al. | Ciallo: GPU-Accelerated Rendering of Vector Brush Strokes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |