New script for creating sane circo loops.

You can find my script and an example at this link.
There's a little problem with circo. When there is a plain loop it is fine, but when there are extra edges it often malforms the circle, and doesn't actually keep the most number of edges on the outside of the circle as advertised, but actually crosses a large number of edges through the center of a circle.

Rather than complain about this here or use external tools I fixed it (although I didn't have time to patch graphviz). I wrote a script that uses graphviz itself to generate the initial circle then add extra connections.

Much more complex examples are possible besides this simple proof of concept. The only thing that needs to be edited by hand (currently) are the script's individual generated edges.

The script now will not

The script now will not create edges if they already exist, so you no longer have to style them manually. Here is an example.


Hi - nice work.  Emden

Hi - nice work. 

Emden Gansner revealed that circo is supposed to find a maxmimal outerplanar subgraph,
so that example is definitely a bug.  

I have now submitted a bug

I have now submitted a bug report for this problem.

I thought as much given the

I thought as much given the description of the algorithm. I'm trying to find the source of the irregularity right now.

Recent comments