CN101410885A - 以字体提示语言交互地解出约束条件 - Google Patents

以字体提示语言交互地解出约束条件 Download PDF

Info

Publication number
CN101410885A
CN101410885A CNA2004800013947A CN200480001394A CN101410885A CN 101410885 A CN101410885 A CN 101410885A CN A2004800013947 A CNA2004800013947 A CN A2004800013947A CN 200480001394 A CN200480001394 A CN 200480001394A CN 101410885 A CN101410885 A CN 101410885A
Authority
CN
China
Prior art keywords
constraint condition
reference mark
vocabulary
comparatively complicated
iteratively
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.)
Granted
Application number
CNA2004800013947A
Other languages
English (en)
Other versions
CN101410885B (zh
Inventor
B·斯坦姆
G·C·希契考克
M·J·达根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101410885A publication Critical patent/CN101410885A/zh
Application granted granted Critical
Publication of CN101410885B publication Critical patent/CN101410885B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Abstract

本发明的原理涉及以字体提示语言迭代地解出约束条件。计算系统访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件,所述较为复杂的约束条件至少约束了轮廓的一部分(201)。所述计算系统将较为复杂的约束条件分解为多个可以基于字体提示语言的符号集直接表达的、较为简单的约束条件(202)。所述计算系统以相应的字体提示语言指令表示每个较为简单的约束条件,所述指令可以被迭代地处理以至少逼近对较为复杂的约束条件的解决方案(207)。在所述计算系统或另一个计算系统处迭代地处理字体提示语言指令,使得图形对象符合(在指定容限内)较为复杂的约束条件。

Description

以字体提示语言交互地解出约束条件
技术领域
本发明涉及用于操纵用于生成图形对象轮廓的控制数据的系统和方法,尤其涉及以字体提示语言反复地解出约束条件的系统和方法。
背景和相关领域
计算技术改变了我们工作和娱乐的方式。如今,计算系统具有各种各样的形式,包括台式计算机、膝上型计算机、输入板计算机、个人数字助理(PDA)等等。甚至连家用设备(诸如冰箱、烤箱、缝纫机、安全系统等等)也具有不同程度的处理能力,因此可以被认为是计算系统。随着时间的前进,处理能力会被结合到许多传统上不具有处理能力的设备中。相应地,计算系统的多样性很可能会增加。
几乎所有与人类交互的计算系统开始使用显示器来传递信息。在许多情况下,显示器的感染力被认为是计算系统的一个重大属性。历史上,文本信息(例如基于拉丁的字符)显示在阴极射线管(“CRT”)显示设备的单元中。每个单元被分成相等大小的格网位置网格,其中每个格网位置可以被打开或关闭。例如,CRT的每个单元可以是8×8的网格,导致每个单元有64个可能的网格位置。
字符组的每个字符做为一存储图像(位图)存储在CRT显示设备的硬件中(例如在视频适配卡中)。存储图像包含多个二进制值(例如,为了将一字符显示在8×8的网格上有64个二进制值),其中每个二进制值对应于一特定的网格位置。一个值(例如,二进制“1”)表明显示当该字符时,相应的网格位置为“打开”,而另一个值(例如,二进制“0”)表明当显示当该字符时,相应的网格位置为“关闭”。在接收表示一字符的二进制数据(例如,位图)时,CRT将“打开”对应于二进制1的网格位置,而“关闭”对应于二进制0的网格位置以显示该字符。
更近一些,一些计算系统使用比例位图(例如,存储在磁盘上),所述位图根据要显示的字符在单元尺寸方面不同。例如,在比例位图字符集中,用于字母“i”的单元(例如,3个网格位置的宽度)要比用于字母“h”的单元(例如,6个网格位置的宽度)更狭窄。
然而,作为位图的存储字符(无论是固定或比例)会消耗很多计算系统资源。因为计算系统会需要以多种不同尺寸显示和打印字体的字符(一般为256或更多不同的字符),会需要存储大量不同尺寸的位图。例如,会希望有一文字处理器显示和打印大小范围从4pt到72pt的字体字符。因此,运行文字处理器的计算系统可能必须存储68种(72减4)不同大小的位图用于以不同的大小显示字体。
而且,由于打印机一般相对显示器具有不同的(对于多数来说是较高的)分辨率,计算系统可能也必须存储相应的68(72减4)种不同大小的位图用于以不同大小打印字体。例如,8×5网格的位图(需要40比特的存储)会被用于以特定尺寸显示字符,而50×30网格的位图(需要1500比特的存储)被用于以特定尺寸打印字符。
当计算设备要从不同的字体显示和打印字符时,与位图字体相关联的存储要求问题进一步复杂化。即,计算设备会需要存储位图用于以多种不同大小表示多种不同字体。因此,在上述例子中,配置文字处理器以使用50种不同字体会导致超过5000中不同的位图集(例如,(68+68)×50)。由于许多字符集包含256或更多字符,这会容易导致超过一百万个单独的位图(例如,5000×256)。为每种字体的下划线的、黑体的和/或斜体版本存储位图会进一步增加存储需求。此外,手动产生大量位图非常耗时。
相应地,更近地,图形基元被用于描述字体的字符。例如,一组控制点和用于连接这些点的指令(例如,用直线、弧线、贝塞尔曲线等连接)可以被用于在任意网格空间(例如,超过象素设备最高分辨率的任意网格空间)定义字符的轮廓。通常,会以较大的尺寸描述字符,接着当字符要以较小的尺寸被再现(或黑体、斜体等等)时在数学术上缩小之(或不同地处理)。因此,只需要存储减少数量的描述,可能为一个字符(每种字体)只要一个描述。
为了缩小字符,控制点的位置可除以比例因数。例如,要用比例因数10缩小字符,定义该字符(以较高分辨率)的每个控制点的坐标可除以10。定义在100×100网格上显示的字符会被缩小成在10×10的网格上显示。因此在网格位置(50,30)处的控制点会被缩小成在网格位置(5,3)处的控制点,在网格位置(70,70)处的控制点会被缩小成在网格位置(7,7)处的控制点等等。相应地,可计算表示字符的较小的轮廓,为字符存储多种不同尺寸的位图的需要降低了。
接着可以分析较小的轮廓以识别要打开的网格位置和识别要关闭的网格位置(通常被称为“扫描转换”的过程)。一个扫描转换算法确定网格位置的中心是在较小的轮廓之内还是之外的。当网格位置的中心是在较小轮廓之内,就打开网格位置。另一方面,如果网格位置的中心在较小轮廓之外,就关闭网格位置。
同样地,当再现字符时,会要求部分字符符合一个或多个约束条件。约束条件可以表达为根据一个或多个独立参数定义一个或多个依赖参数的算法。对一个控制点的约束条件可以用其它控制点的位置或网格上的位置(例如,大写线)来表示。例如,控制点“P”的位置可以用控制点“Q”的位置来表示,使得P相距Q一固定距离“c”。即,P=Q+c。因此,当Q移动时,会需要对P的相应移动使得P符合固定距离c。
部分由于不同字体中不同的艺术和技术特征的多样化,约束条件可以适用于个别的字体。通常,约束条件用具有有限的和非常特定的符号集的字体提示语言(例如,
Figure A20048000139400081
语言)表达。所述有限和非常特定的符号集简化了从数学概念到字体提示语言的翻译。例如,它一般直接翻译上述约束条件(P=Q+c),因为字体提示语言一般包含赋值运算符(例如“=”)和加法算符(例如“+”)。
然而,有限和非常特定的符号集也会限止可以表达的约束条件类型。例如,基于如超越函数的更复杂的函数,来表达约束条件会是困难的,因为这些较为复杂的数学函数不包含在字体提示语言符号集中,并且会难以加上。缺少较为复杂的数学函数(例如平方根函数)转而使得确定适当的控制点位置以符合约束条件变得困难。因此,即使是在字体提示语言缺少较为复杂的符号集的情况下使用字体提示语言的现有符号集来解出约束条件的机制将是有优势的。
发明内容
本发明的原理克服了对本领域的原先技术中的上述问题,它主要针对以字体提示语言迭代地地解出约束条件。计算系统访问较为复杂的约束条件,所述条件不能基于字体提示语言的符号集直接表达,较为复杂的约束条件约束了至少一部分的轮廓。计算系统将较为复杂的约束条件分解为多个较为简单的可以基于提示字体提示语言直接表达的约束条件。计算系统以相应的字体提示语言指令表示了每种较为简化的约束条件,所述指令可以被迭代地处理以至少逼近对较为复杂的约束条件的解决方案。字体提示语言指令在该计算系统或另一个计算系统被迭代处理,以使得图形对象符合(在指定容限内)较为复杂的约束条件。
以下将描述本发明的其它特征和优势,部分会从描述中变得明显,或通过本发明的实践而获得。通过尤其在所附权利要求书中的所提出的装置和组合,会实现和获取本发明的特征和优势。本发明的这些和其它特征会从以下描述和所附权利要求书变得完全地显而易见,或者可以通过下文所提出的本发明的实践中获得。
附图说明
为了描述本发明可以获得的上述和其它优势和特征的方式,将参考其特定实施例提供对以上简述的本发明的较为详细的描述,所述特定实施例在附图中说明。应该理解这些附图只描述了本发明的典型实施例,因此不应该被认为限制其范围,将通过使用附图描述和解释本发明的附加特征和细节,其中:
图1示出了用于以字体提示语言迭代地解出约束条件的示例的计算机构架。
图2A示出了使用字体提示语言表示对约束条件的迭代地解决方案的示例方法的流程图。
图2B示出了用于迭代地解出约束条件使得图形对象可以被适当地再现的示例方法的流程图。
图3示出了用于实现本发明的原理的适当的操作环境。
具体实施方式
本发明的原理涉及用于以字体提示语言迭代地解出约束条件的系统、方法和计算机程序产品。计算系统接收一组设计控制点,所述控制点以较大的尺寸(例如,72点)描述图形对象(例如,文本字符)的轮廓。该组设计控制点可以是非提示的,或者可以包含用于以较小的尺寸显示图形对象的基本提示。该组设计控制点可以与不能基于字体提示语言的符号集直接表达的较为复杂的约束条件相关联。例如,该组设计控制点可以与循环依赖约束条件相关联,诸如,举例而言指示“Z”的对角线笔画的边缘是平行的约束条件。
计算系统访问不能基于字体提示语言的符号集直接表达的较为复杂的约束,所述较为复杂的约束条件约束至少部分的轮廓。计算系统将较为复杂的约束条件分解为多个较为简单的可以基于提示字体提示语言直接表达的约束条件。计算系统以相应的字体提示语言指令表示了每种较为简化的约束条件,所述指令可以被迭代地处理以至少逼近较为复杂的约束条件的解决方案。字体提示语言指令在该计算系统另一个计算系统被迭代地处理,以使得图形对象符合(在指定容限内)较为复杂的约束条件。
在本发明范围内的实施例包含用于携带或具有其上存在计算机可执行指令或数据结构的计算机可读介质。这样的计算机可读介质可以是任何通用或专用计算系统可访问的可用介质。通过举例而非限制,这样的计算机可读介质可以包含物理存储介质诸如RAM、ROM、EPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储设备,或者任何其它可以被用于以计算机可执行指令、计算机可读指令、数据结构的形式传送或存储所期望的程序编码装置的介质,且它们可以由通用或专用计算系统访问。
在这个描述和随后的权利要求中,“网络”被定义为一个或多个数据链路,使得计算设备和/或模块之间能够传输电子数据。当信息在网络或另一个通信连接(有线的、无线的或有线和无线的组合)上被传递到或提供给计算系统时,该连接被适当地视为计算机可读介质。因此,任何这样的连接被适当地定义为计算机可读介质。上述的组合也包含在计算机可读介质的范围内。计算机可执行指令包含,例如使得通用或特殊用途计算系统执行某些功能或功能组的指令和数据。计算机可执行指令可以是,例如二进制、中间形式指令,诸如汇编语言,或者甚至是源代码。
在这个描述和随后的权利要求中,“计算系统”被定义为一个或多个软件模块、一个或多个硬件模块或其组合,它们一起工作对电子数据执行操作。例如,对计算系统的定义包含个人计算机的硬件组件以及软件模块,诸如个人计算机的操作系统。模块的实际配置不重要。计算系统会包含一个或多个经由网络耦合的计算机。同样地,计算系统可包含单个的物理设备(诸如移动电话或个人数据助理“PDA”),其中内部模块(诸如存储器和处理器)一起工作以执行在电子数据上的操作。
如这里所使用的,术语“模块”或“组件”可以指软件对象或在计算系统上执行的例行程序。这里所描述的不同的组件、模块、引擎和服务被实现为在计算系统上执行的对象或过程(例如,作为单独的线程)。虽然这里所描述的系统最好用软件实现,但是用软件和硬件或硬件的实现也是可能的和预期的。
本领域的技术人员会理解,本发明可以在具有多种类型的计算系统配置的网络计算环境中实现,所述计算系统配置包含个人计算机、膝上计算机、手掌设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型机、大型机、移动电话、PDA、寻呼机等等。本发明也可以在分布式系统环境中实现,其中通过网络连接(通过有线数据链路、无线数据链路或有线和无线数据链路的结合)的本地和远程计算系统都执行任务。在分布式系统环境中,编程模块可以同时位于本地和远程存储器存储设备中。
图1示出了用于以字体提示语言迭代地解出约束条件的计算机构架100的例子。在计算机构架100中,计算系统118包含提示模块119。一般地,提示模块119接收一组表示图形对象(图形对象131)的控制点(例如,设计控制点122)。适当时,提示模块119将字体提示语言(例如
Figure A20048000139400111
)的计算机可执行指令(此后称为“提示”)分配给控制点组内的所含的控制点(例如控制点101-108)。随后,可以处理提示以更适当地再现图形对象(例如,以较小的尺寸)。
提示模块119可以包含多个模块,所述多个模块自动标识由控制点组表示的特征,诸如笔划、衬线等等,并自动标识控制点组内控制点的约束条件。一些约束条件,诸如,举例而言将第一控制点限制为离开第二控制点一水平距离,可以使用字体提示语言的现有符号集较为简单地实现。然而,诸如那些要求较为复杂的数学函数其它约束条件不能使用字体提示语言的现有符号集简单地实现(如果它们是完全可以实现的)。例如,当字体提示语言的现有符号集缺少平方根函数,直接计算关于对角边的距离约束条件会是困难的(或甚至是不可能的)。
约束条件识别模块121可以基于控制点的位置或包含在设计控制点122中的基本提示识别约束条件,包含否则难以解出的约束条件。基本提示可以是用于以较大的尺寸(例如,在目标设备处72点)再现图形对象的提示,但是当以其它的尺寸(例如,在目标设备处12点)再现图形对象时不是一般适用的。例如,当在特定目标设备处再现为72点时,基本提示可以将“T”的竖划的宽度限制为六个象素。然而,以较小的尺寸实现相同的六个象素约束条件降低了其意义,因为当在特定目标设备处以较小的尺寸再现时,图形对象在宽度上甚至不是六个象素。相应地,提示模块119可以生成约束条件等式,基本限制图像对象要被显示的尺寸和分辨率。例如,提示模块119可以将对“T”的竖划的约束条件配置为“T”被再现的点尺寸的十二分之一。
根据目标设备的分辨率,对应于点尺寸的十二分之一的象素的数目可以变化。在较高分辨率的设备上,诸如,举例而言300点每英寸(“dpi”)打印机、点尺寸的十二分之一可以对应于较多数目的象素。另一方面,在较低分辨率的设备上,诸如,举例而言96dpi监视器,点尺寸的十二分之一可以对应于较少数目的象素。
提示应用模块129可以为设计控制点122增加提示(例如
Figure A20048000139400112
指令)以在图形对象随后被再现时实现这样的约束条件。例如,除法操作符可以被用于实现对“T”的竖划的宽度约束条件(笔划的宽度=点尺寸/12)。提示应用模块129可以包含用于迭代地解出其它更为复杂的约束条件的提示,诸如要求更为复杂的数学函数的那些约束条件。当随后再现图形对象时,计算系统能够处理所述提示以基于,如图形对象要显示的尺寸迭代地解出约束条件。
计算系统123包含缩放模块124、提示处理器134和扫描转换模块126。缩放模块124能够接收一组以较大的尺寸表示图形对象的轮廓的提示控制点(例如控制点132)。提示控制点可以经由网络连接接收或从计算机可读介质载入,诸如,磁盘或光盘。缩放模块124可以缩放控制点的位置,使得可以以较小或较大的尺寸再现图形对象。
提示处理器134可以处理与所提示的控制点组相关联的提示(可能进一步改变缩小的控制点的位置)使得图形对象更适合以较小的尺寸再现。例如,提示处理器134能够处理字体提示语言的计算机可执行指令,以迭代地解出更为复杂的约束条件。扫描转换模块126将相应象素网格的象素(或子象素)打开或关闭以生成图形对象的象素表示。
因此,用于实现较为复杂的约束条件的提示能够与一组控制点相关联,而无需改变字体提示语言或相应的提示处理器以包含较为复杂的数学函数。相应地,计算系统可以使用现有组件以符合较为复杂的约束条件的方式来再现图形对象。这是有优势的,因为改变字体提示语言的符号集和/或提示处理器的功能会比使用现有字体提示消息符号集来提示图像对象要困难和耗时得多。
图2A示出了用于以字体提示语言迭代地解出约束条件的示例方法200的流程图。将关于计算机构架100中的计算系统、模块和控制点来描述方法200。方法200包含访问较为复杂的约束条件的动作,所述约束条件不能基于字体提示语言的符号集(动作201)简单地表达。例如,提示模块119能够(识别和)方位用设计控制点122表示的较为复杂的约束条件。提示模块119和/或提示处理器134所使用的字体提示语言可能不具有从控制点122访问的用于表达较为复杂的约束条件的符号集。
较为复杂的约束条件可以是,如由幂函数或指数函数(XY)表达的约束条件、多个循环依赖约束条件或要求多个控制点同时移动的约束条件。然而,这个较为复杂的约束条件列表并非意在是全面的。对于本领域的技术人员应该显而易见的是在看过这个描述之后,除了那些可以被清除描述的约束条件之外,其它较为复杂的约束条件可以被访问。
关于循环依赖约束条件,符合第一约束条件的能够依赖于第一控制点的位置。例如,约束条件识别模块121可以识别控制点107被约束为距边缘117对角线距离114。符合对角线距离114依赖于控制点103的位置,因为关于控制点102改变控制点103的位置会改变对角线距离114的方向。
符合第二约束条件能够依赖于第二控制点的位置。例如,约束条件识别模块121可以识别控制点103被约束为距边缘116对角线距离144。符合对角线距离144依赖于控制点107的位置,因为关于控制点106改变控制点107的位置会改变对角线距离144的方向。
因此,第一和第二约束条件导致循环依赖性,其中控制点107的符合对角线距离114依赖于控制点103,而控制点103的符合对角线距离144依赖于控制点107。约束条件识别模块121可以识别循环依赖性。
方法200包含将较为复杂的约束条件分解成多个较为简单的约束条件的动作,所述较为简单的约束条件可以基于字体提示语言的字符集直接地表达(动作202)。例如,提示模块119可以将从设计控制点122访问的较为复杂的约束条件分解为被提示模块119和/或提示处理器134使用的可以用字体提示语言表达的多个较为简单的约束条件。
分解较为复杂的约束条件可以包含任何数目的用于降低较为复杂的约束条件的复杂性的机制。例如,循环依赖约束条件可以被分解成多个非循环依赖约束条件。基于指数函数或幂函数的约束条件可以被分解成幂级数。要求多个控制点同时移动的约束条件可以被分解成多个约束条件,每个对应于单个控制点。其它较为复杂的约束条件也可以被分解成多个相应的较为简单的约束条件。
方法200包含以相应的字体提示语言指令表达每个较为简单的约束条件的动作,所述指令可以被迭代地处理以至少逼近对较为复杂的约束条件的解决方案(动作203)。例如,提示模块119可以以字体提示语言指令
Figure A20048000139400131
指令,表达较为简单的约束条件,这些指令可以在提示处理器134处被迭代地处理。
关于循环依赖约束条件,表示较为简单的约束条件可以包含制定字体提示语言指令,用于基于第一控制点的当前位置应用第一约束条件,以便为第二控制点计算目标位置。例如,提示处理器134可以基于控制点103的当前位置(在缩小以后)为计算对角线距离114制定指令,用于为控制点107计算目标位置。同样地,表示较为简单的约束条件可以包含制定字体提示语言指令,用于基于第二控制点的当前位置应用第二约束条件,以便为第一控制点计算目标位置。例如,提示处理器134可以基于控制点107的当前位置(在缩小以后)为计算对角线距离144制定指令,用于为控制点103计算目标位置。
可以交替应用为表示第一和第二约束条件制定的指令。例如,可以应用第一约束条件,可以应用第二约束条件,可以再一次应用第一约束条件,可以应用第二约束条件等等。交替应用第一和第二约束条件可以继续直至控制点位置适当为止。
相应地,以字体提示语言指令表达的较为简单的约束条件也可以包含制定字体提示语言指令以确定第二控制点的目标位置位于第二控制点当前位置的指定容限之内。例如,提示模块134制定字体提示语言指令用于确定控制点107的目标位置是在控制点107的当前位置的指定容限之内。指定容限可以是以象素或象素的分数(例如1/64的象素)为单位的一距离。同样地,以字体提示语言指令表达较为简单的约束条件可以包含制定字体提示语言指令以确定第一控制点的目标位置是位于第一控制点当前位置的指定容限之内的。例如,提示模块134可以制定字体提示语言指令,以确定控制点103的目标位置是位于控制点103当前位置的指定容限之内的。
对于基于幂函数的较为复杂的限制条件,表示较为简单的限制条件可以包含制定字体提示语言指令以解幂级数。对于要求多个控制点同时移动的约束条件,表示较为简单的约束条件可以包含制定字体提示语言指令以分别地移动控制点。表示对应于其它类型的较为复杂的约束条件的较为简单的约束条件也可以包含制定适当的字体提示语言指令。
在一些实施例中,表示多个较为简单约束条件的字体提示语言指令在制定字体提示语言指令的计算系统处处理。例如,提示模块119可以处理先前在提示模块119处制定的字体提示语言指令(例如与控制点132相关联的)。在其它实施例中,表示多个较为简单约束条件的字体提示语言指令被发送到另一个计算系统用于处理。例如,计算系统118可以将字体提示语言指令(例如与控制点132相关联的)发送到计算系统123用于处理。
图2B说明了以字体提示语言迭代地解出约束条件的示例方法250的流程图。将关于计算机构架100中的计算系统、模块和控制点来描述方法250。可以在制定表示多个较为简单的约束条件的字体提示指令的计算系统(例如,计算系统118)处或在接收表示多个较为简单的约束条件的制定的字体提示指令的计算系统(例如,计算系统123)处执行方法250。
方法250包含访问表示多个较为简单的约束条件的字体提示语言指令的动作,所述多个较为简单的约束条件对应于不能基于字体提示语言的符号集直接表达的较为复杂的约束条件(动作251)。例如,提示模块119可以访问表示多个较为简单的约束条件的字体提示语言指令(例如,指令),所述多个较为简单的约束条件对应于一与控制点132相关联的较为复杂的约束条件。相似地,提示处理器134可以访问表示多个较为简单的约束条件的字体提示语言指令(例如,
Figure A20048000139400142
指令),所述多个较为简单的约束条件对应于一与控制点132相关联的较为复杂的约束条件。
方法250包含有限次数迭代处理字体提示语言指令以至少逼近对较为复杂的约束条件的解决方案,使得图形对象可以被改变以符合较为复杂的约束条件(动作252)。例如,适当时,提示模块119或提示处理器132可以迭代地处理字体提示语言指令以至少逼近对较为复杂的约束条件的解决方案。
对于要求多个控制点同时移动的较为复杂的约束条件,提示模块119或提示处理器132处理多个字体提示语言指令以移动各个的控制点(对单独控制点的移动被视为一次迭代)直至所有的控制点都被移动。对于包含指数函数或幂函数的约束条件,提示模块119或提示处理器132处理多个表示部分幂级数的字体提示语言指令(对每个部分的处理被视为一次迭代)直至每个部分都被处理。部分基于较为复杂的约束条件的类型和如何分解复杂的约束条件,指定部分表示较为简单的约束条件的字体提示语言指令的处理可以被示为一次迭代。
对于循环依赖约束条件,迭代可以继续直至控制点的位置位于符合约束条件的阈值容限之内或执行了指定数目的迭代。例如,当控制点103和107的目标位置分别位于相对应的控制点103和107的当前位置的指定容限之内,控制点103和107的当前位置被视为足够精确。另一方面,当控制点103和107的任一目标位置不是分别位于相对应的控制点103和107的当前位置的指定容限之内,控制点103和107的当前位置不被视为足够精确。
若当前位置不足够精确,控制点103和107的当前位置被分别设置为等于对控制点103和107计算的目标位置。再一次应用第一和第二约束条件(使用计算目标位置作为当前位置)以便为控制点103和107计算第二目标位置。即,计算目标位置被用于迭代第二目标位置。可以继续迭代地将从先前计算所得的计算目标位置用作新的计算的当前位置(例如,将第二目标位置用作迭代第三目标位置的当前位置等等)直至某次迭代的计算目标位置位于当前位置的指定容限之内。或者,迭代计算可以继续直至发生阈值次数的迭代。例如,循环指令可以指明在十次迭代后停止迭代。
以下伪码表示可以制定和/或执行以便于迭代地解出约束条件的算法的例子。在该伪码的例子中,在控制点132被缩小和提示后,P1可以指控制点107的位置,P2可以指控制点106的位置。类似地在伪码例子中,在控制点132被缩小和提示后,Q1可以指控制点102的位置,Q2可以指控制点103的位置。可以用多种字体提示语言制定伪码算法,并用相应的提示处理器处理它(例如提示处理器134)。在伪码例子中,分号(“;”)后面的文本表示注释,用于描绘伪码所执行的功能。
第一行:n=迭代的次数 ;初始化计时器
第二行:P1’=P1      ;记录P1的当前位置
第三行:Q2’=Q2      ;记录Q2的当前位置
第四行:P1←Q1Q2+c    ;如同Q2位于其目标位置那样执行约束条件
第五行:Q1←P2P1+c    ;如同P1位于其目标位置那样执行约束条件
第六行:n←n-1        ;计数器减1
第七行:n=0?        ;发生了阈值次数的迭代?
是,跳转到第10行
否,继续
第八行:|P1-P1’|<1/64?;P1和P1’之间的距离在容限之内?
否,跳转到第2行
是,继续
第九行:|Q2-Q2’|<1/64?;Q2和Q2’之间的距离在容限之内?
否,跳转到第2行
是,继续
第十行:结束
在伪码的例子中,执行第4行以应用第一约束条件,诸如,对角线距离114,并执行第5行以应用第二约束条件,诸如对角线距离144。在一些实施例中,所示的功能和第4和第5行被进一步改进。
例如,在第4行中,P1被从边Q1Q2垂直测量的距离c限制。在这些改进的实施例中,这种约束条件被分为两个部分。在距离部分,P1被移动到符合距离c。随后,在单独的角度部分,将Q2移动一足以重建边P1P2和Q1Q2之间角度的量。即,如果这些边被设计成平行的,那么在执行角度部分后它们将再次平行。移动Q2以符合角度部分会导致额外的不符合距离部分。然而,随着执行更多的迭代,由移动Q2以符合角度部分而引入的额外的不符合距离的量将变得更小且越来越不重要(在一些次数的迭代后将变得实质上不相关)。
在第5行中,可以执行类似的“再平行”。第一,Q1被移动到符合约束条件的距离部分,接着移动P1以符合约束条件的角度部分。这些改进的实施例便利了对可用控制点的限制,以此模仿限制笔划,这可以包含限制笔划的边之间的角度。相应地,当可用的控制数据包含控制点以及如何连接这些控制点的指令(直线,Bezier曲线等等),但不明显地表示这些笔划时,这些改进的实施例有利于限制笔划。
第7行执行检查以确定是否发生了指定阈值数目的迭代。当发生了指定阈值数目的迭代,算法终止(即使没有计算出对于约束条件足够精确的解决方案)。另一方面,如果未发生指定阈值数目的迭代,算法继续到第8行。
第8行执行检查以确定P1(第一控制点的目标位置)是否在P1’(第一控制点的当前位置)的指定容限(象素的1/64)之内。当P1和P1’之间的距离不在指定容限之内,算法继续到第2行(并开始另一个迭代)。另一方面,当P1和P1’之间的距离在指定容限之内,算法继续到第9行。
第9行执行检查以确定Q2(第二控制点的目标位置)是否在Q2’(第二控制点的当前位置)的指定容限(象素的1/64)之内。当Q2和Q2’之间的距离不在指定容限之内,算法继续到第2行(并开始另一个迭代)。另一方面,当Q2和Q2’之间的距离在指定容限之内,算法终止。当P1和P1’之间的距离在容限之内且Q2和Q2’之间的距离在指定容限之内时,P1和Q2被视为有足够精确以再现相应的图形对象。
在一些实施例中,迭代地解出约束条件被用于补偿由于符合多个依赖约束条件而发生的不适当的再现。例如,当控制点具有多个与它们相关联的约束条件,且这些约束条件中的一些依赖于其它约束条件,其它约束条件反过来依赖于其它约束条件等等,适当地再现相应的图形对象将变得更为困难。例如,对于图形对象131,一组限制条件C1会将边151带入到最近全象素(例如,接近“大写线“)。另一组约束条件C2会将边152保持在离开边151指定的距离。相似的约束条件组C1’和C2’会与控制点106、105、103和104相关联。又另一组约束条件C3会将边116保持在离开边117指定的距离。符合C1和C1’的约束条件会分别影响C2和C2’的约束条件,它们转而又会影响C3的约束条件。因此,符合C1、C1’、C2和C2’的约束条件会导致控制点103和/或107不再符合C3的约束条件(例如,对角线距离114和144)。然而,本发明的实施例可以被用于迭代地解出C3的约束条件,使得图形对象仍然符合C1、C1’、C2和C2’的约束条件。
在按照接收到的提示改变控制点位置之后,扫描转换模块126会在象素网格上打开适当的象素(或子象素),使得图形对象131能够以较小的尺寸被再现。扫描转换模块126可以生成象素表示127,接着所生成的象素表示被提供给显示设备128。显示设备128可以是彩色或单色的监视器。适当时,例如,当显示设备128是彩色监视器时,扫描转换模块仅打开一些象素的部分(例如象素的红、绿或蓝子组成部分)以更好地再现图形对象131。
图3和以下的讨论意在提供本发明可以在其中实现的、合适的计算环境的简要、一般描述。虽然不是要求的,本发明会在计算机可执行指令的背景中描述,诸如计算机执行的程序模块。一般地,程序模块包含例行程序、程序、对象、组件、数据结构等等,它们执行特定任务或实现特定抽象数据类型。与数据结构相关联的计算机可执行指令和程序模块表示了这里所揭示的方法的执行动作的程序代码装置的例子。
参见图3,用于实现本发明的示例系统包含以计算机系统320形式示出的通用计算设备,包含处理单元321、系统存储器322以及把包括系统存储器322在内的各种系统组件耦合至处理单元321的系统总线323。处理单元321可以执行设计以实现计算机系统320的特征(包含本发明的特征)的计算机可执行指令。系统总线323可以是若干总线结构类型中的任一种,包括存储器总线或存储器控制器、外围总线以及使用多种总线构架的局部总线的任一种。系统存储器包含只读存储器(“ROM”)324以及随机存取存储器(“RAM”)325。基本输入/输出系统(“BIOS”)存储在ROM 324内,它包括如启动时帮助在计算机320内的元件间传输信息的基本例程。
计算机系统系统320还包含读写磁硬盘339的磁硬盘驱动器327、从可移动磁盘329的磁盘驱动器328、读写CD-ROM或其它光学介质这样的可移动光盘331的光盘驱动器330。磁硬盘驱动器327、磁盘驱动器328和光盘驱动器330分别通过硬盘驱动器接口332、磁盘驱动器接口333和光盘驱动器接口334连接到系统总线323。这些驱动器和它们相关联的计算机可读介质提供了对计算机可执行指令、数据结构、程序模块和计算机系统320的其它数据的非易失性存储。虽然这里所描述的示例环境采用了磁性硬盘339、可移动光盘331,可以使用用于存储数据的其它类型的计算机可读介质,包含盒式磁带、闪存卡、数字多用途盘、Bernoulli盒式磁带、RAM、ROM等等。
包含一个或多个程序模块的程序代码装置可以被存储在硬盘339、磁盘329、光盘331、ROM 324或RAM 325上,包含操作系统335、一个或多个应用程序336、其它程序模块337和程序数据338。用户可以通过键盘340、定位设备342或其它输入设备(未示出)将命令和信息输入计算机系统320,所述其它输入设备诸如麦克风、操纵杆、游戏垫、扫描仪等等。这些和其它的输入设备通过与系统总线323耦合的输入/输出接口346连接到处理单元321上。输入/输出接口346逻辑上表示多种类型不同接口种的任意一种,诸如串行接口、PS/2接口、并行接口、通用串行总线(“USB”)接口、或电气和电子工程师协会(“IEEE”)1394接口(即,高速率行连接总线(Fire Wire)接口)或者甚至是逻辑上表示不同接口的组合。
监视器347或其它类型的显示设备也通过视频接口348连接到系统总线323。监视器347可以显示图形对象,包含由计算机系统320产生的文本。其它外围设备(未示出)诸如扬声器、打印机和扫描仪也可以连接到计算机系统320。连接到计算机系统347的打印机可以打印图形对象,包含由计算机系统320产生的文本。
计算机系统320可以连接到网络,诸如办公室范围或公司范围的计算机网络、家庭网络、内联网和/或因特网。计算机系统320可以在这样的网络上与外部信源交换数据,诸如远程计算机系统、远程应用程序和/或远程数据库。
计算系统320包括网络接口353,计算机系统320通过所述网络接口353从外部信源接收数据和/或发送数据至外部信源。如图3所示,网络接口353便利了通过链路351与远程计算机系统383交换数据。网络接口353可以逻辑上表示一个或多个软件和/和硬件模块,诸如网络接口卡和相应的网络驱动程序接口规范(“NDIS”)栈。链路351表示网络的一部分(例如,以太网网段),远程计算机系统383表示网络的节点。例如,链路351能够表示计算系统118和123之间的网络连接。
同样地,计算机系统320包含输入/输出接口346,计算机系统320通过所述输入/输出接口346从外部信源接收数据和/或发送数据至外部信源。输入/输出接口346耦合到调制解调器354(例如,标准调制解调器、电缆调制解调器或数字用户线路(“DSL”)调制解调器)上,计算机系统320通过所述调制解调器354从外部信源接收数据和/或发送数据至外部信源。如图3所示,输入/输出接口346和调制解调器354便利了通过链路352与远程计算机系统393交换数据。链路352表示网络的一部分,远程计算机系统393表示网络的节点。
虽然图3示出了本发明使用的操作环境,但是可以在能够实现本发明的原理的任何系统(如有必要作适当的修改)中采用本发明的原理。图3所示的环境只是说明性的,决不是表示即使只是多种可以实现本发明的原理的环境中的一小部分。
依照本发明模块,诸如提示模块119和提示处理器134以及相关联的程序数据,诸如设计控制点122、控制点132和象素表示127可以被存储在与计算机系统320相关联的任一计算机可读介质上并可从中读取。例如,部分这样的模块和部分相关联的程序数据可以包含在操作系统335、应用程序336、程序模块337和/或程序数据338中,用于存储在系统存储器中。
当大容量的存储设备(例如,磁性硬盘339)耦合到计算机系统320上,这样的模块和相关联的程序数据也可以被存储在所述大容量存储设备中。在网络环境中,关于计算机系统320描述的程序模块或其部分可以被存储在远程存储器存储设备中,诸如,与远程计算机系统383和/或远程计算机系统393相关联的系统存储器和/或大容量存储设备。这样模块的执行可以在分布式环境中进行。
本发明可以以其它特定的形式实施而不背离其精神和主要的特征。无论从那方面来看,所述的实施例应该被认为是说明性的而非限制性的。因此,本发明的范围是由所附的权利要求书而非上述描述所指出的。所有在权利要求书的等价的含义和等价范围之内的变化是在它们的范围之内的。

Claims (19)

1.在访问一组控制点的计算系统中,所述控制点组用于生成图形对象的轮廓,所述轮廓被用于确定如何再现所述图形对象,轮廓的一些部分的位置可能被约束到预定的位置,一种使用字体提示语言表示对约束条件的迭代解决方案的方法,所述方法包含:
访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件,所述较为复杂的约束条件约束轮廓的至少一部分;
将较为复杂的约束条件分解为多个可以基于字体提示语言的符号集直接表达的、较为简单的约束条件;
以相应的字体提示语言指令表示每个较为简单的约束条件,所述指令可以被迭代地处理以至少逼近对较为复杂的约束条件的解决方案。
2.如权利要求1所述的方法,其特征在于,访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件包含访问基于幂函数或指数函数的约束条件。
3.如权利要求1所述的方法,其特征在于,访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件包含访问要求同时移动多个控制点的约束条件。
4.如权利要求1所述的方法,其特征在于,访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件包含访问循环依赖的约束条件。
5.如权利要求1所述的方法,其特征在于,将较为复杂的约束条件分解为多个较为简单的约束条件包含基于幂函数或指数函数将约束条件分解为幂级数的多个部分。
6.如权利要求1所述的方法,其特征在于,将较为复杂的约束条件分解为多个较为简单的约束条件包含将要求同时移动多个控制点的约束条件分解为多个约束条件,每个约束条件用于移动单独的控制点。
7.如权利要求1所述的方法,其特征在于,将较为复杂的约束条件分解为多个较为简单的约束条件包含将循环依赖约束条件至少分解为:
第一约束条件,它约束第一控制点的位置,符合依赖第二控制点的位置的第一约束条件;
第二约束条件,包含第二控制点的位置,符合依赖第一控制点的位置的第二约束条件;
8.如权利要求1所述的方法,其特征在于,以相应的字体提示语言指令表示每个较为简单的约束条件包含以
Figure A2004800013940003C1
指令表示每个较为简单的约束条件,所述指令可以被迭代地处理以至少逼近对较为复杂的约束条件的解决方案。
9.如权利要求1所述的方法,其特征在于还包含:
迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案,使得至少轮廓的一部分可以被改变以符合较为复杂的约束条件;
生成图形对象的轮廓,使其至少在指定容限内符合较为复杂的约束条件;以及
基于所述轮廓生成图形对象的象素表示,所述象素表示用于在输出设备上再现。
10.在被配置成处理字体提示语言指令的计算系统中,一种用于迭代地解出约束条件使得图形对象可以被适当地再现的计算机化的方法,所述方法包含:
接收表示多个较为简单的约束条件的字体提示语言指令,所述多个较为简单的约束条件对应于不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件;以及
迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案,使得图形对象可以被改变以符合较为复杂的约束条件。
11.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含迭代地地处理表示幂级数的部分的字体提示语言指令。
12.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含迭代地处理移动各个的控制点的字体提示语言指令。
13.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含:
基于第一控制点的当前位置,应用第一较为简单的约束条件以便为所述第二控制点计算目标位置;
基于第二控制点的当前位置,应用第二较为简单的约束条件以便为所述第一控制点计算目标位置;
确定第一控制点的目标位置是位于第一控制点的当前位置的指定容限之内;以及
确定第二控制点的目标位置是位于第二控制点的当前位置的指定容限之内。
14.如权利要求13所述的方法,其特征在于还包含:
使得所述第一控制点的目标位置成为第一控制点的当前位置;以及
使得所述第二控制点的目标位置成为第二控制点的当前位置。
15.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含迭代地处理字体提示语言指令直至执行了指定数目的迭代。
16.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含迭代地处理字体提示语言指令直至控制点的位置位于符合较为复杂的约束条件的阈值容限之内。
17.如权利要求10所述的方法,其特征在于,迭代地处理字体提示语言指令有限次数以至少逼近对较为复杂的约束条件的解决方案包含迭代地处理指令。
18.如权利要求10所述的方法,其特征在于还包含:
生成所述图形对象的轮廓,使其符合较为复杂的约束条件;以及
基于所述轮廓生成图形对象的象素表示,所述象素表示用于在输出设备处再现。
19.一种计算机程序产品,用于在访问一组控制点的计算系统中,所述控制点组用于生成图形对象的轮廓,所述轮廓被用于确定如何再现所述图形对象,轮廓的一些部分的位置可能被约束到预定的位置,所述计算机程序产品用于实现使用字体提示语言表示对约束条件的反复解决方案的方法,所述计算机程序产品包含计算机可执行指令,当处理器执行所述指令时使得所述计算系统执行以下:
访问不能基于字体提示语言的符号集直接表达的、较为复杂的约束条件,所述较为复杂的约束条件至少约束轮廓的一部分;
将较为复杂的约束条件分解为多个可以基于字体提示语言的符号集直接表达的、较为简单的约束条件;
以相应的字体提示语言指令表示每个较为简单的约束条件,所述指令可以被迭代地处理以至少逼近较为复杂的约束条件的解决方案。
CN2004800013947A 2004-01-26 2004-07-30 以字体提示语言交互地解出约束条件 Expired - Fee Related CN101410885B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/764,961 2004-01-26
US10/764,961 US7187382B2 (en) 2004-01-26 2004-01-26 Iteratively solving constraints in a font-hinting language
PCT/US2004/024650 WO2005074411A2 (en) 2004-01-26 2004-07-30 Interactively solving constraints in a font-hinting language

Publications (2)

Publication Number Publication Date
CN101410885A true CN101410885A (zh) 2009-04-15
CN101410885B CN101410885B (zh) 2011-06-08

Family

ID=34795384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800013947A Expired - Fee Related CN101410885B (zh) 2004-01-26 2004-07-30 以字体提示语言交互地解出约束条件

Country Status (8)

Country Link
US (3) US7187382B2 (zh)
EP (1) EP1709506B1 (zh)
JP (1) JP4783298B2 (zh)
KR (1) KR101159320B1 (zh)
CN (1) CN101410885B (zh)
AT (1) ATE488820T1 (zh)
DE (1) DE602004030159D1 (zh)
WO (1) WO2005074411A2 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7187382B2 (en) * 2004-01-26 2007-03-06 Microsoft Corporation Iteratively solving constraints in a font-hinting language
US7256786B2 (en) * 2004-05-28 2007-08-14 Microsoft Corporation Appropriately rendering a graphical object when a corresponding outline has exact or inexact control points
US7292249B2 (en) * 2004-05-28 2007-11-06 Microsoft Corporation Appropriately rendering a graphical object when a corresponding outline has excessive control points
US8253742B2 (en) * 2004-05-28 2012-08-28 Microsoft Corporation Rendering stroke pairs for graphical objects
US20080036758A1 (en) * 2006-03-31 2008-02-14 Intelisum Inc. Systems and methods for determining a global or local position of a point of interest within a scene using a three-dimensional model of the scene
US8050500B1 (en) * 2006-07-06 2011-11-01 Senapps, LLC Recognition method and system
US9483167B2 (en) 2010-09-29 2016-11-01 Adobe Systems Incorporated User interface for a touch enabled device
US9229636B2 (en) 2010-10-22 2016-01-05 Adobe Systems Incorporated Drawing support tool
US8842120B2 (en) 2011-03-02 2014-09-23 Adobe Systems Incorporated Physics rules based animation engine
US20130132907A1 (en) * 2011-03-02 2013-05-23 Adobe Systems Incorporated Shape pixel rendering
US8947438B2 (en) * 2011-08-01 2015-02-03 Microsoft Corporation Reducing font instructions
US10031641B2 (en) 2011-09-27 2018-07-24 Adobe Systems Incorporated Ordering of objects displayed by a computing device
KR101502841B1 (ko) * 2013-08-28 2015-03-16 현대미디어 주식회사 비트맵 폰트 외곽선 처리 방법 및 이를 위한 컴퓨터로 판독가능한 기록매체
KR101666131B1 (ko) 2015-05-29 2016-10-14 경북대학교 산학협력단 서브 픽셀의 패턴을 고려한 벡터 글꼴의 렌더링 방법
US10956566B2 (en) 2018-10-12 2021-03-23 International Business Machines Corporation Multi-point causality tracking in cyber incident reasoning
US11184374B2 (en) 2018-10-12 2021-11-23 International Business Machines Corporation Endpoint inter-process activity extraction and pattern matching
US11941054B2 (en) 2018-10-12 2024-03-26 International Business Machines Corporation Iterative constraint solving in abstract graph matching for cyber incident reasoning

Family Cites Families (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4387622A (en) * 1981-07-20 1983-06-14 Kawai Musical Instrument Mfg. Co., Ltd. Musical tone generator with independent time varying harmonics
US4696707A (en) 1987-08-18 1987-09-29 The Ingersoll Milling Machine Company Composite tape placement apparatus with natural path generation means
US4884225A (en) 1987-04-03 1989-11-28 University Of Massachusetts Medical Center Filtering in 3-D visual system
AU629210B2 (en) 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
JP3058168B2 (ja) 1989-03-08 2000-07-04 キヤノン株式会社 文字処理装置及び方法
EP0395021A3 (en) * 1989-04-26 1991-10-16 Eastman Kodak Company Method and system for encoding character fonts
US5155805A (en) 1989-05-08 1992-10-13 Apple Computer, Inc. Method and apparatus for moving control points in displaying digital typeface on raster output devices
US5159668A (en) 1989-05-08 1992-10-27 Apple Computer, Inc. Method and apparatus for manipulating outlines in improving digital typeface on raster output devices
US5048116A (en) * 1989-05-24 1991-09-10 Motorola, Inc. Signal routing system
FR2652180B1 (fr) * 1989-09-20 1991-12-27 Mallet Jean Laurent Procede de modelisation d'une surface et dispositif pour sa mise en óoeuvre.
USRE38758E1 (en) * 1990-07-31 2005-07-19 Xerox Corporation Self-clocking glyph shape codes
US5477451A (en) * 1991-07-25 1995-12-19 International Business Machines Corp. Method and system for natural language translation
US5301267A (en) * 1991-09-27 1994-04-05 Adobe Systems Incorporated Intelligent font rendering co-processor
US5280576A (en) * 1991-12-24 1994-01-18 Xerox Corporation Method of adjusting the weight of a character of an outline font
JP3224142B2 (ja) * 1992-05-20 2001-10-29 株式会社リコー ヒンティング処理方法
JPH06110992A (ja) * 1992-09-25 1994-04-22 Agency Of Ind Science & Technol Cadシステムにおける形状変形入力操作方法
US5751289A (en) 1992-10-01 1998-05-12 University Corporation For Atmospheric Research Virtual reality imaging system with image replay
JP3057935B2 (ja) * 1992-11-16 2000-07-04 ブラザー工業株式会社 文字出力装置
US5715473A (en) 1992-12-29 1998-02-03 Apple Computer, Inc. Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font
US5412270A (en) * 1993-02-04 1995-05-02 General Electric Company Motor assembly with mounting arrangement
US5500927A (en) 1993-03-18 1996-03-19 Macromedia, Inc. System and method for simplifying a computer-generated path
US5664086A (en) 1993-04-16 1997-09-02 Adobe Systems Incorporated Method and apparatus for generating digital type font, and resulting fonts using generic font and descriptor file
US5586241A (en) 1993-06-10 1996-12-17 Hewlett-Packard Company Method and system for creating, specifying, and generating parametric fonts
JP3445394B2 (ja) 1993-12-17 2003-09-08 ゼロックス・コーポレーション 少なくとも二つのイメージセクションの比較方法
US5781714A (en) * 1994-05-27 1998-07-14 Bitstream Inc. Apparatus and methods for creating and using portable fonts
US5684510A (en) 1994-07-19 1997-11-04 Microsoft Corporation Method of font rendering employing grayscale processing of grid fitted fonts
US5854855A (en) 1994-09-09 1998-12-29 Motorola, Inc. Method and system using meta-classes and polynomial discriminant functions for handwriting recognition
AUPM822494A0 (en) 1994-09-16 1994-10-13 Canon Inc. Data storage format
US5598520A (en) * 1994-09-26 1997-01-28 Microsoft Corporation Methods and apparatus for hinting a font for controlling stem width as font size and resolution of output device vary
US5710880A (en) * 1994-11-03 1998-01-20 Microsoft Corporation Method and system for creating a graphic image with geometric descriptors
JPH08146936A (ja) 1994-11-21 1996-06-07 Fujitsu Ltd アウトラインフォントデータの処理方法および装置
US5790126A (en) * 1995-01-03 1998-08-04 Microsoft Corporation Method for rendering a spline for scan conversion of a glyph
JPH08194459A (ja) 1995-01-19 1996-07-30 Fujitsu Ltd アウトライン文字描画装置
US5754873A (en) 1995-06-01 1998-05-19 Adobe Systems, Inc. Method and apparatus for scaling a selected block of text to a preferred absolute text height and scaling the remainder of the text proportionately
AU5877398A (en) * 1997-02-10 1998-09-09 Yissum Research Development Company Of The Hebrew University Of Jerusalem Parametric font models based on features and constraints
US6289488B1 (en) * 1997-02-24 2001-09-11 Lucent Technologies Inc. Hardware-software co-synthesis of hierarchical heterogeneous distributed embedded systems
US6037949A (en) 1997-08-04 2000-03-14 Pixar Animation Studios Texture mapping and other uses of scalar fields on subdivision surfaces in computer graphics and animation
US6300960B1 (en) 1997-08-04 2001-10-09 Pixar Animation Studios Realistic surface simulation in computer animation
US6363405B1 (en) * 1997-12-24 2002-03-26 Elbrus International Limited Computer system and method for parallel computations using table approximation methods
US6714679B1 (en) 1998-02-05 2004-03-30 Cognex Corporation Boundary analyzer
US6249908B1 (en) * 1998-03-27 2001-06-19 Microsoft Corporation System and method for representing graphical font data and for converting the font data to font instructions
WO1999057683A1 (en) 1998-05-04 1999-11-11 The Johns Hopkins University Method and apparatus for segmenting small structures in images
US6441846B1 (en) 1998-06-22 2002-08-27 Lucent Technologies Inc. Method and apparatus for deriving novel sports statistics from real time tracking of sporting events
US6253374B1 (en) * 1998-07-02 2001-06-26 Microsoft Corporation Method for validating a signed program prior to execution time or an unsigned program at execution time
US6600485B1 (en) * 1998-07-03 2003-07-29 Sega Enterprises, Ltd. Polygon data generation method and image display apparatus using same
US6373489B1 (en) 1999-01-12 2002-04-16 Schlumberger Technology Corporation Scalable visualization for interactive geometry modeling
US6393145B2 (en) 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
EP1024443A3 (en) * 1999-01-29 2002-01-09 Canon Kabushiki Kaisha Utilising electronically accessible resources
US6456305B1 (en) 1999-03-18 2002-09-24 Microsoft Corporation Method and system for automatically fitting a graphical display of objects to the dimensions of a display window
IL146978A0 (en) 1999-06-11 2002-08-14 Pulsent Corp Method and apparatus for digital image segmentation
US20010032029A1 (en) 1999-07-01 2001-10-18 Stuart Kauffman System and method for infrastructure design
US6452597B1 (en) 1999-08-24 2002-09-17 Microsoft Corporation Displaying text on a limited-area display surface
US6803913B1 (en) 1999-12-01 2004-10-12 Microsoft Corporation Warping text along a curved path
US6992671B1 (en) 1999-12-09 2006-01-31 Monotype Imaging, Inc. Method and apparatus for compressing Bezier descriptions of letterforms in outline fonts using vector quantization techniques
US6760028B1 (en) 2000-07-21 2004-07-06 Microsoft Corporation Methods and systems for hinting fonts
US6714868B2 (en) 2001-06-28 2004-03-30 The United States Of America As Represented By The Secretary Of The Navy Similarity transformation method for data processing and visualization
US20050005261A1 (en) * 2003-07-02 2005-01-06 Severin William B. Component integration engine
US20050089237A1 (en) * 2003-10-24 2005-04-28 Jaehwa Park Method and apparatus for bezier curve approximation data compression
US7302099B2 (en) 2003-11-10 2007-11-27 Microsoft Corporation Stroke segmentation for template-based cursive handwriting recognition
US7292247B2 (en) * 2004-01-26 2007-11-06 Microsoft Corporation Dynamically determining directions of freedom for control points used to represent graphical objects
US7187382B2 (en) 2004-01-26 2007-03-06 Microsoft Corporation Iteratively solving constraints in a font-hinting language
US7236174B2 (en) * 2004-01-26 2007-06-26 Microsoft Corporation Adaptively filtering outlines of typographic characters to simplify representative control data
US7136067B2 (en) * 2004-01-26 2006-11-14 Microsoft Corporation Using externally parameterizeable constraints in a font-hinting language to synthesize font variants

Also Published As

Publication number Publication date
WO2005074411A2 (en) 2005-08-18
ATE488820T1 (de) 2010-12-15
KR20060107268A (ko) 2006-10-13
JP2007527029A (ja) 2007-09-20
US7505041B2 (en) 2009-03-17
WO2005074411A3 (en) 2009-04-16
US20070139414A1 (en) 2007-06-21
US20080165193A1 (en) 2008-07-10
US7187382B2 (en) 2007-03-06
US20050162429A1 (en) 2005-07-28
EP1709506A2 (en) 2006-10-11
JP4783298B2 (ja) 2011-09-28
CN101410885B (zh) 2011-06-08
KR101159320B1 (ko) 2012-07-04
EP1709506A4 (en) 2009-09-30
DE602004030159D1 (de) 2010-12-30
EP1709506B1 (en) 2010-11-17

Similar Documents

Publication Publication Date Title
CN101410885B (zh) 以字体提示语言交互地解出约束条件
CN101331520A (zh) 字体提示中的笔画对比
JPH03208094A (ja) 種々の寸法の記号映像のアウトラインを処理する方法およびコンピュータ表示装置
US4529978A (en) Method and apparatus for generating graphic and textual images on a raster scan display
US7940273B2 (en) Determination of unicode points from glyph elements
CN1702734B (zh) 当对应轮廓缺少控制点时对图形对象的适当呈现
US8711184B2 (en) Scalable pixel coverage function-map
CN108763188A (zh) 一种文本显示方法、装置、设备及存储介质
CN104133809B (zh) 一种字形加粗方法
JP4625269B2 (ja) 文字画像生成装置,文字画像生成方法,表示制御装置,文字画像生成プログラムおよび表示制御プログラム
Taylor The educational challenges of a new cartography
CA1200025A (en) Graphic and textual image generator for a raster scan display
US11670018B2 (en) Method for replaying vector image
Tam et al. Learning to write Chinese characters with correct stroke sequences on mobile devices
Ingham CAD systems in mechanical and production engineering
KR102185851B1 (ko) 전자책 제작방법 및 그를 위한 컴퓨터 프로그램
Toong et al. A new direction in personal computer software
Hubbold Computer graphics and displays
Skyrme The evolution of graphics in CAL
Ransom et al. Computer graphics in biology
Pfeffer Creating a Conference Poster with High-Resolution Network Figures
CN113627381A (zh) 书写数据处理方法、装置和计算机设备
JPH05197366A (ja) フォントデータ生成装置
CN116704073A (zh) 绘图方法、装置、电子设备及存储介质
IGNOUX CHARACTER GENERATION AND DISPLAY

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110608

Termination date: 20150730

EXPY Termination of patent right or utility model