墨迹接口的制作方法

xiaoxiao2020-7-23  6

【知识产权代理】【专利服务】Tel:18215660330

专利名称:墨迹接口的制作方法
技术领域
本发明各方面一般针对软件应用和/或数据结构之间的接口。具体而言,本发明各方面涉及与电子墨迹交换信息的接口。
背景技术
典型的计算机系统,尤其是采用诸如微软WINDOWS等图形用户接口(GUI)系统的计算机系统,优化成受理来自1个或多个离散输入装置的用户输入,这些输入装置的例子有输入文本的键盘和诸如鼠标等用1个或多个按钮驱动用户接口的定位设备。普遍存在的键盘和鼠标接口提供文件、电子表格、数据库字段、绘图、照片等的快速建立和修改。然而,与非计算机笔(即标准笔)和纸相比,键盘和鼠标接口所提供的灵活性方面存在显著差距。利用标准笔和纸,用户按某一容限编文件,写注文,绘制图形等。有些情况下,用户喜欢用笔标注文件而不要在屏幕上观察文件,其原因在于能不受键盘和鼠标接口的限制,随意标注。
有些计算系统使用户可在屏幕上绘图。例如,微软公司的READER应用使用户可对文件增添电子墨迹(本说明中也称为“墨迹”)。系统存储墨迹,并在用户请求时,供给用户。其他应用(例如Palm3.X和4.X以及Pocket PC操作系统配有本领域已知的绘图应用)可取得并存储绘图。可借助诸如Wacom输入板产品等基于输入笔的输入产品使用各种绘图应用(诸如Corel Draw)以及照片和编辑应用(诸如Photoshop)。这些绘图包含用于制作绘图的墨迹笔划所关联的其他特性。例如,可用墨迹存放线条宽度和色彩。这些系统的一个目的是复制在纸张上施加的自然墨迹的视感。然而,纸张上的自然墨迹会有大量未被坐标点和连接线段的电子集合捕获的信息。有些这类信息可包含所用笔尖的厚度(通过自然墨迹的宽度观察)、笔尖的形状、墨迹淀积速度、压力、角度、所用笔尖的类型等。
电子墨迹还产生另一问题,即已认定其所写部分应用基本上不能对其他应用和环境提供电子墨迹的丰富性。尽管可在各种应用之间通过使用例如剪贴板移文本,墨迹却不能这样使墨迹互动。例如,不能将“8”的图形粘贴到文件中,并使墨迹成为黑体。

发明内容
本发明的各方面提供一种灵活且有效的接口,用于与特性互动,调用并且/或者接收电子墨迹所涉及的方法和/或事件,从而解决常规装置和系统存在的1个或多个问题。本发明的有些方面涉及改进所存墨迹的内容。其他方面涉及修改所存墨迹。又一些方面涉及协调要一些递图的墨迹数据的性能。
考虑以下附图详细说明,会明白本发明的这些和其他特征以及方面。


