Techniques for drawing curved edges in graphs
First Claim
Patent Images
1. A method comprising:
- receiving, by at least one processor, fixed positions of a plurality of nodes of a graph, the plurality of nodes and the fixed positions being always unadjustable so as to maintain compactness of the graph;
determining, by at least one processor, two or more curves to connect corresponding pairs of nodes of the plurality of nodes;
selecting, by at least one processor and based on a cost function and from the two or more curves, optimal curves for the corresponding pairs of nodes, the cost function for each curve being based at least on a distance of a farthest point on a curve from a straight line joining end points of the curve, the end points of the curve being positions of nodes to be connected by the curve; and
connecting, by at least one processor when a possible connecting of the corresponding pairs of nodes via respective straight lines results in more edge crossings than possible edge crossings associated with the optimal curves, the plurality of nodes by using the corresponding optimal curves, two or more connected nodes being connected to at least two other corresponding nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for drawing curved edges in graphs is disclosed. The system and method implement a heuristic algorithm to draw curved edges in graphs using Bezier curves. The algorithm assumes that every pair of nodes has a unique edge between them. It also assumes that the graph is “leveled,” which means the nodes can be grouped such that all the nodes in a group are laid out at the same y location in a vertical layout. Any generic graph can be converted to a leveled graph, so the techniques described in the algorithm are applicable to any graph.
-
Citations
14 Claims
-
1. A method comprising:
-
receiving, by at least one processor, fixed positions of a plurality of nodes of a graph, the plurality of nodes and the fixed positions being always unadjustable so as to maintain compactness of the graph; determining, by at least one processor, two or more curves to connect corresponding pairs of nodes of the plurality of nodes; selecting, by at least one processor and based on a cost function and from the two or more curves, optimal curves for the corresponding pairs of nodes, the cost function for each curve being based at least on a distance of a farthest point on a curve from a straight line joining end points of the curve, the end points of the curve being positions of nodes to be connected by the curve; and connecting, by at least one processor when a possible connecting of the corresponding pairs of nodes via respective straight lines results in more edge crossings than possible edge crossings associated with the optimal curves, the plurality of nodes by using the corresponding optimal curves, two or more connected nodes being connected to at least two other corresponding nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 12, 13)
-
-
9. A non-transitory computer program product storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:
-
receiving fixed positions of a plurality of nodes of a graph, the plurality of nodes and the fixed positions being unadjustable after being fixed once so as to maintain compactness of the graph; determining two or more curves to connect corresponding pairs of nodes of the plurality of nodes; selecting, based on a cost function and from the two or more curves, optimal curves for the corresponding pairs of nodes, the cost function for each curve being based at least on a distance of a farthest point on a curve from a straight line joining end points of the curve, the end points of the curve being positions of nodes to be connected by the curve; and connecting the plurality of nodes by using the corresponding optimal curves when a connecting of the corresponding pairs of nodes via respective optimal curves results in less intersections of the corresponding optimal curves than intersections of respective straight lines if the corresponding pairs of nodes were to be connected via the respective straight lines instead of the corresponding optimal curves, two or more connected nodes being connected to at least two other corresponding nodes. - View Dependent Claims (10, 11, 14)
-
Specification