Glyph outline adjustment while rendering
First Claim
1. A computer-implemented method comprising:
- receiving a glyph to be rendered at a size;
generating from the glyph an outline of line segments, each line segment having two endpoints and a plurality of points;
for each of the line segments, performing, in a computer, operations comprising;
determining a movement direction for the line segments, where the movement direction is based on an exterior of the outline of line segments, where the exterior of the outline of line segments is determined based on a winding order, where the winding order is determined based on cross products of a plurality of vector pairs, and where each vector pair is two vectors that intersect at an extrema point of the outline of line segments; and
translating the line segment in the movement direction by a distance, where translating comprises moving each point of the line segment in a same direction by a same distance;
after translating the line segments, rejoining pairs of adjacent line segments, where rejoining a pair of adjacent line segments comprises;
if the adjacent line segments do not intersect, extending the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; and
if the adjacent line segments do intersect, trimming the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair;
determining a synthetic bold or synthetic light scaled outline of the glyph from the translated and rejoined line segments.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, that implement a method for adjusting a glyph outline while rendering. In one aspect a method includes receiving a glyph to be rendered at a size; generating from the glyph an outline of line segments, each line segment having two endpoints; translating the line segments all in an outward or inward direction, each line segment being moved by a distance and then rejoining pairs of adjacent line segments by extending or trimming their endpoints until each pair of adjacent line segments join at an intersection point that is an endpoint of each the line segments of the pair; and determining an augmented scaled outline of the glyph from the translated and rejoined line segments.
98 Citations
48 Claims
-
1. A computer-implemented method comprising:
-
receiving a glyph to be rendered at a size; generating from the glyph an outline of line segments, each line segment having two endpoints and a plurality of points; for each of the line segments, performing, in a computer, operations comprising; determining a movement direction for the line segments, where the movement direction is based on an exterior of the outline of line segments, where the exterior of the outline of line segments is determined based on a winding order, where the winding order is determined based on cross products of a plurality of vector pairs, and where each vector pair is two vectors that intersect at an extrema point of the outline of line segments; and translating the line segment in the movement direction by a distance, where translating comprises moving each point of the line segment in a same direction by a same distance; after translating the line segments, rejoining pairs of adjacent line segments, where rejoining a pair of adjacent line segments comprises; if the adjacent line segments do not intersect, extending the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; and if the adjacent line segments do intersect, trimming the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; determining a synthetic bold or synthetic light scaled outline of the glyph from the translated and rejoined line segments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer-readable medium encoded with a computer program, the program comprising instructions operable to cause a computing device to perform a method comprising:
-
receiving a glyph to be rendered at a size; generating from the glyph an outline of line segments, each line segment having two endpoints and a plurality of points; for each of the line segments, performing steps comprising; determining a movement direction for the line segment, where the movement direction is based on an exterior of the outline of line segments, where the exterior of the outline of line segments is determined based on a winding order, where the winding order is determined based on cross products of a plurality of vector pairs, and where each vector pair is two vectors that intersect at an extrema point of the outline of line segments; and translating the line segment in the movement direction by a distance, where translating comprises moving each point of the line segment in a same direction by a same distance; after translating the line segments, rejoining pairs of adjacent line segments, where rejoining a pair of adjacent line segments comprises; if the adjacent line segments do not intersect, extending the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; and if the adjacent line segments do intersect, trimming the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; determining a synthetic bold or synthetic light scaled outline of the glyph from the translated and rejoined line segments. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A system comprising:
-
a computer-readable medium comprising a program product; a display device; and one or more processors operable to interact with the display device and to execute the program product and perform operations comprising; receiving a glyph to be rendered at a size; generating from the glyph an outline of line segments, each line segment having two endpoints and a plurality of points; for each of the line segments, performing steps comprising; determining a movement direction for the line segment, where the movement direction is determined based on an exterior of the outline of line segments, where the exterior of the outline of line segments is determined based on a winding order, where the winding order is determined based on cross products of a plurality of vector pairs, and where each vector pair is two vectors that intersect at an extrema point of the outline of line segments; and translating the line segment in the movement direction by a distance, where translating comprises moving each point of the line segment in a same direction by a same distance; after translating the line segments, rejoining pairs of adjacent line segments, where rejoining a pair of adjacent line segments comprises; if the adjacent line segments do not intersect, extending the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; and if the adjacent line segments do intersect, trimming the endpoints of one or both of the line segments until the line segments join at an intersection point that is an endpoint of each of the line segments of the pair; determining a synthetic bold or synthetic light scaled outline of the glyph from the translated and rejoined line segments. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
Specification