在计算机屏幕上驱动进行书写和绘图的虚拟笔的方法

文档序号:6478030阅读:482来源:国知局
专利名称:在计算机屏幕上驱动进行书写和绘图的虚拟笔的方法
技术领域
本发明主要针对教师和学生,并且是一种在计算机屏幕上驱动虚拟笔的方法,所 述虚拟笔以看起来类似于教师在真实黑板上书写所使用的真实笔的方式书写与绘图。
背景技术
教室里广泛使用的工具是笔和黑板。在黑板上,教师写语句、绘制几何形状、写化
子工、寸寸。在过去的几年中,电子学习领域已经取得了很大的进步,并且存在很多用于产生 向学生显示文字和图片的多媒体显示的可用软件产品。然而,尽管这个技术有了进步,但是甚至对于老练使用者来说仍旧很困难的是在 计算机屏幕上呈现虚拟笔,虚拟笔写字和绘图的方式像教师真实写字一样吸引人和真实。例如,为了写标记为50的字形“a” (图1-5),教师通常从点51开始,从该点划线 至点52,抬起笔并移动笔到点53,划线至点54,并抬起笔结束。在抬起笔以及从点52移动 到点53时,笔遵循非直线的轨迹56,这条轨迹取决于写的速度、已画最后一条线的形状和 要画的下一条线的形状。而且,位于点51和52之间的第一条线的中间部分是直的,并且之 后书写该中间部分的速度57将通常快于书写该条线的初始和最后部分的速度。并且,如果 我们使用钢笔(fountain-pen)来书写,则该中间部分的粗度更宽58。并且,如果教师要绘制矩形60 (图6-7)而不使笔脱离写表面,例如从点61开始并 且画至点62、63及64,那么当笔到达点62时他在开始向点63画竖直线之前必须停止片刻, 否则将由于方向突然改变而无法画出直角,而是画出圆角。点63和64也会发生相同的情 形。因此,为了软件能够在屏幕上驱动虚拟笔写出字形50或者画出矩形60,使得虚拟 笔表现为像真笔一样平滑与真实,必须克服若干技术问题,列举如下。第一,形成字形的线或者绘图的线不必呈现在屏幕上的单个框架内,而是必须在 屏幕上一个接一个地以事先建立的顺序绘制。第二,虚拟笔必须能够改变绘制速度。例如,当要绘制的线变得弯曲时绘制速度必 须降低,并且当要绘制的线变成直线时绘制速度必须提高。第三,虚拟笔必须能够改变线的粗度,正像例如使用真实的钢笔书写时所发生的 情形。第四,当书写方向突然改变时,例如在字形“Z”或矩形的角度处,虚拟笔必须停止 片刻。第五,当虚拟笔必须与书写面脱离以及必须不书写而进行移动时,例如在同一个 词的两个连续字形之间移动时或者从一个词的结尾到下一个词的开头之间移动时,必须计 算笔的轨迹。第六,虚拟笔的图像在计算机屏幕上移动的方式必须是其笔尖总是很接近下一个 被绘制的像素,因为真实的笔是这样的,并且使用者必须能够在书写的任何时刻选择另一个图像。第七,如果虚拟笔使用连笔的书写方式书写一个词的多个字形,则必须设置将多 个字形连起来的线。

发明内容
本发明的目标是提供一种方法,其通过解决上述问题允许即便不熟练的使用者驱 动虚拟笔在计算机屏幕上以看上去与真正的笔一样真实的方式例如书写使用者本身在键 盘上键入的词或者更一般地绘制图形。该目标可通过根据本发明如权利要求1所限定的方法来实现。从属权利要求限定 本发明的多个有利方面。


