Iteratively solving constraints in a font-hinting language
First Claim
1. In a computing environment that has access to a set of control points, the set of control points for generating an outline of a graphical object, the outline being utilized to determine how the graphical object is rendered, the position of some portions of the outline potentially being constrained to predetermined locations, a system for using a font-hinting language to represent an iterative solution to a constraint, the system comprising:
- a processor;
a computer memory coupled to the processor, wherein the computer memory comprises computer executable instructions that when executed by the processor cause the processor to perform the following acts;
identifying features of the graphical object represented by a set of control points expressly representing strokes to identify a more complex constraint that cannot be natively expressed based on the vocabulary of the font hinting language;
accessing the more complex constraint that cannot be natively expressed based on the vocabulary of the font-hinting language, the more complex constraint constraining at least a portion of the outline;
decomposing the more complex constraint into a plurality of simpler constraints that can be natively expressed based on the vocabulary of the font-hinting language, wherein decomposing the more complex constraint into a plurality of simpler constraints comprises decomposing a circularly dependent constraint at least into;
a first constraint that constrains the position of a first control point, compliance with the first constraint depending on the position of a second control point; and
a second constraint that constrains the position of the second control point, compliance with the second constraint depending on the position of the first control point; and
representing each of the simpler constraints in corresponding font-hinting language instructions that are iteratively processed to at least approximate a solution to the more complex constraint.
2 Assignments
0 Petitions
Accused Products
Abstract
The principles of the present invention relate to iteratively solving constraints in a font-hinting language. A computing system accesses a more complex constraint that can not be natively expressed based on the vocabulary of the font-hinting language, the more complex constraint constraining at least a portion of the outline. The computing system decomposes the more complex constraint into a plurality of simpler constraints that can be natively expressed based on the vocabulary of the font-hinting language. The computer system represents each of the simpler constraints in corresponding font-hinting language instructions that can be iteratively processed to at least approximate a solution to the more complex constraint. The font-hinting language instructions are iteratively processed at the computing system or another computing system to cause a graphical object to comply, within a specific tolerance, with the more complex constraint.
63 Citations
18 Claims
-
1. In a computing environment that has access to a set of control points, the set of control points for generating an outline of a graphical object, the outline being utilized to determine how the graphical object is rendered, the position of some portions of the outline potentially being constrained to predetermined locations, a system for using a font-hinting language to represent an iterative solution to a constraint, the system comprising:
-
a processor; a computer memory coupled to the processor, wherein the computer memory comprises computer executable instructions that when executed by the processor cause the processor to perform the following acts; identifying features of the graphical object represented by a set of control points expressly representing strokes to identify a more complex constraint that cannot be natively expressed based on the vocabulary of the font hinting language; accessing the more complex constraint that cannot be natively expressed based on the vocabulary of the font-hinting language, the more complex constraint constraining at least a portion of the outline; decomposing the more complex constraint into a plurality of simpler constraints that can be natively expressed based on the vocabulary of the font-hinting language, wherein decomposing the more complex constraint into a plurality of simpler constraints comprises decomposing a circularly dependent constraint at least into; a first constraint that constrains the position of a first control point, compliance with the first constraint depending on the position of a second control point; and a second constraint that constrains the position of the second control point, compliance with the second constraint depending on the position of the first control point; and representing each of the simpler constraints in corresponding font-hinting language instructions that are iteratively processed to at least approximate a solution to the more complex constraint. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a computing system that is configured to process font-hinting language instructions, a computer program product for use in a computing system for iteratively solving constraints such that a graphical object can be appropriately rendered, the computer program product comprising computer executable instructions on a physical computer readable storage medium that, when executed by a processor, cause the computing system to perform the following:
-
receiving font-hinting language instructions representing a plurality of simpler constraints, the plurality of simpler constraints corresponding to a more complex constraint that can not be natively expressed based on the vocabulary of the font-hinting language; iteratively processing the font-hinting language instructions a finite number of times to at least approximate a solution to the more complex constraint such that the graphical object can be altered to comply with the more complex constraint, wherein iteratively processing the font-hinting language instructions a finite number of times to at least approximate a solution to the more complex constraint comprises; applying a first simpler constraint, based on the current position of a first control point, to calculate a target position for a second control point; applying a second simpler second constraint, based on the current position of the second control point, to calculate a target position for the first control point; determining that the target position for the first control point is within a specified tolerance of the current position for the first control point; and determining that the target position for the second control point is within the specified tolerance of the current position for the second control point; and displaying the graphical object according to the first and second control points. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. In a computing system that is configured to process font-hinting language instructions, a system designed to iteratively solve constraints such that a graphical object can be appropriately rendered, the system comprising:
-
a processor; a computer memory coupled to the processor, wherein the computer memory comprises computer executable instructions that when executed by the processor cause the processor to perform the following acts; receiving font-hinting language instructions representing a plurality of simpler constraints, the plurality of simpler constraints corresponding to a more complex constraint that can not be natively expressed based on the vocabulary of the font-hinting language; iteratively processing the font-hinting language instructions a finite number of times to at least approximate a solution to the more complex constraint such that the graphical object can be altered to comply with the more complex constraint, wherein iteratively processing the font-hinting language instructions a finite number of times to at least approximate a solution to the more complex constraint comprises; applying a first simpler constraint, based on the current position of a first control point, to calculate a target position for a second control point; applying a second simpler second constraint, based on the current position of the second control point, to calculate a target position for the first control point; determining that the target position for the first control point is within a specified tolerance of the current position for the first control point; and determining that the target position for the second control point is within the specified tolerance of the current position for the second control point; and displaying the graphical object according to the first and second control points.
-
Specification