¿Cómo forzar la posición de los bordes en GraphViz?
Pregunta
Tengo problemas con los bordes que se superponen. En mi Pregunta previa sobre cómo obligar a los nodos a estar en la misma columna, descubrió cómo forzar los nodos a una columna, pero esto hace que aparezcan otros problemas.
digraph exmp {
A -> B -> C -> D -> E
C -> F [constraint=false]
A -> C [style="dotted", constraint=false]
A -> D [style="dotted", constraint=false]
B -> D [constraint=false]
D -> A [style="dashed", constraint=false]
C -> A [style="dashed", constraint=false]
E -> F [style="invis"]
F -> G
E -> C [constraint="false"]
}
Renders a:
texto alt http://img98.imageshack.us/img98/8324/wrong2.gif
Mi problema es que los bordes de E -> C y C -> F están comenzando/terminando en el mismo punto en el nodo C y los bordes discontinuos y punteados están todos en el lado derecho de los nodos.
¿Cómo podría decir que los bordes específicos irán al lado derecho del nodo?
Solución
Después de un mensaje en la lista de correo de GraphViz, he encontrado que al menos es posible eliminar el problema de superposición E -> C y C -> F.
La solución más simple es usar un puerto de punto Compass:
C:e -> F [constraint=false]
- Emden