参照附图,通过对示例实施例的以下描述,本发明的另外特征和优点将更为清晰, 该示例实施例是示例性的而非限制性的,其中图1-5示出示例性示例手动书写字形“a”的步骤和问题;图6-7示出在绘制矩形时在锐角处暂停的问题;图8-15示出如何根据本发明产生图1-5的示例性字形“a” ;图16-17示出键入文本的步骤和设置相对参数的步骤;图18示出重新获得有关要书写的字形的坐标、要使用的插值类型和将这些坐标 转换为屏幕坐标的信息的步骤。图19示出重新获得有关暂停、笔状态(上/下)、虚拟笔进行书写的速度和粗度的 信息的步骤;图20示出产生缓冲区的步骤,缓冲区包含必须完成每个象素的绘制的时刻;图21示出根据坐标、速度和之前计算的粗度绘制图1-5的示例性字形“a”的步 骤;图22-25示出当书写图1_5的示例性字形“a”时虚拟笔脱离写表面以及在第一笔 和第二笔之间移动所必须遵循的轨迹。图26-28示出了使用连笔书写的问题以及必须如何修改每个单个字形以解决上 述问题。
具体实施例方式该方法可以分为两个阶段,称为阶段1和阶段2。在阶段1期间,产生字形和图形并将其存储在一个文件中。每个字形或图形通过 从形成要绘制的线的点集中指定结点(knot point)的有序子集而产生。对于每个结点,将 设置一些属性。这些属性包含允许虚拟笔书写字形或绘制图形所必需的所有信息,即坐 标、插值和相对权重的类型、可能的暂停、在其间笔必须脱离写表面并且进行移动而不书写 的结点、书写速度和粗度。在阶段2期间,取回在阶段1期间存储在文件中的所有信息并且使用该信息在计 算机屏幕上驱动虚拟笔。
阶段1通过使用称为“制造器(Maker) ”的应用程序来执行。阶段2通过使用称为“表演者(Player),,的应用程序来执行。阶段1 产生 字形和图形并将其存储在文件中(图8-15)。字形通过制造器产生。使用者可以通过仅仅使用鼠标或键盘与制造器交互,而无 需任何绘图板或类似工具。阶段1步骤A 产生字形或图形的结点,以及设置其属性(图8-13)。例如,产生字形“a” (标记为50)。首先参考图8-10。使用者点击鼠标五次以按顺序产生结点101、102、103、104和 105。在每次点击后,制造器在缓冲区200中存储包含所有被点击的结点的最小矩形111的 宽度W和高度H,通过将其标准化为0与1之间来将其坐标存储在缓冲区201中,通过将这 些坐标标准化来将这些坐标插值(202)(通过使用诸如样条等已知算法)到缓冲区200中 指定的矩形,以及显示已插值的线203,线203即为虚拟笔将在表演者中绘制的实际线。要使用的插值类型及其参数和权重由使用者选择,并且由表演者存储在缓冲区 205 中。例如,制造器将结点101涂为绿色将结点105涂为红色,以表示将根据使用者点击 结点的顺序绘制(利用表演者的虚拟笔)自结点101开始并且终止于结点105的线203。 然而,使用者可以使制造器颠倒存储在缓冲区201中的结点的顺序,以便制造器例如将结 点101涂成红色并将结点105涂成绿色,以表示将绘制(利用表演者的虚拟笔)自结点105 开始并且终止于结点101的线203。使用者也可以移动每个单个结点,可以消除每个单个 结点,还可以在旧的结点之间插入新的结点,通过这样的方式,线203的形状达到预期的形 状。对于每个结点,使用者指定当虚拟笔到达该点同时产生图形时必须可能地暂停多 长时间,并且最终制造器将这些数据存储在缓冲区206中。线203不包含任何锐角,于是虚 拟笔必须绘制该线而不停止。因此,结点101、102、103、104和105的暂停时间将设为0。对于每个点击的结点,使用者还指定虚拟笔是否必须脱离写表面。对于线203,虚 拟笔仅在已经到达线的终点时才脱离写表面。因此,使用者将结点101、102、103和104的 笔状态设置为“向下”,将结点105的笔状态设置为“向上”。制造器将这些数据存储在缓冲 区207中。重要的是注意到每个字形或图形必须分成多条线,线数目与真实的笔书写该字形 或绘图时的笔划次数(不抬起或暂停)相同。之后,持续暂停大于0的结点或者笔状态为 “向上”的结点将构成线的终点。因此,结点105将构成线的终点。对于每个点击的结点,使用者还指定该点下游的规定书写速度。请注意,实际的书 写速度将通过表演者及时考虑使用者在多媒体显示期间设定的值计算得到。在制造器中, 使用者仅在必须以相同的速度画线或者必须以较慢或较快的速度绘制线的某些部分时必 须进行指定。例如,如果使用者想要虚拟笔绘制线203的中央直线部分的速度比绘制其起 始和终端部分要快,则使用者设定结点101、102、103、104和105的速度为例如80%、100%、 150%、100%和80%。之后,制造器将这些数据存储在缓冲区208中。对于每个点击的结点,使用者还指定该点下游的书写粗度。例如,如果使用者想要 虚拟笔绘制线203的中央直线部分比其起始和终端部分要粗,则结点101、102、103、104和105的粗度设置为例如100%、200%、400%、200%和100%。制造器将这些数据存储在缓冲 区209中。现在参考图11-13。使用者为字形的下一条线重复之前的步骤,按序在结点106、 107、108、和109上点击鼠标四次。在每次点击后,制造器将包含所有这些点击的结点的最 小矩形的宽度W和高度H存储在缓冲区200中,将其标准化的坐标存储在缓冲区201中, 插值202这些坐标,以及显示被插值的线203和204,这些线是虚拟笔将在表演者中绘制的 实际的线。注意线203由结点101、102、103、104和105的插值产生,而线204由结点106、 107、108和109的插值产生。同样对于结点106、107、108和109中的每一个,使用者将指定 插值参数(缓冲区205),可能暂停的持续时间(缓冲区206),笔状态(缓冲区207),该点下 游的规定书写速度(缓冲区208)和该点下游的粗度(缓冲区209)。阶段1步骤B 字形单元内字形矩形的限定(图14)。该步骤只针对字形执行,对于画图必须跳过该步骤。单元410用于包含属于同一字体的所有字形。矩形420在包含字形50的矩形中 是最小的。使用者在单元410内设定矩形420的位置。制造器将矩形420相对单元410的 位置(LT)和尺寸(WH)标准化,并将这些值存储在缓冲区220中。阶段1步骤C 在文件中存储字形和图形(图15)。属于相同字体的字形通过针对每个字形存储缓冲区220和缓冲区201、205、206、 207,208和209而存储在文件中,缓冲区220包含该单元的数据,而缓冲区201、205、206、 207、208和209(图12-13)包含结点的属性的数据。假设使用者已经将与字形“a”50有关 的数据以及与具有相同样式的其他字形有关的数据存储在文件“Fontl”中。图形通过针对每个图形存储缓冲区201、205、206、207、208和209而存储在文件 中,缓冲区201、205、206、207、208和209包含结点属性的数据。阶段2 虚拟笔书写和画图(图16-28)。书写和画图由表演者中的虚拟笔来执行。首先描述如何完成字形,接下来描述如 何完成图形。阶段2步骤A 设定要书写的文本和相关的参数(图16-17)。使用者例如通过使用键盘输入虚拟笔必须书写的文本。例如,文本的第一个词是 “animals” 511。使用者还指定文本的字体,例如选择包含在文件“Fontl” 512中的字体。使用者还指定文本的字体大小(尺寸)、文本的第一个字形在屏幕上的位置、书写 速度、线的粗度和颜色。例如,字体大小值为200、在屏幕上的位置为坐标(10,10)、速度值 500像素每秒、粗度值为4像素和颜色为黑色。表演者分别将这些值存储在缓冲区513、514、 515,516 和 517 中。使用者现在可以命令表演者开始驱动虚拟笔进行书写。阶段2步骤B:自文件读取与要书写的第一字形相关的数据(图18-19)。要书写的第一字形是字形“a”。所以,表演者自缓冲区512指定的文件即文件 “Fontl”读取用于书写该字形的数据即单元内的其矩形(缓冲区220)及其结点的属性。每 个结点的属性是坐标(缓冲区201),与要使用的插值类型相关的数据(缓冲区205),可能 暂停的持续时间(缓冲区206)、笔状态(缓冲区207),该结点下游的书写速度(缓冲区208) 和该结点下游的线的粗度(缓冲区209)。
阶段2步骤C 计算要书写的第一字形的坐标(图18-19)。表演者读取缓冲区206和207以计算要书写第一字形即字形“a”需要多少笔划。 暂停时间大于0的每个结点或笔状态为“向上”的每个结点视为笔划结束。因此,字形“a” 的第一笔划将包括初始的5个结点,而第二笔划将包括最后的4个结点。表演者(图18)使用字体大小值(513)将包含单元内的字形的矩形220转换成 (操作611)屏幕坐标,将这些坐标存储在缓冲区612中,并使用这些坐标将结点的坐标201 转换为(操作613)屏幕坐标,以及将它们存储在缓冲区614中。之后,表演者使用存储在缓 冲区205中的数据分别插值(操作615)形成第一笔划和第二笔划的结点的坐标614,并且 将计算的坐标存储在缓冲区616中。最后,表演者使用缓冲区514的数据转换(操作617) 坐标616,从而获得要绘制像素的实际坐标,并将其存储在缓冲区711中。阶段2步骤D 计算书写第一字形的速度和粗度(图19)。使用速度值(缓冲区515),表演者以像素每秒为单位改变621每个结点下游的书 写速度208,将计算的值存储在缓冲区622中,对这些值进行插值623 (样条插值),并将结 果存储在缓冲区712中。使用粗度值(缓冲区516),表演者将每个结点下游线的粗度209变换为624像素, 将计算的值存储在缓冲区625中,对这些值进行插值(样条插值)626,并将结果存储在缓冲 区715中。阶段2步骤E 计算书写第一字形的每个像素的时间(图20)。表演者使用缓冲区711和712的值计算书写每个像素的时间,并将他们存储在缓 冲区713中。阶段2步骤F 书写第一个字形的第一条线(图21)。现在表演者可开始驱动虚拟笔。通过定位虚拟笔,使其尖端准确地位于要绘制的第一像素右侧的第一像素上,即 缓冲区711的第一项,表演者在计算机屏幕上示出虚拟笔的图像。现在表演者可开始书写字形的第一条线。关于要绘制什么以及如何绘制的信息包 含在缓冲区711、713和715中。事实上,要绘制的像素的坐标存储在缓冲区711中,而绘制 像素的速度和粗度分别存储在缓冲区713和715中。表演者使计时器801启动,并且在指向缓冲区711的第一像素之后立即开始使用 缓冲区713的第一项所指示的粗度以及缓冲区517中的颜色进行绘制(图17和21)。在此之后,表演者读取计时器801的实际时间,寻找缓冲区713中其值大于实际时 间的第一项,并且绘制这一项之前的且尚未绘制的所有像素。之后,表演者再次读取计时器801的实际时间,等等,直到绘制完第一条线的所有 部分1、2、3、4和5。此时,完成第一字形第一条线的书写。应当注意到完成这些步骤所需循环的实际数目取决于使用者设定的速度的值 (图17,缓冲区515)以及使用的计算机的速度。如果速度值很低并且/或者计算机很快, 则在数量等于构成线本身的像素数目的循环中绘制线。还应当注意在绘制期间,使用者可以改变绘制速度(图17,缓冲区515)或者虚拟 笔的图像,而在此情形下,表演者将使用下一循环中的新设置,根据W02006054126中的说明。阶段2步骤G 虚拟笔脱离写表面并且移至下一条线的开始位置(图22-25)。现在表演者必须将虚拟笔脱离写表面并将其从像素851移至像素853,即移至要 绘制的下一条线的第一个像素。为了这样做,表演者必须计算虚拟笔尖为了以真实的方式 脱离写表面、移动并落在写表面上所必须遵循的三维轨迹。表演者两次计算该轨迹在写表面上的投影(图24),一次通过使用最低速度(例如 80像素每秒),而另一种情形使用最快速度(例如2000像素每秒)。当使用最低速度完成 计算时,获得直线861。事实上,当速度很慢时,轨迹不受刚刚绘制的线的形状的影响,当使 用最快的速度完成计算时,刚刚绘制的线的最后几个像素和要绘制的下一条线的前几个结 点必须被插值(三次样条),并且获得曲线869。事实上,当速度很快时,轨迹在很大程度上 受刚刚绘制的线的最后部分的形状和要绘制的下一条线的第一部分的形状的影响。之后,表演者在考虑使用者设置的实际速度(缓冲区515、图17和23)的情形下, 计算位于线861和曲线869间中间位置的曲线865 (图24),并且表演者在缓冲区821中存 储该结果。在此之后,通过估计穿过最后绘制的像素851、要绘制的下一个像素853和虚拟笔 笔尖的最高抬起点852的抛物线,表演者计算轨迹在z平面上的投影875 (图25)。在所示 的示例中(图25),假设点852与点851和853等距。如果使用者距离计算机屏幕的距离 为50cm,则假设最高抬起点852距离写表面的距离为5cm,即点851和853之间的1000个 像素的距离。表演者将结果存储在缓冲区822中。现在表演者开始驱动,以将虚拟笔脱离写表面、移动虚拟笔以及将虚拟笔再次降 低到写表面上。缓冲区821中的值将用于定位在写表面上的笔图像。缓冲区822中的值将 用于在抬起、移动和降低期间旋转、平移以及缩放笔图像。计时器用于计时所有过程,类似 于在阶段2的步骤F中所完成的(图21,计时器801)。阶段2步骤H 书写第一字形的下一条线(图21)。重复执行步骤F、E、G,直到书写完第一字形的所有线。在示出的示例中,虚拟笔书 写包含线段(pieCe)6、7、8和9的线(图21)。阶段2步骤I 书写第一个词的下几个字形。重复执行步骤B至H,直到书写完第一个词的所有字形。如果希望同比例字体书写,则第二个字形的第一像素的横坐标将设置为缓冲区 514中值的和(图18),加上最后绘制的字形的像素宽度(缓冲区612,图18),加上固定的间 距值(由字体大小乘以常数C1给定(缓冲区513,图18)),加上粗度(缓冲区516,图19)。 通常常数C1设置为0. 12,但是不同的值可以由使用者设定,存储在包含字形的文件中,并 且在阶段2的步骤B期间读取。阶段2步骤J 读取接下来的几个词。重复步骤B到H,直到书写完文本的所有词。连续词之间的间距的计算方式类似于步骤I中所完成的方式。但是,使用常数 C2(而不是常数C1)。通常常数C2设置为0.30。线间距计算的方式如下将最后书写的行 的纵坐标和字形单元的高度乘字体大小(缓冲区513,图18)除以常数C3求和。通常常数 C3设置为0. 55。常数C2和C3的不同值可以由使用者设置,存储在包含字形的文件中,并且在阶段2的步骤B期间读取。绘制图形的过程图形以类似于字形的方式进行绘制,但是更为容易,因为可以跳过步骤I和J,并 且步骤B仅仅需要选择要绘制的图形,例如通过从列表中选择。连体书写(图26-28)当教师利用连体书写方式书写词时,每个单个字形必须与前几个字形和后几个字 形相连接。因此,给定字形的形状不是固定的,而是根据前几个字形和后几个字形变化。例 如,字形“b”的形状901,902,903和904 (图26)彼此不同,因为他们前面或后面的字形不 同,并且之后将每个字形“b”连接到前面的字形、后面的字形的线可能不同。因此,为了允许虚拟笔利用连体书写方式来书写文本,必须为每个单独的字形分 配各种形状。这将通过将每单个字形分成三部分来完成初始部分,中央部分和最后部分。 初始和最后部分的形状将分别受到后面的字形和前面的字形的影响,而中央部分的形状保 持不变。为了做到这一点,必须对上述的阶段1和2作出一些变化。首先,在已将字形存储在文件中(阶段1的步骤C)之后,需要一个新步骤,以通过 制造器允许使用者将每个字形的所有结点分成三个子集初始结点的子集、中央结点的子 集和最后结点的子集。在字形“a”(910)(图形27)中,例如,结点911到912、913到914和 915到916分别构成初始、中央和最后子集。与此类似,在字形“0”(920)中,结点921到 922,923到924、925到926分别构成初始、中央和最后子集,并且在字形“b” (930)中,结点 931到932,933到934和935到936分别构成初始、中央和最后子集。之后,针对每对字形,使用者必须产生将第一字形的中央部分连接到第二字形的 中央部分的线的结点、修改第一字形的结点的最后子集和第二字形的初始子集。这是通过 制造器完成的,方式类似于阶段1的步骤A。对于一对字形“ab” 940 (图28),例如,产生结 点941到942,而对于一对字形“ob” 950产生结点951到952。之后将所有这些数据存储在最初存储单个字形的同一文件中。对阶段2也略作修改,只是不允许单个字形的读取,但允许单对字形的读取。例 如,为了使用连体书写方式书写词“animalS”511(图16),表演者可以以下方式继续。第 一,执行步骤B到H,但是限于该词的第一个字形的初始和中央部分。第二,重复步骤B到H 以书写将第一字形连接到该词第二字形的线。第三,重复步骤B到H以书写该词的第二个 字形的中央部分。第四,重复步骤B到H以书写将第二个字形连接到该词的第三个字形的 线。等等,直到该词结束,重复步骤B到H以书写该词的最后字形的中央部分和最后部分。 显然,当字形存储在文件中时(阶段1的步骤C),必须设置缓冲区以指定是否必须连接字 形,并且之后表演者将读取该缓冲区。本方法解决了上述所有技术问题。特别是,即使不熟练的使用者也可产生字形和 图形,并且可以指定构成这些字形和图形的线的书写顺序、这些线的规定速度和粗度以及 在有角度的地方的可能暂停,从而解决前四个和第六个技术问题。而且,该方法允许虚拟笔脱离写表面,沿着准时计算的轨迹移动,以及落在写表面 上,就像一支真实的笔必须在同一字形的连续笔划之间、同一个词的连续字形之间以及同 一文本的连续词之间移动时所做的那样,从而解决了第五个技术问题。
最后,该方法允许虚拟笔利用连体书写方式书写文本,从而解决了第七个和最后 的技术问题。因此,通过使用该方法,即便不熟练的使用者也可能在计算机屏幕上驱动虚拟笔, 以类似于教师在真实的黑板上书写时所用真笔的方式进行书写和绘图。具体实施例的前述说明将根据概念点全面展现本发明,以便其他人通过应用当前 的知识而不需要进一步的研究即能够为各种应用程序修改和/或调整实施例,同时不偏离 本发明,并且因此应当理解这种调整和修改被认为是具体实施例的等价物。为此,实现本文 描述的不同功能的方式和材料可具有不同的特性而不偏离本发明的范围。应当理解本文使 用的措辞或术语用于说明的目的而并非为了限制。
权利要求
一种在屏幕上产生输出的方法,所述输出由利用虚拟笔或类似物绘制的、线形式的图形或字形构成,所述方法包括以下步骤由使用者产生所述图形或字形,作为由多个结点分开的一系列线部分,每个结点具有至少一对坐标;为每个结点赋予一个参数,所述参数选自插值的类型和相对权重、笔状态(自写表面向上/向下),可能暂停的持续时间、所述结点的下游书写速度、所述结点下游的线粗度或以上参数的组合;为要绘制的每个图形/字形存储所述结点和相关参数;自所存储的结点和参数生成输出,所述输出包括所述笔跟随所述结点的轨迹;所述轨迹由所述结点之间的可见线部分或不可见线部分形成,其中所述笔的所述轨迹考虑所述结点的所述每个参数的值和/或所述结点之间插值的所述每个参数的值。
2.根据权利要求1所述在屏幕上产生输出的方法,其中所述产生步骤由使用者通过具 体使用鼠标和/或键盘运行产生应用程序(制造器)执行。
3.根据权利要求2所述在屏幕上产生输出的方法,其中在所述产生步骤期间,使用者 通过点击鼠标产生图形/字形,每次鼠标点击对应一个结点。
4.根据权利要求3所述在屏幕上产生输出的方法,其中在每次鼠标点击之后,所述应 用程序将包含所有点击的结点的最小矩形的宽度(W)和高度(H)存储在一缓冲区内,再将 标准化在0与1之间的这些结点的坐标存储在所述缓冲区中。
5.根据权利要求4所述在屏幕上产生输出的方法,其中所述结点的所述坐标在已经 标准化并存储之后通过预定算法进行插值并被标准化为所述矩形,所述矩形显示被插值的 线。
6.根据权利要求1所述在屏幕上产生输出的方法,其中所述结点可以通过拖动它们被 移动,特别是使用鼠标或键盘,或者所述结点可以被消除,并且新的结点可以插入到现有结 点之间。
7.根据权利要求1所述在屏幕上产生输出的方法,其中所述生成输出的步骤由使用者 通过运行输出生成应用程序(表演者)来执行,该应用程序在屏幕上生成所述虚拟笔书写 所述图形/字形的输出。
8.根据权利要求2和7所述在屏幕上产生输出的方法,其中所述产生应用程序(制造 器)将存储的、选自第一和第二参数的一个参数与第一结点和最后的结点关联,如果所述 第一结点与所述第一参数关联且第二结点与所述第二参数关联,则所述轨迹插值由所述虚 拟笔通过所述输出生成应用程序(表演者)沿自所述第一结点向所述第二结点的方向绘制 的所述结点,或者如果所述第一结点与所述第二参数关联且所述第二结点与所述第一参数 关联,则所述轨迹插值由所述虚拟笔通过所述生成输出应用程序沿相反方向绘制的所述结 点o
9.根据权利要求7所述在屏幕上产生输出的方法,其中所述产生应用程序(制造器) 将存储的参数与每个结点关联,所述参数选自下列参数构成的组插值曲线类型参数,其与已知的插值算法关联,所述输出生成应用程序(表演者)根据 与该参数对应的选定插值算法从所述结点开始绘制插值曲线;暂停参数,所述虚拟笔通过所述输出生成应用程序(表演者)在所述结点上停留与所述暂停参数对应的时间;“向下”参数和“向上”参数,如果该结点与“向下”参数关联,则所述输出生成应用程序 (表演者)显示所述虚拟笔的笔尖接触所述写表面以及使所述虚拟笔绘制从该结点开始到 下一个结点的插值线的片段,或者如果该结点与“向上”参数相关联,则所述输出生成应用 程序(表演者)显示所述虚拟笔的笔尖脱离所述写表面并且使所述虚拟笔沿着插值线的所 述片段移动而不进行绘制;速度参数,所述输出生成应用程序(表演者)使所述虚拟笔沿着自该结点开始至下一 结点的插值线的所述片段以一速度进行绘制或移动,所述速度以和所述这些结点相关的速 度参数成比例的方式变化; 粗度参数,所述输出生成应用程序(表演者)使所述虚拟笔以一粗度绘制自该结点开 始至下一结点的插值线的所述片段,所述粗度以和所述这些结点相关的粗度参数成比例的 方式变化;包含字形的矩形的尺寸参数和所述矩形在单元内的位置参数,所述输出生成应用程序 (表演者)将字形与所述尺寸参数和所述位置参数关联,从而相同字体的多个字形可以正 确排列并且均一地设置尺寸;包含一串字形中每个字形的矩形单元的尺寸参数和所述矩形单元的规定字体尺寸参 数,所述输出生成应用程序(表演者)将所述矩形单元参数与一连串所述字形所构成的文 本关联。
10.根据权利要求9所述在屏幕上产生输出的方法,其中所述产生应用程序(制造器) 如果产生一系列字形,则将相同风格的字形、所述矩形单元和所述规定字体尺寸存储在字 体文件(Font)中,并且其中所述输出生成应用程序(表演者)如果生成具有相同风格的一 系列字形则自键盘接收与所述系列字形对应的输入并且自所述字体文件(Font)读取所述 字形、所述矩形单元和所述规定字体尺寸。
11.根据权利要求7和8所述在屏幕上产生输出的方法,其中所述输出生成应用程序 (表演者)最初在所述屏幕上的一位置绘制所述虚拟笔的图像,使得其笔尖非常接近所述 第一结点ο
12.根据权利要求10所述在屏幕上产生输出的方法,其中如果所述虚拟笔必须从与 “向上”参数关联的第一结点朝与“向下”参数关联的第二结点移动,则所述输出生成应用程 序(表演者)使所述虚拟笔跟随模拟所述笔脱离所述写表面的三维轨迹移动。
13.根据权利要求12所述在屏幕上产生输出的方法,其中如果所述虚拟笔必须从与 “向上”参数关联的第一结点朝与“向下”参数关联的第二结点移动,则所述输出生成应用程 序(表演者)通过确定所述第一结点上的速度以及之后插值所述第一结点和所述第二结点 之间作为所述速度的函数的所述轨迹在所述写表面上的投影而继续运行,所述轨迹考虑所 述速度从而自其脱离所述写表面的时刻产生所述笔的持续移动。
14.根据权利要求12所述在屏幕上产生输出的方法,其中如果所述虚拟笔必须从与 “向上”参数关联的第一结点朝与“向下”参数关联的第二结点移动,则所述输出生成应用程 序(表演者)旋转、平移以及缩放所述虚拟笔在脱离所述写表面和再次落到所述写表面上 之间的图像。
15.根据权利要求2和7所述在屏幕上产生输出的方法,其中可以选择连体书写开/关参数,从而在连体书写方式下,所述产生应用程序(制造器)在已经将字形存储在文件中之 后将每个字形的所有结点分成三个子集初始结点子集、中央结点子集和最后结点子集,并 且之后对于每对相邻字形,产生连接第一字形的中央结点子集的结点和第二字形的中央结 点子集的结点的线,同时更改第一字形的结点的最后子集和第二字形的初始子集,以便所 述输出生成应用程序(表演者)将前一字形的最后结点的确定结点连接到接下来字形的最 后结点的确定结点。
全文摘要
一种在计算机屏幕上驱动虚拟笔的方法,所述虚拟笔在虚拟黑板上书写和画图,以模拟真实笔在真实黑板上的书写。字形和图形(50)通过从形成要绘制的线(50)的点集指定结点(106、107、108、109)的子集产生。有关结点的所有属性,如坐标(201)、暂停、速度、粗度等,存储在一个文件中。接下来,使用者在键盘上键入要书写的词或自列表选择要绘制的图形。此时,要书写的字形或要绘制的图形的结点的所有属性从文件获得并且被插值,并且获得的数据用于驱动虚拟笔以看起来类似于真实笔的方式进行书写和画图,其在锐角处暂停、脱离以及落在虚拟黑板的写表面、改变绘制的粗度和速度、使用印刷体字母或连体书写方式。
文档编号G06T11/20GK101878488SQ200880102346
公开日2010年11月3日 申请日期2008年8月4日 优先权日2007年8月8日
发明者M·皮尔基奥 申请人:M·皮尔基奥
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1