Draw an aligned edge

245 views Asked by At

Considering the following graph:

digraph {
  node[shape=square style=filled];
  A [color=olivedrab4   fillcolor=olivedrab3];
  B [color=orange3      fillcolor=orange];
  C [color=royalblue4   fillcolor=royalblue];
  D [color=orangered3   fillcolor=orangered];

      edge[arrowhead=none];
  node[shape=circle];
  u -> v -> w -> {x y}

  A -> u;
  B -> v;
  C -> y;
  D -> x;

  edge[arrowhead=normal];
  splines=true;
  sep=1;
  A -> D [len=100];
  A -> C [len=100];
}

which neato renders like this:

enter image description here

is it possible to draw the edges from A to D (and A to C) in a way that the spline is aligned to the path A-u-v-w-x-D (and A-u-v-w-y-C respectively)?

Background: I'd like to draw overlays, situated above underlay network topologies.

Digging around in the source code i found the pathplan library (which seems to be used by at least neato).

To quote from lib/pathplan/README:

Our plan is to clean up the internal interfaces (where data structures are copied and converted so we could glue in some older code). We also changed the spline fitter router so that the output spline is not forced to hit all the points of the input path. We plan to extend the library interface to let the caller determine which path points must be hit.

That sounds somewhat like what i want...

0

There are 0 answers