IP Library Granted Patent US 9,396,410
Granted Patent B1
US 9,396,410 · App. 13/247,987 · Granted Jul 19, 2016

Preserving angles of graph elbows

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,396,410
App. No.
13/247,987
Granted
Jul 19, 2016
Kind
B1
Abstract

Techniques are provided for preserving angles at graph elbows as graph nodes are moved. A graph, which includes a first segment and a second segment that form an acute or obtuse angle at a vertex, is displayed. The first segment has a first end opposite the vertex at a first position; the second segment has a second end opposite the vertex at a second position. User input moves the second end from the second position to a third position. In response, the angle is automatically preserved by modifying a length of the first segment and a length of the second segment, without modifying the first position of the first end. Other techniques can replace two segments with a single segment if one of the segments becomes too short, or snap an elbow angle to a specified angle if moving the node causes the elbow angle to near the specified angle.

Claims (29)

1. A process comprising:

one or more computing devices causing, on a computer display device, display of a graph comprising a first segment and a second segment, wherein the first segment and the second segment form an acute or obtuse angle at a vertex, wherein the first segment comprises a first end opposite the vertex at a first position on the graph, and wherein the second segment comprises a second end opposite the vertex at a second position on the graph;

the one or more computing devices receiving input that moves the second end from the second position to a third position on the graph;

in response to the input, the one or more computing devices automatically preserving the acute or obtuse angle by modifying a length of the first segment and a length of the second segment, and modifying the first segment by mirroring the first segment over a vertical axis or a horizontal axis;

wherein the one or more computing devices automatically preserve the acute or obtuse angle by swapping an interior angle formed by the first position, the vertex, and the second position for an exterior angle, supplementary to the interior angle, formed by the first segment, the vertex, and the third position.

2. The process of claim 1 , wherein the input comprises a selection of the second end at the second position, a dragging of the second end to the third position, and a de-selection of the second end at the third position.

3. The process of claim 2 , further comprising the one or more computing devices causing display of a proposed position of the second end as the second end is dragged from the second position to the third position, wherein the proposed position is different than the second position and the third position.

4. The process of claim 2 , wherein the one or more computing devices automatically preserving the angle is in response to the de-selection of the second end at the third position.

5. The process of claim 1 , further comprising, in response to the input, the one or more computing devices modifying the first segment by mirroring the first segment over a vertical axis.

6. The process of claim 1 , further comprising, in response to the input, the one or more computing devices modifying the first segment by mirroring the first segment over a horizontal axis.

7. The process of claim 1 , further comprising:

causing display, at the first end, of a first graphical element that represents a first object comprising a plurality of data items;

causing display, at the second end, of a second graphical element that represents a second object comprising a plurality of data items;

wherein the first segment and the second segment represent a relationship between the first object and the second object; and wherein the input moves the second graphical element from the second position to the third position.

8. One or more non-transitory computer-readable storage media storing instructions which, when executed by one or more computing devices, cause the one or more computing devices to perform:

causing display of a graph comprising a first segment and a second segment, wherein the first segment and the second segment form an acute or obtuse angle at a vertex, wherein the first segment comprises a first end opposite the vertex at a first position on the graph, and wherein the second segment comprises a second end opposite the vertex at a second position on the graph;

receiving input that moves the second end from the second position to a third position on the graph;

in response to the input, automatically preserving the acute or obtuse angle by modifying a length of the first segment and a length of the second segment, and modifying the first segment by mirroring the first segment over a vertical axis or a horizontal axis;

wherein the one or more computing devices automatically preserve the acute or obtuse angle by swapping an interior angle formed by the first position, the vertex, and the second position for an exterior angle, supplementary to the interior angle, formed by the first segment, the vertex, and the third position.

9. The one or more non-transitory computer-readable storage media of claim 8 , wherein the input comprises a selection of the second end at the second position, a dragging of the second end to the third position, and a de-selection of the second end at the third position.

10. The one or more non-transitory computer-readable storage media of claim 9 , wherein the instructions, when executed by one or more computing devices, further cause display of a proposed position of the second end as the second end is dragged from the second position to the third position, wherein the proposed position is different than the second position and the third position.

11. The one or more non-transitory computer-readable storage media of claim 9 , wherein the instructions, when executed by one or more computing devices, cause automatically preserving the angle in response to the de-selection of the second end at the third position.

12. The one or more non-transitory computer-readable storage media of claim 8 , wherein the instructions, when executed by one or more computing devices, further cause, in response to the input, modifying the first segment by mirroring the first segment over a vertical axis.

13. The one or more non-transitory computer-readable storage media of claim 8 , wherein the instructions, when executed by one or more computing devices, further cause modifying the first segment by mirroring the first segment over a horizontal axis.

14. The one or more non-transitory computer-readable storage media of claim 8 , wherein the instructions, when executed by one or more computing devices, further cause:

display, at the first end, of a first graphical element that represents a first object comprising a plurality of data items;

display, at the second end, of a second graphical element that represents a second object comprising a plurality of data items;

wherein the first segment and the second segment represent a relationship between the first object and the second object; and

wherein the input moves the second graphical element from the second position to the third position.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2011
From: CERVELLI, DANIEL P.; FREELAND, CARL
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 026986/0570 →