Hi Tamás, > * Tamás Nepusz <[email protected]> [2012-10-13 > 16:30:42 +0200]: > > The primary purpose of supporting curved edges is to ensure that > multiple edges between the same node pairs are all visible. igraph > does not try to set the curvature of edges to avoid other nodes (and I > guess it would be quite complicated anyway if you take into account > that nodes may have different shapes).
You might consider the following approach: 1. sort the edges in decreasing order of weights. 2. for each edge not yet drawn, draw it as a straight line; if it does not hit another vertex or intersection of edges, we are done; otherwise replace it with a piece-wise spline avoiding vertexes and edge intersections. Actually, I think there are plenty of papers on graph visualization. I know this is not a simple problem; however, I think it is worth more attention than it got so far. > However, you may supply a vector of numbers to edge.curved instead of > a single boolean and control the curvature of each edge > individually. edge.curved=TRUE is equivalent to specifying a curvature > of 0.5 for every edge, so a good starting point would be to construct > a vector consisting of 0.5 only and then modifying the curvature of > individual edges that cause problems. You can use get.edge.ids to find > the indices of specific edges in your graph in order to figure out > which element of the curvature vector should be adjusted. This requires to much manual labor for each graph. Thanks! -- Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000 http://www.childpsy.net/ http://thereligionofpeace.com http://mideasttruth.com http://ffii.org http://honestreporting.com (let ((a "(let ((a %c%s%c)) (format a 34 a 34))")) (format a 34 a 34)) _______________________________________________ igraph-help mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/igraph-help