结合附图阅读,会更好理解上述发明各方面的概述和以下各实施例的详细说明。所含附图仅作为例子,而非限定所要求的发明。
图1示出能用于实现本发明各方面的通用数字计算环境的示意图。
图2示出根据本发明各方面可用的输入板计算机和输入笔的平面图。
图3根据本发明示出一例具有点和特性的墨迹笔划。
图4~图7根据本发明实施例示出存储墨迹的各种数据结构和墨迹所关联的有关特性。
图8根据本发明实施例示出一例墨迹空间。
图9根据本发明实施例示出一例加载和保存方法。
图10根据本发明实施例示出一例笔划容器的操作。
图11根据本发明实施例示出一例墨迹对象及其方法。
图12根据本发明实施例示出一例墨迹对象及其特性。
图13根据本发明实施例示出一例剪贴板操作。
图14根据本发明实施例示出一例墨迹对象事件。
图15根据本发明实施例示出一例笔划对象。
图16根据本发明实施例示出一例笔划对象及其特性。
图17根据本发明实施例示出一例笔划对象集合。
图18根据本发明实施例示出一例输入板对象。
图19根据本发明实施例示出一例输入板集合。
图20根据本发明实施例示出一例识别器对象。
图21根据本发明实施例示出一例识别器集合。
图22根据本发明实施例示出一例识别器环境。
图23根据本发明实施例示出一例绘图属性对象。
图24根据本发明实施例示出一例识别结果对象。
图25A和图25B根据本发明实施例示出墨迹对象及其关联识别器的各种例子。
具体实施例方式
为了帮助读者,以下说明划分成一些部分,包括墨迹特征和墨迹存储;术语;通用计算机及其关联硬件;墨迹笔划例;特性、方法、表格和标记;对象和集合;墨迹接口总述。
墨迹特征和墨迹存储本发明的各方面涉及使墨迹可为访问数据形式。各方面包括对墨迹及其相关部分提供应用编程接口。本文所用墨迹是指电子墨迹。墨迹是指分别包含一系列的点的笔划的序列。这些点可用各种公知技术表示,包括笛卡尔坐标(X、Y)、极坐标(r、θ)和其他本领域公知的技术。
如使用墨水笔的用户所公知,自然墨迹(用带墨胆的笔写在纸上的痕迹)比用线段连接的一系列坐标点传送的信息多。例如自然墨迹能反映笔压(根据墨厚)、用笔角度(根据线性或曲线的形状和分离点周围墨的形态)和笔尖的速度(根据笔直度、线宽及其在线条或曲线上的变化)。
为了提供自然墨迹视感,可将电子墨迹作为具有点的笔划组存储。或者,可配合有助于进一步建立较丰富数据类型的各种特性、方法和事件存储墨迹。除点外,还存在这种图元数据,但该数据不代替点。墨迹可与一般特征、方法或事件关联,或者各墨迹数据结构可具有自己的特性、方法或事件(以及其任何组合)。
墨迹的特性可包含例如色彩、宽度、输入笔与输入板之间的压力和角度、以及笔形态等。尽管这些特性可满足许多应用,电子墨迹还可扩充到包含附加应用产生的自定义特性和其他数据。可用额外信息直接存储全部笔划和值。然而,另一些实施例反映实际可行时不用额外信息的考虑。
规定墨迹对象及其中笔划用的特性有不同的范围。例如有些特性可用于墨迹对象中的全部墨迹笔划(例如笔尖形状)。另一些特性可仅涉及特定的点(例如输入笔开始写笔划的点)。又一些特性可涉及特定笔划,而另一些涉及硬件报告的信息包(例如坐标点、压力、用笔角度、所报告坐标点间的时间间隔)。总之,特性有不同层次的范围。
墨迹可称为对象。此墨迹对象可包含具有一个或多个笔划对象的其他对象。而且,可参考笔划对象本身,以便能直接修改或处理笔划集合,而非按序修改每一墨迹对象的各部分。
为了有效存储各特性或方法,其中有些显性规定,有些则隐性规定。墨迹对象可仅具有X和Y的坐标值。另一例中,墨迹对象具有影响整个墨迹对象的特性,但在该对象规定这些特性。第3例子中,有些笔划有第1组特性,另一些有第2组特性。可在墨迹对象的始端先规定特性,各笔划可按需要参照先前规定的特性。采用这种先规定特性以后再参考的方法促使特性存储更加有效。墨迹对象随着特性数量增多和参考特性的墨迹笔划数量增多而规模变大时,这点更明显。
术语墨迹——带特性笔划的序列或组。笔划序列可包含有序的笔划。可按捕获时间或者页面上笔划的位置依次安排该序列。可为其他顺序。一组笔划可包含一些笔划序列、无序笔划或其组合。墨迹可扩充到包含附加特性、方法、触发事件等。与至少一些这类事件组合时,可将其称为墨迹对象。
流——含数据结构的笔划序列,该笔划可含或不含特性。
墨迹对象——存放有或无特性、方法以及/或者事件的流的数据结构。
笔划——捕获点的序列或组。例如递图时,可用线条连接点序列。或者,可用点和下一点方向的矢量表示笔划。总之,笔划要包含有关墨迹的点和线段的任何表示,不考虑点和/或其连接体的基础表示。
点——规定空间位置的信息。例如,可相对于捕获空间(例如数字化器上的点)、虚拟墨迹空间(所捕获墨迹处在的空间中的坐标)和/或显示空间(显示器的点或像素)定义点。
虚拟墨迹空间或墨迹空间区——全部现有墨迹笔划涉及的框架。该框架可包括二维或三维形状。一实施例中,框架包括单位规模方形。另一列中,框架包括规定区。虽然有些墨迹笔划伸到框架外,该框架仍可用于递图,包括规定打印机和显示器的规模。一方面中,框架是可空间规定墨迹笔划的规范。
通用墨迹特性——这是除非已规定,否则就加给墨迹对象中笔划或笔划组的特性。例如,通用墨迹彩色为蓝。通过全部笔划设定为蓝色,所捕获笔划的笔划色彩为蓝色。
局部墨迹特性——这是加给特定笔划(或数据点)的特性。例如,尽管通用墨迹特性为蓝,特定笔划可设定为红。影响墨迹对象中接着遇到的笔划时,有些情况下,可将一些局部墨迹特性变换成通用特性。特性可标为通用或局部,也可不标,有些例子中,建立的数据结构规定特性的范围。
递图——一种处理过程,规定如何显示图形(和/或墨迹),在屏幕上显示,还是打印输出,或者输出成另一数据格式。
通用计算机图1示出可用于实现本发明各方面的常规通用数字计算环境的示意图。图1中,计算机100包含处理单元110、系统存储器120和将各系统部件(包括系统存储器)连接到处理单元110的系统总线130。该系统总线130可具有若干类型的总线结构,包括存储总线或存储控制器、外围总线和利用各种总线结构中的任一种的局域总线。系统存储器120包括只读存储器(ROM)140和随机存取存储器(RAM)150。
含诸如在启动时帮助计算机100各单元间传递信息的基本例程的基本输入/输出系统(BIOS)存储在ROM140中。计算机100还包含对硬盘(未示出)进行读写的硬盘驱动器170、对可卸磁盘190进行读写的磁盘驱动器180和对可卸光盘192(诸如CD ROM或其他光媒体)进行读写的光盘驱动器191。这些驱动器170、180和191分别通过硬盘驱动器接口192、磁盘驱动器接口193和光盘驱动器接口194连接到系统总线130。这些驱动器及其关联的计算机可读媒体给个人计算机100提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。本领域的技术人员会理解,示例操作环境中还可用其他类型的能存储计算机可访问数据的计算机可读媒体,诸如盒式磁带、快速擦写存储卡、数字视频盘、贝努里盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等。
可在硬盘驱动器170、磁盘驱动器190、光盘驱动器192、ROM140和RAM150存放一些程序模块,包括操作系统195、1个或多个应用程序196、其他程序模块197和程序数据198。用户可通过诸如键盘101和定点设备102等输入装置将命令和数据输入计算机100。其他输入装置(未示出)可包含话筒、操作杆、游戏板、卫星天线、扫描器等。这些和其他输入装置常通过与系统总线130耦合的串行端口接口106连接到处理单元110,但也可经诸如并行端口、游戏端口或通用串行总线(USB)等其他接口连接。这些装置又可经适当接口(未示出)直接与系统总线130相连。还通过诸如视频适配器108等接口将监视器107或其他类型的显示器接到系统总线130。除监视器外,个人计算机通常包含其他外围输出装置(未示出),诸如扬声器和打印机。有些实施例中,还提供笔数字化器165和附带输入笔166,以便用数字方式取得随手书写的输入。虽然示出笔数字化器165与串行接口端口106连接,实际上笔数字化器165如本领域所公知,可经串行端口或其他接口直接连接处理单元110。此外,虽然示出数字化器165与监视器107分离,但该数字化器165的可用输入区可与监视器107的显示区共同扩展。又可将数字化器165集成到监视器107中,或者作为监视器107的叠加或附加分立装置。
计算机100可用对诸如远端计算机109的1个或多个远端计算机的逻辑连接工作在联网环境中操作。远端计算机109可以是服务器、路由器、网络PC、对等装置或其他公共网络节点,并且通常包含许多或全部以上对计算机100所述的单元,尽管图1中仅示出存储器装置111。图1所示逻辑连接包含局域网(LAN)112和广域网(WAN)113。该联网环境为办公室常用处、企业范围的计算机网、内联网和因特网。
用于LAN联网环境时,计算机100通过网络接口或适配器114连接局域网112。用于WAN联网环境时,个人计算机100通常包含调制解调器115或其他装置,用于在诸如互联网的广域网113上建立通信。内部或外部的调制解调器115经串行端口接口106连接系统总线130。联网环境中,相对于个人计算机100示出的程序模块或其各部分可存入远端存储器装置中。
应理解所示网络连接为示例,可用其他方法建立计算机间的通信链路。设想已存在诸如TCP/IP、以太网、FTP、HTTP等各种已知协议,本系统可按客户机—服务器配置工作,使用户可从基于web的服务器检索网页。能用任一常规web浏览器显示并处理网页数据。
图2示出可根据本发明各方面用的说明性输入板PC 201。图2的计算机中可包含图1所示系统中任一或全部特性、子系统和功能。输入板PC 201包含显示多个窗203的大显示面202,例如数字化平板显示器,较佳是液晶显示(LCD)屏。利用输入笔204,用户可在数字化显示面202上进行选择、强光显示和/或书写。适当数字显示面202的例子包括电磁笔数字化器,诸如Mutoh或Wacom的笔数字化器。也可用其他类型的笔数字化器,例如光数字化器。输入板PC 201解译用输入笔204形成的笔势,以便处理数据,输入文本,绘图并且/或者执行常规计算机应用任务,诸如电子表格、字处理程序等。
输入笔204可配备1个或多个按钮或增强其选择能力的其他特性。一实施例中,输入笔204可实现为“铅笔”或“笔”,一端构成书写部分,另一端构成“擦端”,移过显示器时擦除显示的指示部分。可用其他类型的输入装置,诸如鼠标、跟踪球等。此外,用户自己的手指也可成为输入笔204,用于在触感或逼近感显示器上选择或指示所显示图像部分。因此,本文所用术语“用户输入装置”应为广义,包含各种公知输入装置,诸如输入笔204。区域205示出使用户可判定输入笔204接触显示面202时该笔位置的反馈区或接触区。
各实施例中,系统提供墨迹平台作为COM(部件对象模型)服务,应用可用其捕获、处理并存储墨迹。一种服务使应用能用所揭示的墨迹表示进行墨迹的读写。墨迹平台还可包含置标语言,如可扩充置标语言(XML)。系统还可用DCOM作为另一种实现方式。可用的又一些实现方式包括微软公司的Win 32编程模型和.Net编程模型。
墨迹笔划例图3示出说明性墨迹对象的可视形式。墨迹对象的笔划在出现下笔动作的点301开始。下笔动作可以是输入笔204接触显示面202、鼠标键点击、跟踪球或操纵杆上按钮的操作等。用户控制输入装置(诸如输入笔204),所得笔划连续通过点302~316。在点316产生抬笔动作。抬笔动作可以是抬起输入笔204离开显示面204、鼠标件释放或另一操作、跟踪球或操纵杆上按钮(或其他按钮)的操作等。基于输入笔的数字化领域公知抬笔和下笔动作。
从点301至308,笔划宽度具有第1值。在点308上,笔划宽度变为第2值。这可能是因为用户增加输入笔204的笔尖与显示面202的压力、输入笔204与输入板之间角度变化、输入笔204旋转并突出其笔尖的不同截面等。然后,笔划按第2笔划宽度继续通过点316。另一实施例中,用户按第1线宽开始该笔划,并在点308选择不同的线宽,完成该笔划。又一实施例中,2种笔划形成墨迹对象,如图3所示。例如,第1笔划包含点301~308,第2笔划包含点308~316。
又一实施例中,图3的墨迹可表示成4种或更多的笔划。图中,从点301至306的笔划可具有第1笔划宽度且为蓝色(用组317代表),从点306至308的笔划可具有第1笔划宽度且为绿色(组318),从点308至309的笔划可具有第2笔划宽度且为绿色(组318的一部分),并且点309至316的笔划可具有第2笔划宽度且为红色(组319)。
接着,存储(或发送、显示等)墨迹对象。墨迹对象可表示成线宽和色彩不同或者线宽固定或色彩固定的单一笔划。另外,可将墨迹对象存储为具有少量数据点的各种笔划,每种笔划具有自己的特性组。第三,可将墨迹对象存储为点间的短笔划。总之,墨迹对象可按规定墨迹的丰富附加特性以各种形式表示笔划。此外,墨迹笔划还可包含透明性、连接混叠和光栅操作。
特性、方法、表格和索引号墨迹对象可包含各种其他项目。例如,墨迹对象可包含各种特性,如图4所示,其中示出3个墨迹对象1~3 401、404和407,分别具有特性块402、405和408以及笔划403、406和409。如果各特性块不同并且/或者各笔划与前面的笔划无关,则墨迹对象的表示可分别具有最小可能规模。然而,特性块402、405和408至少有一向冗余,则其独立表示会包含冗余信息。特性块可相同,也可不同。通过使各墨迹对象具有自己的特性块,便于将墨迹对象传送到其他部位或存储媒体,不需要参照分开存放的总特性块。
墨迹对象可具有其关联的方法,这些方法可修改墨迹对象内存放的特性、笔划或其他信息并且可提供有关墨迹对象的信息、墨迹对象内的笔划或其他有关墨迹对象的信息。
图6示出墨迹笔划的另一表示。其中,将笔划502、504和506组合成1个墨迹对象。部分501是将该对象识别为墨迹对象的标识符。墨迹对象包含笔划1 502、笔划2 504至笔划N 507,各笔划分别具有其关联的特性块1 503、特性块2和特性块N 508。图5的结构胜过图4中结构的优点是墨迹对象标识符501不重复。这使所得数据结构中节省所删除墨迹对象标识符的长度。
墨迹对象标识符501将其后续数据结构识别为墨迹对象。该墨迹对象标识符还可包含版本信息,涉及书写存放墨迹对象的数据结构用的软件版本。
图6示出数据结构的另一实施例。带墨迹对象标识符601的墨迹对象600含有特性表603和5种笔划607、609、610、612和613。特性表603(具有特性标识符或标记602)包含特性块604、605和606。墨迹对象600还含有2个索引号(特性块2 605的索引号608和特性块1 604的索引号611)。这2个索引号分别位于笔划1 607与2 609之间和笔划3 610与4 612之间。笔划1 607没有前置索引号。一实施例中,笔划1 607可具有默认特性块(未示出)规定的特性。另一例中,笔划1 607可具有第1特性块(此处为特性块1 604)的隐性索引号。第3例中,笔划1 607可不出现(在数据结构中下推,在至少1个索引号后出现),如笔划1 607的虚线框所示。
笔划3 610和5 613没有紧接在前面的索引号。一实施例中,这表明笔划3 610和5 613应具有默认特性块(未示出)规定的特性。另一例中,笔划3 610和5 613采用最新近的前置索引。笔划3 610可用索引号608。笔划5 613用索引号611。消除了笔划3 610和5 613的索引号,有助于使墨迹对象的规模减少笔划3 610和5 613的各索引号耗费的空间。
图7示出数据结构的另一说明性实施例。该数据结构包含标识符701和3种笔划1~3 702~704。全部笔划均用默认特性。可在存储器中按本领域公知的分离存储数据结构或其他部位规定该默认特性。
存在各种方法用于各种对象。例如,可配合墨迹对象或其他对象用的方法能保存墨迹或从存储器装载墨迹。图9示出步骤903中在本例的情况下借助应用901保存到存储器902的墨迹。可用装载方法904装入此应用或不同的应用。
墨迹特性可规定得无冗余信息或使该信息最少。简单的流中,可不存在墨迹特性。可用一些通用特性。可按需要规定并使用较多或较少通用特性。
对墨迹对象可出现墨迹对象间的共用特性。可将特性分成组,其中包括变换特性、绘图属性特性、度量特性和笔划描述特性,但不限于这些特性组。还可规定并使用其他特性。而且,上述规定的特性并非都需要。
变换特性可用一些不同的输入源建立墨迹对象。该输入源可包含具有不同输入板分辨率的各种输入板。不同的输入板分辨率在将所形成墨迹移值并显示于分辨率或屏幕规模不同的输入板时,会导致屏蔽上错误递送墨迹绘图。为了将墨迹调整到共用尺寸,可存储一些变换特性(或变换),指明其调整到普通规模的方法。
笔划是其输入装置的产物。墨迹笔划的质量和尺寸因数字化器165的分辨率和尺寸而变化。由于墨迹笔划产生期间循环程度变化,根据来自数字化器的原始点递送全部笔划不会正确反映用户需求。因此,墨迹对象、笔划对象、或者墨迹对象或笔划对象的集合中的一种特性可包含将墨迹对象的笔划、笔划对象的笔划或者笔划集合的笔划变换到墨迹空间。
图8示出墨迹对象801及其在墨迹空间区804关联的墨迹笔划(形成单词“ink”)。示出另一墨迹对象802及其在该墨迹空间区关联的墨迹笔划(形成字“more ink”)。最后,墨迹对象803示出在不同于其他2组墨迹对象801和802的笔划位置上开始的墨迹笔划(形成字“even more ink”)、墨迹对象中存放的墨迹点可代表墨迹空间区804中的笔划对应的点,或可代表具有对墨迹空间区映射的不同坐标系统。墨迹空间可称为笔划在坐标空间存在的二维全域。为了简便,将墨迹空间称为墨迹空间矩形,但可取任何形状。
如上所述,可用各种方法捕获墨迹。可将墨迹做成较大或较小、旋转、平移、缠绕、剪短等。
绘图属性特性绘图属性表可列出流中各特性的全部绘图属性组。每一绘图属性块规定进行墨迹递图时用的信息。这些块可用于1种或多种笔划,并位于绘图属性表,使各笔划中不重复。
度量特性度量表列出流中的度量块。这些块可用于1种或多种笔划,并位于该表,使得每一笔划中不重复。
度量块建立笔划描述符特性(下文定义)和一些实际物理特性规定的逻辑值之间的关系。最普通的值包括最小值、最大值、准确度和/或单位。例如,不会隐性地获知压力的单位是磅、帕斯卡还是千克,或者值为10的角是角度还是弧度。没有进一步的信息,应用会按照墨迹对象系统的规定,假设这些值为标准归一化形态。这种假设容易错误。因此,度量块提供笔划值之间的关系,并提供这些值与产生墨迹的实际装置的关系。
墨迹流中的全部笔划通常用相同的度量块。墨迹流可具有若干笔划描述符,还具有仅为1个的度量块。然而,本系统使不同的笔划可参考度量表中的不同度量块。
由于应用可不关注与全部特性关联的度量,或者装置可不对全部特性提供度量,度量块未必需要规定用于笔划描述符的全部包特性标记。为了使度量块可便于结合笔划描述符得到读出,度量块的表目应与笔划描述符中所寻找的顺序相同。由于度量块可按X和Y值容纳数据(例如标为TAG_X和TAG_Y),该块与笔划描述符不同。这是因为X和Y值具有存储所需的度量。
笔划描述符特性笔划可含数据阵列,各阵列单元对应于1个点的特性。应用可试存放其他特性,诸如压力。应用可仅建立存放压力用的自定义笔划特性(后文说明)。有些应用不知道如何解译此数据以及订制特性的标记和规模。这时,可借助规定数据类型及其在笔划中的数据,利用笔划描述符块解决此问题。然后,系统可用索引号使笔划与特定笔划描述符块关联。
墨迹流中的全部笔划通常用相同的笔划描述符块。然而,仅含1个块的描述符表不常见。不过,系统通过表中放置多个块,使不同的笔划不含不同的数据组。
对象和集合参阅图3~图7墨迹对象可含笔划。这些笔划可含其他信息和特性。笔划容器也可含笔划。这些容器可为能分开存储的对象,或者仅依据示例墨迹对象而存在。图10示出2种有关笔划容器的方法。第1,利用创建笔划容器法1002创建笔划容器1001。再者,创建笔划法1003包含来自输入1004(例如数字化器165、数据文件或其他输入)的信息。笔划容器1001可保留该容器容纳的笔划,或以后可将笔划输入到1个或多个墨迹对象。
图11涉及可结合墨迹对象使用的各种方法。这些方法仅用作说明。可结合这些方法或替代这些方法来使用其它方法。各方法可分成修改墨迹对象1101中信息的方法1102~1105和1109、从墨迹对象1101取得笔划的方法1111和1113以及从墨迹对象1101取得笔划本身以外的信息的方法1106~1108和1115。可组合若干这些方法(以及本文件所述的方法)。
可用方法1102将笔划增添到墨迹对象,其中将笔划标识符传给墨迹对象。方法1102也可包含矩形,该矩形上要添加笔划,或者笔划的点可代表在墨迹空间矩形中的位置,以指定涉及墨迹空间矩形的笔划的坐标。墨迹空间也称为矩形,但可为任何其他形状。
可通过方法1103~1105从墨迹对象删除笔划。通过规定笔划(方法1103)、规定遭遇或容纳笔划1104的矩形(或其他形状)或规定删除墨迹对象1101中的全部笔划,可删除笔划。有些操作中,例如删除笔划中,笔划中重新标号,以提供连续的笔划序列。
可将墨迹对象1101的笔划剪贴到矩形1109。这里去除矩形内未含的笔划或部分笔划。这导致在笔划与矩形的相交处创建所剪贴笔划用的新点。
可通过各种方法从墨迹对象1101取得笔划,这些方法包括对墨迹对象1101进行克隆1113(结果取得新墨迹对象1114)或者通过提取笔划本身1111并将笔划放入墨迹对象1112。
还可从墨迹对象1101取得信息。方法1106中对给定的点可取得墨迹对象的最接近点。送回的信息可包含点的距离、含最近点的笔划的标识、最近点在笔划上的位置和其他有关信息。方法1107中取得包围全部笔划的界限框。可导向墨迹对象是否能将信息粘贴到剪贴板1115。可审查1108墨迹对象1101中的笔划,以判断规定区域是否接触或包含笔划。该区域可为圆(例如具有中心点和半径的圆)、矩形(具有顶点)或以复合多边形包围笔划所决定的复杂形状。介绍这些区域用于说明。可以理解可用任何形状和一些形状的组合。
图12示出与墨迹对象关联的一些特性。这些特性包含墨迹对象的笔划1202。还在1204设定应用的自定义笔划。1203中还可将应用专用的笔划特性用于墨迹对象的1种或多种笔划。最后,可对笔划设定标记(这里为“重写”)1205,指示笔划受到末次保存(例如存到存储器902)以来是否修改过。
可规定至少2种墨迹对象。tInk对象(“t”含义为“文本”)可实施为OLE对象,代表希望形成字母或单词的墨迹。tInk对象使手写墨迹可诸如通过文本识别器变换成文本。tInk对象可称为涉及墨迹且具有文本环境的墨迹对象。可用编程方式或根据tInk对象周围文本属性设定文件墨迹的色彩和/或字号以及文本墨迹是否要下划线、用粗体、斜体等。换言之,可将要插入tInk对象的点的周围属性用于该对象。一实施例中,tInk对象仅含供给文本识别器用的1个字,以致句子可含多个tInk对象。另一方面,可将sInk对象(s含义为“粗样”)定义为代表不希望形成字的墨迹的对象。sInk对象也可为OLE对象。因此,可将sInk对象解译为绘图或任何其他非文本环境。sInk对象还有利于表示多个字。墨迹兼容的应用(和/或用户)可将某些墨迹对象标为tInk对象,另一些标为sInk对象。为了说明,将2种墨迹阐述为“tInk”和“sInk”。然而,应理解,可用其他名称代表可用的各种墨迹对象。此外,可用另一些类型的对象按任何希望格式存放电子墨迹。
可定义一种对象(这里称为“InkCollector”对象),并用于从墨迹输入装置捕获墨迹和/或给应用输送墨迹。在某种意义上,InkCollector对象的工作类似于龙头,通过将墨迹收集为1种或多种墨迹笔划且在1个或多个关联的墨迹对象存放墨迹,将墨迹“注入”1个或多个不同和/或独特的墨迹对象。InkCollector对象本身可贴附于公知的应用窗。然后,通过用某一或全部可得的输入板装置(包括输入笔204和/或鼠标)在该窗上实时形成墨迹。可将墨迹收集为1种或多种墨迹笔划,存入1个或多个关联的墨迹对象。为了用InkCollector对象,开发者可建立该对象,分配收集所绘墨迹的窗口,并且启动该对象。该对象启动后,可按收集墨迹笔划和/或笔势的各种墨迹收集模式将其设定成收集墨迹。笔势是输入笔204的位移或其他动作,不解译为递送墨迹,但解译为执行某动作或功能的请求或命令。例如,可完成某一笔势,以选择墨迹,而另一笔势可用于使墨迹为斜体。对输入笔在数字化器输入上或接近该输入的每一移动,InkCollector对象都收集笔划和/或笔势。
图13示出笔划对剪贴板可具有的各种操作。可将笔划复制到剪贴板,或从该板粘贴笔划。可用矩形1302内含或经其中空间所接触的笔划规定这些笔划,或者在1303中逐个规定该笔划。从剪贴板粘贴的墨迹笔划的1304中示出粘贴操作。
也可使各种事件与墨迹对象关联。图14示出相对于墨迹对象1401发生的各种事件,给墨迹对象1401添加笔划时,激发事件1402,以包含所添笔划的等同体,从墨迹对象删除笔划时,激发事件1403,以包含从墨迹对象1401删除的笔划的等同体。
图15示出笔划对象。笔划对象1500可作为部分墨迹对象存在,也可独立存在。可使种种方法与笔划对象关联。这些方法可包含修改笔划或笔划点的方法1501~1508以及在笔划对象1500中取得有关笔划信息的方法1509~1515和1517~1521。各种方法包含将笔划分成2种或多种笔划(1501)、按水平和/或垂直因数剪切笔划(1502)、使笔划按给定的量或距离或矢量移动或平移(1503)、使笔划按规定的量旋转(1504)、按输入因数(如水平和垂直方向)标定笔划(1505)、将笔划缩放成置入给定矩形(1506)、对笔划对象中笔划的1个或多个特性设定包值(1507)以及将1个或多个笔划点设定为新位置(1508)。
与笔划对象关联的、从笔划对象取得信息或输出或导出信息的方法包含在笔划对象对给定点取得笔划上最接近点(1509)、根据给定指数(如沿笔划的比率或百分比)取得笔划上的点(1510和1511)、取得笔划对象1500的笔划间交点和给定形状(如矩形)(1512)。其他方法可包含取得笔划对象中笔划的界限框(1513)、求笔划对象中的笔划与给定笔划的交点(1514)、取得递送实际笔划用的递送点(1521)、取得特定点的包数据(1520)、取得包信息特性度量(1519)、取得笔划对象中全部点的包特性值(1518)以及具有给定形状(圆、矩形、复合多边形等)的笔划对象的内容命中测试(1517)。最后,将笔划对象中的笔划剪切到给定的矩形1516(1515)。
也可使各种特性与笔划对象关联。这些特性可包含笔划歧点的近似1602。歧点是笔划上以不连续方式改变书写方向的点。例如,若笔划表示为大写字母“L”,则特性在3个歧点弯转,2个对应于笔划的初始和末尾控制点,第3点为“L”的角。
特性还可包含笔划递图时的表示(1603),笔划是否从墨迹对象删除的状态(1604)、笔划对象的绘图属性(1605)、笔划对象的扩充特性(1606)、笔划对象的标识(1607)、父笔划对象标识(1608)(笔划对象有父墨迹对象时)、笔划对象中笔划点数的包计数(1609)、GUID(笔划对象特性关联的通用独特标识符)的包描述(1610)、包规模(1611)、笔划对象中笔划的实际歧点(1612)、和笔划本身的交点(1613)。可以理解这些特性非限定。还可用其他特性。
笔划对象可构成笔划集合的一部分。图17示出与具有1个或多个笔划对象(1702~1704)的笔划集合1701关联的各种方法、特性和事件。笔划集合涉及来自单一墨迹对象的笔划。用笔划集合1701提供在墨迹对象中同时对多种笔划进行寻址的简便方法。
可对笔划集合1701增添(1705)或删除(1706)笔划。这里,可规定对笔划集合1701增添或删除的笔划对象的等同体。
每一墨迹对象还可存在多个笔划集合。可根据需要建立或去除笔划集合(1708)。由于各墨迹对象可具有各种笔划集合,各笔划集合可具有自己的识别结果。例如,第1句(存放为第1笔划集合)可具有英语识别器与其关联,从而识别结果为英文单词,而第2句(存放为第2笔划集合)可使法语识别器与其关联,从而识别结果为法文单词。或者笔划集合可使多个识别器与其关联,以便对每种语言提供多种识别结果。在后1个例子中,开发者可识别客户会用2种语言中的一种书写。开发者要使识别器与笔划集合关联,以便客户无论用哪种语言都提供支持。参考图17,可从笔划集合去除此识别结果(例如,若建立新识别结果或当前识别结果不正确时)。可提取笔划集合的文本或对特定文本查找识别结果(1715),并送回关联的笔划标识符。
可使笔划集合1701旋转预定量(1711)、按X和Y坐标或矢量标定(1712)、缩放得适合给定矩形或其他形状(1713)和集合中的笔划剪切规定的量(1714)。
可用通用变换法组合缩放、旋转、平移和偏斜等各种操作(1716)。
用方法1717~1724可从笔划集合取得信息。这些方法可包含取得笔划对象1717、取得笔划对象或笔划集合中的数据变换1718和提供增添(1719)或删除(1720)的笔划对象。又,集合参考的笔划对象可复制到另一集合(1720),可将笔划对象、对象或集合绘制成图形对象(1722),可取得笔划集合的界限框或其他封闭形状1724,并取得特定笔划对象1723。
可使各特性与笔划集合1701相关。这些特性可包含集合中笔划对象的计数(1725)、容纳笔划集合的墨迹对象(1726)、指示笔划集合是否具有固定规模(1727)、指示笔划集合是否只读(1728)、指示是否存在识别结果(1729)以及识别结果的内容(1730)。
可从各种源产生笔划。一种源包括图2的输入板。提供类似图2所示输入板的各销售商可能使各输入板特性不同。提供图18的输入板对象1801,使输入到输入板的信息与其他墨迹对象和相关对象协调。
输入板对象1801具有其关联的特性。这些方法可包含取得输入板特性度量的能力(1802)和输入板是否支持各种包特性(1803)(例如,输入笔166的倾斜角)。输入板对象中可将各种特性规定的还包含输入板的硬件性能(1804)、输入板支持的最大实际输入矩形(1805)、输入板名(1806)以及输入板的即插即用ID(1807)。输入板的即插即用ID 1807使输入板自动与控制其本身同系统互动的适当驱动器关联。
输入板对象可包括含输入板硬件性能(1808)和输入板特性度量(1809)的各种细目。
输入板对象可一起汇集在1个或多个输入板集合中。图19的输入板集合1901提供1个例子,其中输入板集合1901包含1个或多个输入板对象1902~1904。可使各种方法与输入板集合关联,其中包括将1个或多个输入板对象复制到新输入板集合(1905)、取得1个或多个输入板对象(1906)、判断集合中全部输入板是否支持某一特性(1907)以及取得输入板集中的特定项目(1908)。
可使各种特性与每一输入板集合1901关联,其中包括指明集合中输入板对象数量的计数特性1909、规定集合1901中默认输入板的默认输入板特性、指示使对集合的访问同步的同步特性以及提供可使访问同步的对象的同步根特性。
可对墨迹对象、笔划对象或各种集合添加笔划。可使墨迹对象、笔划对象或笔划集合与识别器对象关联。识别对象代表处理笔划并且将其变换成文本或笔势的能力。利用识别器对象完成手书识别。图20中示出识别器对象的例子。
识别器可具有特性中规定的一些性能。例如有些识别器仅可识别草书,而其他识别器可识别草书和印刷体。使用不支持草书的识别器识别草书,则用户以草体书写时,可能送回不准确的结果。
识别器可具有各种选项,例如判断绘制笔划的线条的度量。由于识别器内部功能,可送回笔划的线条数,但不需要识别所判断该线条度量的大小。
识别器可具有各种细目,包括例如识别器性能。识别器还可具有一些方法,其中包括建立新识别器环境(图22)(2002)以及规定并且/或者检索识别器名(2003)。
识别器可具有其关联的一些特性。这些特性可包含识别器性能(2004)(例如识别器是否支持字符自动完成(CAC),或者是否支持随意、成行或成框输入)、识别器支持的语言或子语言组合的列表(2005)、识别器名(2006)、识别器的优先包描述(可包含通用独特标识符(GUID)的列表)(2007)、识别器所支持特性的列表(2008)以及识别器销售商(2009)。
如图21的例子所示,识别器对象2001可与识别器组合2101中其他识别器组合。图21示出具有1个或多个识别器对象2102~2104的识别器组合2101。可使各种方法和特性与识别器组合关联。例如,可对识别器组合命名(2105)、将该组合复制到另一组合(2106)、规定并检索默认识别器(2107)、检索全部识别器(2108)以及检索特定识别器(2109)。还可使各种特性与识别器组合关联,其中包括集合中全部识别器的计数(2110)以及同步信息(集合是否同步2111和可用于使集合同步的对象2112)。
图22中示出的识别器环境对象代表完成墨迹识别、检索识别结果和检索交变结果的能力。识别器环境对象2201使系统所装各种识别器能通过完成墨迹识别适当处理输入。可进行至少2种识别后台识别或前台识别。后台识别发生在系统的后台处理中,可因其他系统事件(由用户等建立)而停止。反之前台识别一般由用户启动,并且在完成识别前不停止。
识别环境对象支持识别,可接收需要识别的墨迹笔划,并且对输入墨迹和所需识别输出规定约束条件或其他参数。例如,设定的约束条件包括识别期间要用的语言、词典和语法。可对每一数据输入端设定一定识别器环境形式。不同的数据输入段可专用于某些信息组具有号码、加号、短线和括号的电话号码段;仅具有号码和短线的邮政编码段;仅具有大写字母的状态缩略语等等。
细目可为识别段环境2209、各种识别模式2210和字符自动完成2211。还可发生各种识别事件。从识别器接收识别结果时,可发生识别事件2207。此结果不仅为最高识别结果2207,或可包含一些选项2208。
也可使各种方法与识别环境关联。这些方法包括后台识别器(2205),其中指示识别器异步识别关联的笔划,并且在完成识别时,激发识别事件。这还包含请求送回选项。另一方法可包含建立原件拷贝的克隆法(2206)。另一方法包括规定不再对环境添加墨迹(末端墨迹输入2204),并且判断例如系统词典、用户词典、字列表等是否支持字符串(2203)。识别方法2207可对识别器提供要识别的笔划列表,并送回其结果。最后,方法2202中可使后台识别停止。
还可规定各种特性,其中包括指明是否要识别字符或字符自动完成模式指示(2212)、笔划环境的标识(例如邮政编码段、地址段、姓名段、文件名段等(还是仿真描述的))(2213)、可用于识别的指示(2214)(希望用户写入的框)、可用作帮助识别结果的指示的前缀和后缀文本(2215)和(2219)、送回或设定从识别器环境要送回的情况的识别标记2216,所述情况包括诸如识别器是否将全部墨迹作为1个字处理或者是否抑制基于对环境规定的环境标识符2213的结果、与识别器环境2201关联的笔划2218以及包含可用于改善识别的字的字列表2220。至于指示2214,由于使用户写入指示区而知道识别处,可改善识别。
可包含各种其他部件,其中包括帮助识别处理过程的识别器引导、图23所示的绘图属性对象(例如存放各种绘图属性连同各种特性、方法和细目的对象)以及图24所示的识别器结果对象。
图25A和图25B示出墨迹对象和笔划与识别器间的各种关联。图25A中,每组笔划与1个识别器关联。图25B中,每组笔划与1个或多个识别器关联。
墨迹存储总述可将墨迹存入墨迹对象,且该墨迹对象提供与笔划关联的坐标数据和/或其他特性。可用压缩提供存放墨迹的效率。
尽管用所附权利要求书规定本发明,这些权利要求为示例,说明本发明要包含任何组合或子组合的这里所述单元和步骤。因此,存在许多规定本发明的任何数量的替换组合,其中以各种组合或子组合编入说明书(包括说明书、权利要求和附图)的1个或多个单元。相关技术人员会明白,这里所述1个或多个单元或者步骤可单独或按其组合用作本发明的修改或变换或者作为本发明的一部分。这里所含本发明的书写的说明书要覆盖这些修改和变换。例如,各实施例中,已示出某一数据顺序。然而,本发明包括该数据的任何重新排序。又,采用诸如规模等某些特性单位(例如字节和位)的情况下,也预期用任何其他单元。
权利要求
1.一种应用与墨迹对象间进行通信的方法,其特征在于,所述墨迹对象存放电子墨迹,该方法包含以下步骤由所述应用对所述墨迹对象发布请求;由所述墨迹对象处理所述请求;送回响应对所述墨迹对象的所述请求的信息。
2.如权利要求1所述的方法,其特征在于,所述方法为克隆请求。
3.如权利要求1所述的方法,其特征在于,所述方法为命中测试请求。
4.如权利要求1所述的方法,其特征在于,所述方法为取得界限框请求的请求。
5.如权利要求1所述的方法,其特征在于,所述方法为对提出点的最接近点的请求。
6.如权利要求1所述的方法,其特征在于,所述方法为提取笔划置入另一墨迹对象的请求。
7.如权利要求1所述的方法,其特征在于,所述方法为判断所述墨迹对象是否能依据给剪贴板信息中墨迹的请求。
8.一种应用与墨迹对象间进行通信的方法,其特征在于,所述墨迹对象存放电子墨迹,该方法包含以下步骤由所述应用对所述墨迹对象发布请求;由所述墨迹对象处理所述请求;和送回已成功处理所述请求的指示。
9.如权利要求8所述的方法,其特征在于,所述方法为在所述墨迹对象的矩形上添加笔划的请求。
10.如权利要求1所述的方法,其特征在于,所述方法为从所述墨迹对象删除至少一种笔划的请求。
11.如权利要求1所述的方法,其特征在于,所述方法为将所述墨迹对象中的笔划剪贴到给定的矩形的请求。
12.一种识别墨迹笔划的方法,其特征在于,包含以下步骤从应用发布识别笔划的请求;在识别器实体接收所述请求;送回对所述墨迹笔划的至少1组识别结果。
13.如权利要求12所述的方法,其特征在于,所述识别器实体包含至少1个识别器对象和1个识别环境对象。
14.一种与墨迹笔划互动的方法,其特征在于,包含发布对笔划对象的请求;处理所述请求;和送回所述请求的结果。
15.如权利要求14所述的方法,其特征在于,所述请求是修改所述笔划对象中1种或多种笔划的请求。
16.如权利要求14所述的方法,其特征在于,所述请求是在所述墨迹对象中取得有关1种或多种笔划的信息的请求。
17.一种存放墨迹笔划的方法,其特征在于,包含以下步骤建立笔划容器;接收笔划信息;从所述笔划信息建立笔划、和将所述笔划存入所述笔划容器。
18.一种对笔划对象进行操作的方法,其特征在于,包含以下步骤将所述笔划对象存入笔划集合;在所述笔划集合中的至少1个笔划对象上进行操作。
19.如权利要求18所述的对笔划对象进行操作的方法,其特征在于,所述操作包含从所述笔划集合删除笔划。
20.如权利要求18所述的对笔划对象进行操作的方法,其特征在于,所述操作包含修改所述笔划集合中的至少1种笔划。
21.如权利要求18所述的对笔划对象进行操作的方法,其特征在于,还包含以下步骤对请求程序送回有关至少1种笔划对象的笔划信息。
22.一种从识别器接收信息的方法,其特征在于,包含以下步骤对识别器对象发送信息请求;所述识别器对象送回有关识别器的信息。
23.如权利要求22所述的从所述识别器接收信息的方法,其特征在于,有关所述识别器的信息包含所述识别器的性能。
24.如权利要求22所述的从所述识别器接收信息的方法,其特征在于,有关所述识别器的信息包含所述识别器识别的1种或多种语言。
25.如权利要求22所述的从所述识别器接收信息的方法,其特征在于,有关所述识别器的信息包含所述识别器的名称。
26.如权利要求22所述的从所述识别器接收信息的方法,其特征在于,有关所述识别器的信息包含该识别器支持的特性。
27.如权利要求22所述的从所述识别器接收信息的方法,其特征在于,所述识别器对象识别为识别器集合的一部分。
28.一种交换有关如何识别墨迹的信息的方法,其特征在于,包含以下步骤对识别器环境对象发送信息请求;接收来自识别器环境对象且指明有关如何识别墨迹的信息的应答。
29.如权利要求28所述的方法,其特征在于,所述信息包含后台操作期间是否识别所述墨迹。
30.如权利要求28所述的方法,其特征在于,所述信息包含是否连同选择项送回识别结果。
31.如权利要求28所述的方法,其特征在于,所述信息包含所述识别器环境对象中的全部信息。
32.如权利要求28所述的方法,其特征在于,还包含以下步骤请求所述识别器环境对象停止墨迹的后台识别。
33.如权利要求28所述的方法,其特征在于,来自所述识别器环境对象的应答包含墨迹笔划的识别结果。
34.如权利要求33所述的方法,其特征在于,所述识别结果包含供选择的识别结果。
35.一种与识别处理结果交换信息的方法,其特征在于,包含以下步骤给识别结果对象发送信息;根据所述发送步骤的应答进行操作。
36.如权利要求35所述的方法,其特征在于,所述信息包含请求修改所述识别处理的所述结果的候选项。
37.如权利要求35所述的方法,其特征在于,所述信息包含给笔划分配识别结果。
38.如权利要求35所述的方法,其特征在于,所述操作包含送回与识别关联的墨迹笔划。
39.如权利要求35所述的方法,其特征在于,所述操作包含送回识别结果。
40.如权利要求35所述的方法,其特征在于,所述操作包含送回与至少1个识别结果关联的至少1个置信等级。
41.如权利要求35所述的方法,其特征在于,所述操作包含送回至少1个候选识别结果。
42.如权利要求35所述的方法,其特征在于,所述操作包含请求取得对至少1种墨迹笔划的识别结果。
43.一种具有在其上存放数据结构的计算机可读媒体,其特征在于,所述数据结构包含墨迹对象;所述墨迹对象包含至少1种笔划;所述至少1种笔划具有与其关联的至少1个识别器。
44.如权利要求43所述的计算机可读媒体,其特征在于,使至少2个识别器各自与至少1种笔划关联。
45.如权利要求43所述的计算机可读媒体,其特征在于,使第1笔划和第2笔划与至少1个识别器关联,且所述至少1个识别器对所述第1笔划和所述第2笔划不同。
全文摘要
本发明涉及电子墨迹接口。按以后应用所检索的数据结构存放墨迹。该墨迹包含笔划信息,且可包含特性信息。可通过各种编程接口,由一些方法和设定或检索的特性与墨迹互动。还可结合墨迹对象使用其他对象和集合。
文档编号G06K9/62GK1501216SQ0311033
公开日2004年6月2日 申请日期2003年4月7日 优先权日2002年5月14日
发明者A·高纳斯, S·多德格, T·H·坎纳佩尔, R·巴拉滋, S·巴哈塔查雅, M·K·比司瓦斯, R·L·查姆博司, B·德拉瑟维斯, S·A·费舍, A·J·格德博格, G·胡伦德, B·E·克拉滋, T·A·托赛特, J·J·特纳, A·希弗曼, S·M·索姆吉, A 高纳斯, ヂ , 克拉滋, 坎纳佩尔, 托赛特, 查姆博司, 格德博格, 椎, 檠, 比司瓦斯, 特纳, 索姆吉, 费舍, 赂 申请人:微软公司

最新回复(0)