Method and apparatus for the placement of annotations on a display without overlap
First Claim
1. In a computer system having a plurality of dynamic objects displayed on a display, and having a list of variably-sized annotations currently displayed on the display where each annotation is associated with a display object, the real time method of determining where to position a dynamic object and its associated annotation on the display when displaying an additional annotation associated with a display object the position of which on the display is changing in real time without deleting or moving any previously displayed annotations comprising:
- a) selecting a unique display position for the additional annotation based upon a specified, variable distance between the display position and the display object and a specified, variable angle formed by the intersection of a line extending horizontally from the display object and a line extending from the display position to the display object;
b) testing whether the selected display position for the additional annotation overlaps any annotation presently displayed by incrementing the angle by a pre-specified angle increment until all possible angles in a 360 degree range have been tested then incrementing the distance by a distance increment and re-incrementing the angle;
if there is no overlap then adding the additional annotation to the list of annotations and displaying the additional annotation at the selected display position, or, if more than one non-overlapping position exists, choosing the display position farthest from the currently displayed annotations;
if there is overlap returning to and repeating the selecting step to determine a new display position for testing until a non overlapping display position is found or all positions have been tested in which case the display position having the least overlap is selected and displayed; and
c) providing animated, real time display repositioning responses to dynamic changes in the positions of displayed objects on the display resulting from incoming, constantly changing data by deleting those objects and their associated annotations, displaying those objects in their new positions on the display and treating the deleted annotations as additional annotations for purposes of finding new positions for their display by returning to the selecting step.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for placing annotations of various sizes on a display without overlapping the annotations is described. Each annotation is represented by its rectangular bounding box along with an identifying line or arrow that joins the rectangle with the display object that is to be annotated. These rectangles and lines are stored in a list. When an additional annotation is to be placed on the display, it is tested at various positions to determine if there is overlap with the annotations that are already on the display. The tested positions are chosen by varying the length of the identifying line and the angle it forms with the horizontal. When a position is found that yields no overlap, the annotation is placed on the display and added to the list of positioned annotations. This approach is very fast due to the simplicity of the overlap tests, which consist of simple geometric operations. The approach is also fast because it can do a quick search first followed by a more exhaustive search if no suitable position is found. It also can be modified easily to place the annotations without crowding them too closely together.
161 Citations
22 Claims
-
1. In a computer system having a plurality of dynamic objects displayed on a display, and having a list of variably-sized annotations currently displayed on the display where each annotation is associated with a display object, the real time method of determining where to position a dynamic object and its associated annotation on the display when displaying an additional annotation associated with a display object the position of which on the display is changing in real time without deleting or moving any previously displayed annotations comprising:
-
a) selecting a unique display position for the additional annotation based upon a specified, variable distance between the display position and the display object and a specified, variable angle formed by the intersection of a line extending horizontally from the display object and a line extending from the display position to the display object; b) testing whether the selected display position for the additional annotation overlaps any annotation presently displayed by incrementing the angle by a pre-specified angle increment until all possible angles in a 360 degree range have been tested then incrementing the distance by a distance increment and re-incrementing the angle;
if there is no overlap then adding the additional annotation to the list of annotations and displaying the additional annotation at the selected display position, or, if more than one non-overlapping position exists, choosing the display position farthest from the currently displayed annotations;
if there is overlap returning to and repeating the selecting step to determine a new display position for testing until a non overlapping display position is found or all positions have been tested in which case the display position having the least overlap is selected and displayed; andc) providing animated, real time display repositioning responses to dynamic changes in the positions of displayed objects on the display resulting from incoming, constantly changing data by deleting those objects and their associated annotations, displaying those objects in their new positions on the display and treating the deleted annotations as additional annotations for purposes of finding new positions for their display by returning to the selecting step. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer system including a processing means, a memory means, a display means, and input means interconnected by a system bus, a software system for the real time annotation of objects displayed on a display which is accomplished without deleting or moving any previously displayed annotations comprising:
-
a plurality of display objects positioned on the display; a list of variably-sized annotations currently displayed on the display in the memory means, each annotation in the list associated with a display object; an additional annotation in the memory means associated with a display object; a display position determining means in the memory means for generating a unique display position for the additional annotation based upon a specified, variable distance between the display position and the display object and a specified, variable angle formed by the intersection of a line extending horizontally from the display object and a line extending from the display position to the display object; an overlap detection means for determining whether the display position of the additional annotation overlaps any annotation presently displayed; an annotation positioning means where the display position generated for the additional annotation is tested by the overlap detection means by varying the angle by a pre-specified angle increment until all possible angles in a 360 degree range have been tested then incrementing the distance by a distance increment and re-incrementing the angle, if there is no overlap then the additional annotation is added to the list of annotations and displayed at the display position or, if more than one non-overlapping position exists, choosing the display position farthest from the currently displayed annotations;
if there is overlap then generating a new display position for testing using the display position determining means until a non overlapping display position is found or all positions have been tested in which case the display position having the least overlap is selected and displayed. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification