Patent ID: 8471856

Claim:
A system for performing a method for dynamically altering the outline of a graphical object, the system comprising one or more computer processors and computer readable data storage, the system having access to sets of related graphical objects, each set of related graphical objects including outlines representing individual graphical objects from the related set of graphical objects, the system performing the method by executing computer executable instructions upon the one or more processors, the method comprising: accessing an outline representing a graphical object, the graphical object comprising a stroke pair comprising a first stroke and a second stroke which are similarly oriented; calculating the width of the first stroke; calculating the width of the second stroke; calculating the distance between the first stroke and the second stroke by determining the distance between an edge of the first stroke and a corresponding edge of the second stroke; determining a location of a center line between the first stroke and the center line; constraining the calculated distance between the first stroke and the second stroke to mitigate the possibility of rounding errors causing the represented stroke pair to be inappropriately rendered; based upon the constrained calculated distance between the first stroke and the second stroke, individually constraining the first stroke to be a specified distance from the determined location of center line between the first stroke and the second stroke and individually constraining the second stroke to be a specified distance from the determined location of center line between the first stroke and the second stroke; adjusting the represented stroke pair in accordance with the constrained calculated distance between the first stroke and the second stroke and the individually constrained distances from the first and second strokes to the location of the center line between the first stroke and the second stroke, including: calculating a position for a center line for the first stroke; adjusting one or more control points of the first stroke relative to the calculated center line for the first stroke to mitigate the possibility of rounding errors causing the first stroke width to be inappropriately rendered; and calculating a position for a center line for the second stroke; adjusting one or more control points of the second stroke relative to the calculated center line for the second stroke to mitigate the possibility of rounding errors causing the second stroke width to be inappropriately rendered; constraining the adjusted stroke pair between external reference points such that the graphical object is configured for appropriate rendering relative to at least one other graphical object; and rendering the graphical object, including the adjusted constrained stroke pair, at an output device.